Java基础
Java相关基础知识及面试题
零一熊
这个作者很懒,什么都没留下…
展开
-
Java中的线程
java线程1.创建线程的方式:继承Thread类,实现runnable接口,实现callable接口,线程池2.run和start的区别:start方法用来启动线程,此时线程处于就绪状态,并没有运行。run方法包含了此线程的执行内容,此时线程处于运行状态,执行run方法中的代码,run方法结束,线程终止,cpu再调度其它线程。3.几种线程池:newCachedThreadPool:会重用线程池中的线程,如果当前没有可用线程,会创建一个新线程加入池中,如果池中有线程60s未处于活动状态会被终止原创 2021-07-19 17:39:39 · 49 阅读 · 0 评论 -
jdk1.7 ConcurrentHashMap详解(源码+注释)
浅析结构在jdk1.7中ConcurrentHashMap整体上可以看作是一个双层数组的结构。外层是Segment数组,数组的每个Segment在操作时都相对独立,在加锁的过程中只会对某个Segment加锁而不是整个数组。每个Segment内是一个HashEntry数组,类似于一个HashMap。//无参构造器会用默认参数调用该构造器 //参数为默认的初始容量,加载因子,并发级别 initialCapacity==16,loadFactor==0.75f,concurrencyLevel==16原创 2021-07-15 17:55:20 · 590 阅读 · 0 评论 -
浅拷贝和深拷贝
被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。即对象的浅拷贝会对“主”对象进行拷贝,但不会复制主对象里面的对象。”里面的对象“会在原来的对象和它的副本之间共享。深拷贝是一个整个独立的对象拷贝,深拷贝会拷贝所有的属性,并拷贝属性指向的动态分配的内存。当对象和它所引用的对象一起拷贝时即发生深拷贝。深拷贝相比于浅拷贝速度较慢并且花销较大。简而言之,深拷贝把要复制的对象所引用的对象都复制了一遍。...原创 2021-07-08 19:06:33 · 57 阅读 · 0 评论 -
String
1.两个字符串相加是否是新的实例:是的。两个字符串相加会通过创建一个StringBuilder来实现,append两个字符串用toString来返回。2.StringBuffer用append方式,对象是否会发生变化会的。append会调用父类AbstractStringBuilder中的append方法,如果拼接后的字符串长度大于当前容量,会先尝试2倍+2的容量能否满足,不满足则创建拼接后字符串大小的数组并将字符串复制过来,如果拼接后的字符串长度小于当前容量,则直接复制到数组中。...原创 2021-07-08 19:06:03 · 91 阅读 · 0 评论