面试题
面试题总结归纳
烁华
这个作者很懒,什么都没留下…
展开
-
Java中关于String的intern()的深度讲解
我们将从jdk6、jdk7、jdk8的角度来讲解String的intern()方法 首先讲一下。intern()就是查看常量池中是否有存在相应的常量,如果有则返回常量池中该常量的地址,如果没有,则在常量池中创建该常量。 我们来看下jdk6、7、8的内存结构变化: jdk6: jdk7: jdk8: 下面我们将从一道面试题来讲解一下关于intern()方法: public static void main(String[] args){ String s=new String("1"); s.inte原创 2021-01-04 15:15:37 · 599 阅读 · 0 评论 -
如何解决OOM(Out of Memory)
要解决OOM异常或heap space的异常,一般的手段是首先通过内存映像分析工具(如Eclipse Memory Analyzer)对dump出来的堆转储快照进行分析,重点是确认内存中的对象是否是必要的,也就是要先分析清楚到底是出现了内存泄漏(Memory Leak)还是内存溢出(Memory Overflow) 如果是内存泄露,可进一步通过工具查看泄露对象到GC Roots的引用链。于是就能找到泄露对象是通过怎样的路径与GC Roots相关联并导致垃圾收集器无法自动回收他们的。掌握了泄露对象的类型信息.原创 2021-01-02 14:14:49 · 521 阅读 · 0 评论 -
关于Java的构造器中this()或者super()的使用
首先我们清楚,构造器就是为了给实例对象初始化,在构造器中,如果你没有加super的话,系统也会自动帮你super()调用父类对象初始化构造器,其实这里就体现了Java多态的特性,因为子类可以调用父类的方法,所以必须初始化父类构造器,自定义类最起码是继承了Object。所以super()必须放第一行 其次,如果你是在本构造器中调用另一个构造器this(),也是必须放在第一行 还有,在同一个构造器中,你不能同时出现this()和super(),你要明白,这俩哲都是用来初始化对象的,同一个对象你是不能初始化俩次的原创 2021-01-01 20:18:32 · 620 阅读 · 0 评论