摘要:面试过程中会经常问到的一些问题: 一.fullGC的触发条件有哪些? 1、调用System.gc()方法 2、老年代内存空间不足 3、永久代内存空间不足 4、统计得到MinorGC晋升到老年代的平均内存大小大于老年代的剩余空间;也就是在MinorGC时会做检测,如果超过,则立即进行fullGC。 5
阅读全文
07 2017 档案
摘要:面试过程中会经常问到的一些问题: 一.fullGC的触发条件有哪些? 1、调用System.gc()方法 2、老年代内存空间不足 3、永久代内存空间不足 4、统计得到MinorGC晋升到老年代的平均内存大小大于老年代的剩余空间;也就是在MinorGC时会做检测,如果超过,则立即进行fullGC。 5
阅读全文
摘要:通常面试如果说会java,这个问题一般必问,如果能从堆内存划分、回答到垃圾回收器、再到GC监控,这样就比较满意了 JVM进行GC的时候会停止应用程序的执行,除了GC线程外,其他线程都处于等待状态,所以GC的优化很多时候就是尽量减少停顿时间。 说到Java垃圾回收,先有必要介绍一下java的内存结构,
阅读全文
摘要:要读取个大文件,文件大概是3G左右,担心read会出现内存溢出的情况,网上找了个靠谱的用法: The with statement handles opening and closing the file, including if an exception is raised in the inn
阅读全文
摘要:Java中的class.forName和classLoader都可以用来对类的加载。 class.forName除了把类加载到JVM中,还会对类进行解释,执行类的static代码块; classLoader只是把类加载到JVM中,只有在调用newInstance的时候才会去执行static代码块;
阅读全文
摘要:在其他博客看到过这种关于初始化顺序的文章,仔细一想,自己还真的不太清楚具体的顺序是什么样的,搞段代码测试一下: class B extends A ,然后A类也就是父类里面有静态代码块,普通代码块,静态方法,静态成员变量,普通成员变量,普通方法。 在子类中,执行main方法,new LoaderOr
阅读全文
摘要:碰到一个比较奇葩的问题,在crontab里面执行python脚本,怎么着都不执行,查看cron的log,提示已经执行了,但是任务就是不执行,而且命令手工执行是没有问题的。 0 1 * * * source /home/***/.bash_profile && /home/***/bin/python
阅读全文
摘要:1.最底层可以配置的是MySQL自带的query cache, 2.mybatis的一级缓存,默认情况下都处于开启状态,只能使用自带的PerpetualCache,无法配置第三方缓存 3.mybatis的二级缓存,可以配置开关状态,默认使用自带的PerpetualCache,但功能比较弱,能够配置第
阅读全文
摘要:Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序问题。从语法上讲,Synchronized总共有三种用法: (1)修饰普通方法
阅读全文
摘要:类加载器的作用不仅仅是实现类的加载,它还与类的的“相等”判定有关,关系着Java“相等”判定方法的返回结果,只有在满足如下三个类“相等”判定条件,才能判定两个类相等。 1、两个类来自同一个Class文件 2、两个类是由同一个虚拟机加载 3、两个类是由同一个类加载器加载 JVM类加载器 启动类加载器(
阅读全文
摘要:1、什么是类加载?什么时候进行类加载? 2、什么是类初始化?什么时候进行类初始化? 3、什么时候会为变量分配内存? 4、什么时候会为变量赋默认初值?什么时候会为变量赋程序设定的初值? 5、类加载器是什么? 6、如何编写一个自定义的类加载器? 首先,在代码编译后,就会生成JVM(Java虚拟机)能够识
阅读全文
摘要:之前总结过HashMap的原理,同时对源码进行了阅读,不过是针对JDK1.7的版本,同样针对1.8的版本也来做一遍记录 1.HashMap1.8针对1.7的修改点有哪些? JJDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等,其中最重要的一个优化就是桶中的元素不
阅读全文
摘要:之所以分两篇文章记录,因为之前一直看的1.7的源码,而且网上很多的都是关于1.7的,今天在1.8上打开源码一看,居然懵了。 没想到1.8的实现变化这么大。所有特地拿一篇文章来记录下。 本章只介绍1.7的情况 1.HashMap存储结构 哈希表是由数组+链表组成的,一个长度为16的数组中,每个元素存储
阅读全文
摘要:CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可以对CopyOnWrite容器进行并发的读,而不需
阅读全文
摘要:这三个集合类是经常会用到及问到的,今天来总结一下区别及各自特点,; 一、区别 接下来从源码的角度来分析一下区别,用事实说话 1.HashMap线程非安全,HashTable是线程安全的; HashTable的get源码,使用synchronized关键字,说明是线程安全的,HashMap没有; 2.
阅读全文
摘要:一直没有写博客的习惯,技术什么的都是笔记记录一下,突然发现自己表达能力不行了,急需锻炼锻炼,所以还是需要经常写写博客来锻炼一下
阅读全文
|