Java
Java语言特点
1.面向对象
Java语言是一个面向对象的语言,以对象为颗粒度构建起了我们整个程序,使用面向对象语言我们不能只关注过程,而需要对问题进行抽象,建模,最终获得易于维护、扩展的设计方案。
2.跨平台
使用Java语言编写的程序,屏蔽了硬件及操作系统的差异,可以在任何装有JVM的设备上运行,Java语言编写的程序通过编译生成字节码文件(class文件),JVM对此字节码文件进行解释后在对应平台进行执行。
3.使用垃圾回收器回收没有被引用的“垃圾对象”
在使用Java语言进行编程时,我们不需要考虑对象的回收(内存的释放),JVM会自动识别出哪些对象将不会再次被使用,进而将其占用的内存回收,不需要我们手动进行回收。
4.单根结构(Java.lang.Object类)
在Java中,所有类都继承自同一个父类Java.lang.Object,这种结构使得我们的编程变得非常的书写便利(在进行对象转换时,如果没有这种结构,我们很多的业务逻辑的实现将会变得复杂)、结构清晰(这样的结构就像一个金字塔一样,每个类都可以追溯到最终的那个根节点,你想象,你在分析问题的时候是喜欢看到一盘散沙式的线索,还是喜欢金字塔形的互相关联的线索)。
5.安全特性(自己对这部分的理解不深入,很浅显,还需要学习)
Java不支持指针,避免了非法内存的操作;在编译运行时,提供了多重的语法、类型、边界、字节码的检查。
6.解释型语言
Java编译的结果不会直接在操作系统上进行运行,JVM会对编译生成的中间文件(class文件)进行解释运行。
JVM
Java内存管理:
所有线程共享的数据区:
Java学习建议:
1.两条主线:Java语言本身的学习和JVM的学习
2.工具选择:InteliJ IDEA(自己使用之后爱不释手)或Eclipse
3.使用最新稳定版的JDK版本,目前使用JDK8比较好(2018年5月)。
4.多看优秀源码(学习别人优秀的编码习惯和编程思想),多思考(形成自己的知识体系和理论体系),多实践(将自己学习到的东西和思考形成的理论应用于实践)。任何学习基本都是这三个方面,1.先将前人积累的知识进行学习,使自己能够多某一领域有初步了解,2.将所学的知识与当前社会现状加上自己的实践通过思考后形成自己的知识理论体系,最后在将自己的学识、理论应用于实践进行检验。(再学习其他人在此领域通过实践检验的理论知识,再进行思考、再进行实践,不断循环,不断提升)。