前言
很多东西其实也是自己网上百度的,下面贴的链接就是自己参考的文章,感谢链接作者
Java关键字
Java关键字个人感觉占的比重不是很多,这里挑选了几个不常用的关键字
1.transient
如果一个类必须要实现Serilizable接口进行序列化,但是又有某些字段比较敏感(银行账号、密码)不能被序列化,就可以用transient来修饰这个字段。
网上案例:http://blog.csdn.net/lfsf802/article/details/43239663
2.volatile
再此之前要知道,多线程的时候为了效率,每个线程都会维护一个自己的内存副本。
当一个变量被定义为volatile之后,就可以保证此变量对所有线程的可见性,
即当一个线程修改了此变量的值的时候,变量新的值对于其他线程来说是可以立即得知的。
可以理解成:对volatile变量所有的写操作都能立刻被其他线程得知。
网上案例:http://blog.csdn.net/x_i_y_u_e/article/details/50728602
Java集合框架
谈到Java集合框架,就会联想到Collectoin,你就会答出ArrayList\HashMap\HashSet,就会聊到他们的区别。要是更加深入的话,HashMap的原理、for-each原理以及CopyOnWriteArrayList、ArrayBlockingQueue 而聊到这两个类,继而就会聊到java.util.concurrent包下面的问题
1.Collectoin集合框架
2.ArrayList\HashMap\HashSet区别
3.HashMap原理
参考下面两个链接,只要看懂应该就没什么问题了,简单讲一下自己看过之后的理解。HashMap在1.7之前就是列表+链表,1.8之后改为了列表+红黑树[链表效率更高O(n)与O(logn)的对比]。每次get\put的时候都会将key转换为下标,直接命中数据O(1)
参考链接:https://www.cnblogs.com/chengxiao/p/6059914.html
参考链接:http://www.importnew.com/18633.html
4.for-each原理
5.CopyOnWriteArrayList应用场景
6.ArrayBlockingQueue使用及原理