学习难在哪呢,是没有学习的毅力,还是总是找不到学习的方向,这是两个问题,但是这两个问题是相辅相成的,因为找不到方向所以就无法坚持,但我想,世上很多事都很难,佛家说众生皆苦,但也不意味着这个世界没有快乐,就我个人,或者大家而言,一定有过通过自己的努力得到自己想要的东西时的快乐,快乐是真真切切存在的,努力也是真真切切付出的,所以,时光不负有心人,所以,追风赶月莫停留,平无尽处是春山。
下面说一说JVM的GC
GC就是垃圾回收的简称,jvm运行的时候会有一堆对象被建立,然后他们不干活时,就要被干掉,因为不被干掉,内存就装不下他们了。
那么他们是怎么被干掉的,jvm是怎么知道他们没用了,这里面涉及到算法,实际上,编程到最火是离不开数学的,想斐波那契数列,斐波那契散列啥啥的,一堆东西都是算法,先不说这个。
那为什么要说GC优化呢
举个栗子
对象在虚拟中越来越多,多到垃圾回收都不赶趟了怎么办?
GC优化就是这个问题的解决方案,我们可以调配置,让jvm分配的内存更大,也有另外一种,就是降低大对象的使用
比方说,导出一个EXCEL这个excle1亿条数据,那肯定就oom咯。
另外有时候,会在项目中发现,有些对象一直不被回收,为啥他那么牛逼呢,因为他是用static声明的,但其实可以不用。他就可以干掉了,那我是怎么知道他是不用的,项目那么大,几十万行代码,我总不能一行一行看吧。
这时候,GC日志就排上用场了。
谁一直被老年代回收呀,谁一直占这内存呀,一目了然。
这些就是我对GC优化的一点理解,如有问题,看到这篇文章的人,也很欢迎指出。