
Java 知识点总结
sunct
来自于猩球的追逐者
展开
-
java AQS源码阅读共享锁的实现(转载)
转载:https://www.jianshu.com/p/76949bca657a, 补充了红色部分一、独占锁与共享锁区别 1)独占功能: 新线程执行时,先判断同步队列是否有节点,如果有,则进入同步队列的队尾 当锁被头节点获取后,只有头节点获取锁,其余节点的线程继续沉睡,等待锁被释放后,才会唤醒下一个节点的线程。 2)共享功能: 新线程...转载 2019-11-12 10:53:17 · 369 阅读 · 0 评论 -
通过Lombok学习如何写好hashCode和equals方法
平时开发过程中,有时需要重写javaBean的hashCode和equals方法,但是一时间却不知道如何编写,百度上一搜索各种写法,总感觉没一个是标准写法。还好,Lombok的@Data会自动给JavaBean填充hashCode和equals方法,可以通过反编译出来,学习下Lombok如何重写hashCode和equals方法的。import lombok.Data;import java...原创 2019-03-22 15:02:24 · 6849 阅读 · 0 评论 -
Java 知识点总结之Java 基本API(四)
18、Collection、Collections的区别答:(1)java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。 Collection ├List...转载 2018-03-29 14:22:47 · 268 阅读 · 0 评论 -
Java 知识点总结之Java 并发 API(二)
6、CountDownLatch的工作原理答:CountDownLatch采用AQS(AbstractQueuedSynchronizer)队列实现,先初始化Count,再countDown,当计数器值到达0时,表示所有任务都执行完了。/** * 用CountDownLatch实现多个任务并发计算,并汇总结果 * @author changtan.sun * */public class...原创 2018-03-29 14:14:12 · 179 阅读 · 0 评论 -
Java 知识点总结之Java 并发 API(一)
1、什么是CAS 答:(1)CAS是一种系统原语(所谓原语属于操作系统用语范畴。原语由若干条指令组成的,用于完成一定功能的一个过程。primitive or atomic action 是由若干个机器指令构成的完成某种特定功能的一段程序,具有不可分割性·即原语的执行必须是连续的,在执行过程中不允许被中断)。(2)CAS是Compare And Set的缩写。CAS有3个操作数,内存值V,旧的预期值...原创 2018-03-29 14:07:52 · 330 阅读 · 0 评论 -
Java 知识点总结之Java IO API(一)
1、同步、异步、阻塞、非阻塞同步 指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪 自己上街买衣服,自己亲自干这件事,别的事干不了。 异步 异步是指用户进程触发IO操作以后便开始做自己的事情,而当IO操作已经完成的时候会得到IO完成的通知(异步的特点就是通知) 告诉朋友自己合适衣服的尺寸,大小,颜色,让朋友委托去卖,然后自己可以去干别的事。(使用异步IO时,Java将...原创 2018-03-29 14:01:57 · 844 阅读 · 0 评论 -
Java 知识点总结之Java 基本API(三)
12、Class.forName和ClassLoader.loadClass的区别答:(1)class.forName()前者除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块和静态变量。 Class.forName(name,initialize, loader)带参函数也可控制是否加载static块。并且只有调用了newInstance()...原创 2018-03-29 13:54:15 · 347 阅读 · 0 评论 -
Java 知识点总结之Java 基本API(二)
7、JDK7.0下ConcurrentHashMap的内部实现机制,hash是怎么实现的,什么时候rehash答:其基本结构如图所示:每一个segment都是一个HashEntry<K,V>[] table, table中的每一个元素本质上都是一个HashEntry的单向队列。比如table[3]为首节点,table[3]->next为节点1,之后为节点2,依次类推。public...转载 2018-03-29 13:50:24 · 472 阅读 · 0 评论 -
Java 知识点总结之Java 基本API(一)
1、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?答:(1)String是字符串常量,StringBuffer和StringBuilder都是字符串变量。后两者的字符内容可变,而前者创建后内容不可变。(2)String不可变是因为在JDK中String类被声明为一个final类。(3)StringBuffer是线程安全的,而Str...原创 2018-03-29 13:45:03 · 631 阅读 · 0 评论