摘要: 复制 将一个对象的引用复制给另一个对象,一共有三种方式。第一种方式是直接赋值,第二种方式是浅复制,第三种方式是深复制。 1.直接赋值 在Java中,A a1 = a2,这实际上复制的是引用,也就是说 a1 和 a2指向的是同一个对象。因此,当a1变化时,a2里面的成员变量也会跟着变化。 2.浅复制( 阅读全文
posted @ 2019-11-25 11:49 MrHH 阅读(804) 评论(0) 推荐(0) 编辑
摘要: 大家在通过本地仓库上传文件到远程仓库时,会报出 error:failed to push some refs to 'git@gitee.com:name/project.git' 的错误。 解决方法如下: git pull --rebase origin 分支名 将远程仓库中的更新合并到本地仓库, 阅读全文
posted @ 2019-11-24 14:52 MrHH 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 首先就是创建码云(用户名不能是中文),然后新建一个项目(用户名/项目名都不能是中文)。 一、在Windows上安装Git 1.从http://msysgit.github.io下载,然后按默认选项安装即可,安装完成后,在开始菜单里找到“Git”->“Git Bash”; 2.安装完成后,还需要最后一 阅读全文
posted @ 2019-11-24 14:45 MrHH 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 一、Java线程调度 1.抢占式调度:指的是每条线程执行的时间、线程的切换都由系统控制。系统控制指的是在系统某种运行机制下,可能每条线程都分同样的执行时间片,也可能是某些线程执行的时间片较长,甚至某些线程得不到执行的时间片。在这种机制下,一个线程的堵塞不会导致整个进程堵塞。 2.协同式调度:指某一线 阅读全文
posted @ 2019-11-23 14:53 MrHH 阅读(3935) 评论(0) 推荐(0) 编辑
摘要: 一、用于解决多线程安全问题的方式 synchronized:隐式锁 1)同步代码块 2)同步方法 JDK1.5后 3)同步锁 Lock 注意:是一个显式锁,需要通过lock()方法上锁,必须通过unlock()方法进行释放锁。 1 public class TestLock { 2 public s 阅读全文
posted @ 2019-11-23 12:48 MrHH 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 一、生产者消费者案例 1、使用synchronized关键字实现 1 public class TestProductorAndConsumer { 2 public static void main(String[] args) { 3 Clerk clerk = new Clerk(); 4 P 阅读全文
posted @ 2019-11-23 12:43 MrHH 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 通过Callable和Future创建线程 i. 创建Callable接口的实现类,并实现call方法,该call方法将作为线程执行体,并且有返回值,可以抛出异常。 ii. 创建Callable实现类的实例,使用FutureTask类包装Callable对象,该FuturedTask对象封装了Cal 阅读全文
posted @ 2019-11-22 12:48 MrHH 阅读(569) 评论(0) 推荐(0) 编辑
摘要: 为了提高性能,Java提供了读写锁,读写锁分为读锁和写锁。多个读锁不互斥,读锁与写锁互斥,写锁与写锁互斥,这是由JVM控制的。如果没有写锁的情况下,读是无阻塞的,在一定程度上提高了程序的执行效率。 读锁 如果你的代码只读数据,可以很多人同时读,但不能同时写,那就上读锁。 写锁 如果你的代码修改数据, 阅读全文
posted @ 2019-11-22 12:38 MrHH 阅读(771) 评论(0) 推荐(0) 编辑
摘要: Java语言提供了一种稍弱的同步机制,即Volatile变量,用来确保变量的更新操作通知到其他线程。volatile变量不会被缓存在寄存器或对其他处理器不可见的地方,因此在读取volatile类型的变量时总会返回最新写入的值。 Volatile变量具备两种特性: 变量可见性就是保证该变量对所有线程可 阅读全文
posted @ 2019-11-22 12:29 MrHH 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 一、CAS(无锁的执行者) CAS包含3个参数:内存值 V 旧的预期值 A 新值 B 当且仅当V值等于A值时,将V的值改为B值,如果V值和A值不同,说明已经有其他线程做了更新,则当前线程什么都不做,最后返回当前V的真实值。CAS操作是抱着乐观的态度进行的(乐观锁),它总是认为自己可以成功地完成操作。 阅读全文
posted @ 2019-11-21 13:21 MrHH 阅读(2854) 评论(0) 推荐(1) 编辑