对Java学习的粗浅理解

最近一直在看《深入理解java虚拟机》,这本书很厚很重,用来当枕头还有些硌得慌,但是通过慢慢的阅读发现此书确实对自己有很大的裨益,但是我是一个脑栈很浅,计算频次很低,内存又小的人。看这个书我每次只能看几页,看着看着就会脑袋发热,然后阖上书又马上会忘记刚刚看到的内容。所以我这个人看一样东西必须从大往细看,不掌握体系看细节的话,每次都像是管中窥豹。就像之前看了很多博客,以为自己学习了很多东西,但是都是十分零碎的知识点,导致脑内存碎片化,GC频次很高,而且还要暂停一些时间仔细消化,看一篇博客玩手机俩小时,长此以往,如果想看一整本书就会发现脑袋里面的散乱内存根本放不下一整本书,这样就只能。。。。再玩两个小时的手机啦。

       所以当我看完手机孤枕难眠的时候,我总是会回想这些年,我做的唯一一件事情就是一直在弥补初中没好好学习的过失,初中没好好学习高中基础就差,高中学习不好就没考上211,没从985毕业就只能去小公司,小公司就没有高薪资还要不断加班,工作之后就会没房没车没妹子,就只能蜗居在隔断里听隔壁男女的翻云覆雨。这样的时候我总是会思考,自己这两年也在不断学习,为什么感觉跟大牛还是?️那么大的距离,为什么我拿的薪水还不如阿里的应届生。所有的一切都指向一个原因,那就是对技术的理解太片面,虽然自我感觉学了一些东西,但都是盲人摸象,不识庐山真面目。那么长时间看来看去也只是在迷雾里面摸着一块块石头感觉山好高,山好高。但如果我们跳出山里的视野,从上向下俯瞰java,或许就能简单一些了。

       从计算机的角度来说,jvm不过是应用层的一层罢了,java在我们和机器码/硬件之间创造了一种近人类的语言,虽然java语言基于英文。但是我们回头想一下,计算机是类脑的机器,java是类英语的语言。那我们学习java技术的时候,其实也在学习另一种人。或者简单的说是学习一种类人的行为。如果把学习java技术当成学习人类习惯的话,那一些设计原则和模式就可能稍微好理解一点了。比如我们说的观察者模式,完全就是模仿人类的行为。命令模式也是基于人类的习惯总结出来的。工厂模式也是模仿人类工厂生产的一种设计模式。更不要说生产者和消费者模式。

       比如我们说的jvm,虚拟机就是在计算机中隔离出一块较大的内存空间,从我们的磁盘中读取war或者jar到这块内存,把需要的.class文件加载成Class类,放在内存中,需要的时候就放到缓存中,再读入计算机栈中进行运算,cpu运算的过程中或许会遇到读取别的文件,输出到别的文件中的过程,也会遇到cpu处理别的应用的事务。即使是jvm也要争用cpu资源,所以我们编写的程序也叫application,简称app。那我们完全可以按照计算机操作系统的层面来理解jvm。其实jvm这本书里面讲到方法的出栈入栈还有GC时候的安全点和安全域就是指计算机cpu资源轮换到下一个线程时的保存操作。线程的并行与cpu的多线程操作系统有关,并发跟计算机资源的争用有关。那这个时候我们从计算机的角度看jvm或者是java技术,是不是就比较简单了呢

其实对于上面两个观点,从学习人的行为学习设计模式,从学习计算机原理学习jvm,对于程序员可能更好理解,胜过读好几篇技术博客。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值