Java
文章平均质量分 66
Java笔记
Stig_Q
我认出风暴而激动如大海
展开
-
【JAVA核心】Java GC机制详解
每个程序员都遇到过内存溢出的情况,程序运行时,内存空间是有限的,那么如何及时的把不再使用的对象清除将内存释放出来,这就是GC要做的事。转载 2022-11-28 23:15:33 · 7138 阅读 · 0 评论 -
Java的类加载过程
其中的可以理解为阶段。类不单单只会在创建对象的时候被加载,一个类可能会有静态/非静态变量,静态/成员方法等等,再操作这些类里的“东西”的时候也会被加载,先简单介绍一下:1)使用new关键字来实例化对象;2)读取或者设置一个类的静态字段;3)调用一个类的静态方法;4)对类进行反射调用(java.lang.reflect),如果类没有被加载,就要先进行加载;5)初始化一个类的时候,如果其父类还没被初始化,则要先对这个父类进行初始化;原创 2022-11-25 11:38:09 · 1168 阅读 · 0 评论 -
Java对象的创建过程
一个对象的创建过程主要步骤有:类加载检查-分配内存-初始化零值-设置对象头-执行init方法。当虚拟机碰到new的时候,就先去检查对象的类是否已经被加载过,如果没有被加载过,就要先进行类的加载。一个对象所占的内存在类加载完毕后即可以确定了,于是虚拟机就需要在Java的堆上分配一块确定大小的空间给这个新的对象。分配的方式有“指针碰撞”(适合没有内存碎片的情况)和“空闲列表”(适合内存不规整的情况),分配的方式如果学习过操作系统的话就会有浓浓的熟悉感。给对象分配了内存后,JVM就需要对这个对象里的空间都初始化为原创 2022-11-25 11:29:54 · 1908 阅读 · 0 评论 -
理解双亲委派机制
类加载器是jre的一部分,负责动态将类添加到Java虚拟机。转载 2022-11-23 14:16:22 · 337 阅读 · 0 评论 -
Error与Exception的区别
(错误)是系统中的错误,程序员是不能改变的和处理的,是在程序编译时出现的错误,只能通过修改程序才能修正。一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。“水池”,就是代码正常运行的外部环境,如果水池崩溃(系统崩溃),或者池水溢出(内存溢出)等,这些都是跟水池外部环境有关。“水池里的水”,就是正常运行的代码,水污染了、有杂质了,浑浊了,这些影响水质的因素就是Exception。原创 2022-11-22 15:14:59 · 398 阅读 · 0 评论 -
String、StringBuffer、StringBuilder的区别
在进行多线程处理的时候,如果多个线程对于这一个对象同时产生操作,会产生预期之外的结果。对于StringBuilder来说,执行效率虽然高,但是因为线程不安全,所以不建议在多线程的环境下对同一个StringBuilder对象进行操作。中,因为所有的String,默认都是以常量形式保存,且由final修饰,因此在线程池中它是线程安全的。的情况,在进行字符串操作的时候,它使用了synchronize关键字,对方法进行了同步处理。对于String来说,是把数据存放在了。拼接的工作,效率是非常底下的。原创 2022-10-19 14:55:21 · 236 阅读 · 0 评论 -
没有抽象方法的抽象类有什么意义?
做法:用一个类A去实现一个接口(多个方法),将A作为父类,再用具体实现的子类继承实现接口的父类A,子类就可以只重写父类中的需要用的方法,减少无用代码的书写。但是如果不想子类把所有的方法都实现,我只想用到一个,其他的我还不想去覆盖。原创 2022-10-19 11:19:33 · 678 阅读 · 0 评论