被计算机能够读取并执行的程序,根本上解决的问题是读写数据,计算数据,以此为中心进行制定各种规范,最终将这些规范进行转换,比如转换成c语言,或者转换成汇编语言,转换后的语言或者指令可以操作计算机的cpu,或者各种硬件。
追本溯源,计算机读取或者存储的都是二进制0、1代码,进行控制读取也是根据0、1代码进行一系列组合进行的。
java语言也是一种规范,只是以更好理解的方式,促进人机交互更方便罢了,以此发展起来的各种各样的技术,是为了更好的读写数据,只是追求的更加的快速,更加的便捷,更加的安全。
对于各种技术的理解一定是源于对java基础的理解,对JVM的理解。
java第一层次的理解就是它是有规范的,之所以可以和机器能够进行互动,可以读写数据,是因为它的规范,根据这个规范将其代码转换成计算机可以识别的指令,进而达到最终的目的。
实际上想要很好的去理解java,得理解计算机的运行原理,因为java最终的目的就是讲计算机运行的原理解释成java语言,用java语言实现这个运行,可以说java语言是一种翻译语言,将深奥的计算机运行翻译成我们容易理解的方式去操作。
计算机有cpu,有一级缓存,二级缓存,甚至三级缓存,然后是内存,磁盘,网络云盘等等。
既然计算机的核心是读写和计算,那么围绕其产生的一些技术则同样也是核心,那么java的IO,多线程则是必须知道的。
而现在存储又多用到云服务,那么网络这一块也不可小视。
实际上还是要回到java的规范上来,代码规范就不说了,代码是如何执行的,即JVM虚拟机是怎么工作的,是怎么组成的,又是如何运行的,这个很有必要弄明白,弄明白了原理,在编写代码的时候才会知道如果注意一些问题,并且可以吸收请其精华部分,在设计程序的时候,可以利用这些精华,但这个范畴可能会比较大,要想理解,还是要花费不少的时间。
比如jvm的有哪些组成呢?
内存模型是啥,内存组成是啥,再深入进去类是如何加装的,又是如何进行执行的等等问题,可以延伸到很远。
技术的发展很迅速,这个是核心,先掌握核心,再去扩展,再去理解其他技术,我想可能会更容易些,如果直接抛开树干,去观看树叶,可能会耗费更多的精力,树叶太多了,并且不断的在发展,如何去掌握呢,树干核心只有一个,先把握核心,再去看树叶,可能就更容易些。
所以jvm必须看,规范必须看,这就是核心。
无论如何都要把这些弄明白。