开这篇博客,意在从头到尾系统学习Java,按周计划进行,没有特别意外情况,都是每周日更新blog~
一、11.19-11.25:
Java基础知识-阅读源代码
1、String源码:https://www.hollischuang.com/archives/99
2、threadlocal源码:https://www.sczyh30.com/posts/Java/java-concurrent-threadlocal/
3、arraylist&linkedlist&vector源码:https://www.hollischuang.com/archives/1349
4、hashmap源码:https://www.jianshu.com/p/59240407fd9a
5、linkedhashmap源码:https://blog.csdn.net/ns_code/article/details/37867985
Java基础知识-Java各种变量类型
基本类型所占的字节数bits :https://www.jianshu.com/p/fd560bc39adb
熟悉String的使用,熟悉String的各种函数
1、replaceFirst、replaceAll、replace区别
自动拆装箱
Integer的缓存机制:https://www.hollischuang.com/archives/2700
二、11.26-12.02:
熟悉Java中各种关键字
1、instanceof
instanceof 是 Java 的一个二元操作符,类似于 ==,>,< 等操作符。
instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。
2、volatile:http://www.importnew.com/23520.html
3、synchronized
synchronized 是 Java 中的关键字,是利用锁的机制来实现同步的。
锁机制有如下两种特性:
-
互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程中的协调机制,这样在同一时间只有一个线程对需同步的代码块(复合操作)进行访问。互斥性我们也往往称为操作的原子性。
可见性:必须确保在锁被释放之前,对共享变量所做的修改,对于随后获得该锁的另一个线程是可见的(即在获得锁时应获得最新共享变量的值),否则另一个线程可能是在本地缓存的某个副本上继续操作从而引起不一致。
4、final:http://www.importnew.com/7553.html
5、static
“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。”
这段话虽然只是说明了static方法的特殊之处,但是可以看出static关键字的基本作用,简而言之,一句话来描述就是:
方便在没有创建对象的情况下来进行调用(方法/变量)。
很显然,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。
static可以用来修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能。
6、enum:https://zhuanlan.zhihu.com/p/34187385
补充·:Java单例模式的高效实现 https://www.jianshu.com/p/4e8ca4e2af6c
Java反射和Javassist
Java反射:http://www.importnew.com/21235.html
Java序列化
Java序列化以及反序列化:https://blog.csdn.net/qq_33642117/article/details/52225481
为什么需要序列化:https://blog.csdn.net/u010178308/article/details/80411848
Java语法糖
Java中语法糖原理、解语法糖:https://gitbook.cn/books/5a61532299d4bd32a9872506/index.html
学习Java核心技术编程
学习笔记:https://blog.csdn.net/zhang_guyuan/article/details/84726328