什么样的java零基础教程好呢?
推荐
在线提问>>
Java,一门世界公认的开发语言,在开发界一直有着很高的地位,而且无论有多少种编程语言,这种地位都无法撼动它的地位。 Java语言之所以能有这么高的地位,是因为它自身的特点,那么对于零基础想学java的同学来说,什么样的java零基础教程好呢?
想要学好java,首先要了解java的jvm运行。 千锋带你了解一下jvm运行时的内存是什么样的? Java堆从GC的角度还可以细分为:新生代(Eden区、From Survivor区和To Survivor区)和老年代。
新一代
用于存储新对象。 一般占用堆的1/3空间。 由于频繁创建对象,新生代会频繁触发MinorGC进行垃圾回收。 新生代分为三个区域:Eden区、SurvivorFrom、SurvivorTo。
Eden区:Java新对象的诞生地(如果新创建的对象占用内存大,会直接分配给老年代)。 当Eden区内存不够时,会触发MinorGC对新生代区进行垃圾回收。
SurvivorFrom:上次GC的幸存者,作为本次GC的扫描人。
SurvivorTo:保留MinorGC进程中的Survivor。
老一辈
它主要存储应用程序中长期存在的内存对象。 老年代的对象比较稳定,不会频繁执行MajorGC。 MinorGC一般在MajorGC之前进行,使新生代中的对象提升到老年代,当空间不够时触发。 当无法找到足够大的连续空间分配给新创建的较大对象时,也会提前触发MajorGC进行垃圾回收腾出空间。
MajorGC采用标记清除算法:先扫描所有老年代一次,标记出存活的对象,然后回收未标记的对象。 MajorGC耗时较长,因为需要扫描回收。 MajorGC 会产生内存碎片。 为了减少内存丢失,我们一般需要合并或者标记出来,下次直接分配。 当老年代太满放不下时,会抛出OOM(Out of Memory)异常。
零基础想学java,需要学习很多知识,必须从基础开始。如果你想学java零基础教程,那么千锋小编欢迎你来我司java培训实地考察。