qiezijiajia

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

07 2017 档案

摘要:面试过程中会经常问到的一些问题: 一.fullGC的触发条件有哪些? 1、调用System.gc()方法 2、老年代内存空间不足 3、永久代内存空间不足 4、统计得到MinorGC晋升到老年代的平均内存大小大于老年代的剩余空间;也就是在MinorGC时会做检测,如果超过,则立即进行fullGC。 5 阅读全文
posted @ 2017-07-28 16:03 qiezijiajia 阅读(360) 评论(0) 推荐(0)

摘要:通常面试如果说会java,这个问题一般必问,如果能从堆内存划分、回答到垃圾回收器、再到GC监控,这样就比较满意了 JVM进行GC的时候会停止应用程序的执行,除了GC线程外,其他线程都处于等待状态,所以GC的优化很多时候就是尽量减少停顿时间。 说到Java垃圾回收,先有必要介绍一下java的内存结构, 阅读全文
posted @ 2017-07-26 11:53 qiezijiajia 阅读(378) 评论(0) 推荐(0)

摘要:要读取个大文件,文件大概是3G左右,担心read会出现内存溢出的情况,网上找了个靠谱的用法: The with statement handles opening and closing the file, including if an exception is raised in the inn 阅读全文
posted @ 2017-07-25 17:33 qiezijiajia 阅读(194) 评论(0) 推荐(0)

摘要:Java中的class.forName和classLoader都可以用来对类的加载。 class.forName除了把类加载到JVM中,还会对类进行解释,执行类的static代码块; classLoader只是把类加载到JVM中,只有在调用newInstance的时候才会去执行static代码块; 阅读全文
posted @ 2017-07-24 11:32 qiezijiajia 阅读(529) 评论(0) 推荐(0)

摘要:在其他博客看到过这种关于初始化顺序的文章,仔细一想,自己还真的不太清楚具体的顺序是什么样的,搞段代码测试一下: class B extends A ,然后A类也就是父类里面有静态代码块,普通代码块,静态方法,静态成员变量,普通成员变量,普通方法。 在子类中,执行main方法,new LoaderOr 阅读全文
posted @ 2017-07-24 11:09 qiezijiajia 阅读(179) 评论(0) 推荐(0)

摘要:碰到一个比较奇葩的问题,在crontab里面执行python脚本,怎么着都不执行,查看cron的log,提示已经执行了,但是任务就是不执行,而且命令手工执行是没有问题的。 0 1 * * * source /home/***/.bash_profile && /home/***/bin/python 阅读全文
posted @ 2017-07-21 17:08 qiezijiajia 阅读(1459) 评论(0) 推荐(0)

摘要:1.最底层可以配置的是MySQL自带的query cache, 2.mybatis的一级缓存,默认情况下都处于开启状态,只能使用自带的PerpetualCache,无法配置第三方缓存 3.mybatis的二级缓存,可以配置开关状态,默认使用自带的PerpetualCache,但功能比较弱,能够配置第 阅读全文
posted @ 2017-07-19 13:30 qiezijiajia 阅读(184) 评论(0) 推荐(0)

摘要:Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序问题。从语法上讲,Synchronized总共有三种用法: (1)修饰普通方法 阅读全文
posted @ 2017-07-19 12:12 qiezijiajia 阅读(1527) 评论(0) 推荐(0)

摘要:类加载器的作用不仅仅是实现类的加载,它还与类的的“相等”判定有关,关系着Java“相等”判定方法的返回结果,只有在满足如下三个类“相等”判定条件,才能判定两个类相等。 1、两个类来自同一个Class文件 2、两个类是由同一个虚拟机加载 3、两个类是由同一个类加载器加载 JVM类加载器 启动类加载器( 阅读全文
posted @ 2017-07-18 17:15 qiezijiajia 阅读(194) 评论(0) 推荐(0)

摘要:1、什么是类加载?什么时候进行类加载? 2、什么是类初始化?什么时候进行类初始化? 3、什么时候会为变量分配内存? 4、什么时候会为变量赋默认初值?什么时候会为变量赋程序设定的初值? 5、类加载器是什么? 6、如何编写一个自定义的类加载器? 首先,在代码编译后,就会生成JVM(Java虚拟机)能够识 阅读全文
posted @ 2017-07-18 16:27 qiezijiajia 阅读(202) 评论(0) 推荐(0)

摘要:之前总结过HashMap的原理,同时对源码进行了阅读,不过是针对JDK1.7的版本,同样针对1.8的版本也来做一遍记录 1.HashMap1.8针对1.7的修改点有哪些? JJDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等,其中最重要的一个优化就是桶中的元素不 阅读全文
posted @ 2017-07-14 11:05 qiezijiajia 阅读(760) 评论(0) 推荐(0)

摘要:之所以分两篇文章记录,因为之前一直看的1.7的源码,而且网上很多的都是关于1.7的,今天在1.8上打开源码一看,居然懵了。 没想到1.8的实现变化这么大。所有特地拿一篇文章来记录下。 本章只介绍1.7的情况 1.HashMap存储结构 哈希表是由数组+链表组成的,一个长度为16的数组中,每个元素存储 阅读全文
posted @ 2017-07-13 22:52 qiezijiajia 阅读(422) 评论(1) 推荐(0)

摘要:CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可以对CopyOnWrite容器进行并发的读,而不需 阅读全文
posted @ 2017-07-07 18:20 qiezijiajia 阅读(164) 评论(0) 推荐(0)

摘要:这三个集合类是经常会用到及问到的,今天来总结一下区别及各自特点,; 一、区别 接下来从源码的角度来分析一下区别,用事实说话 1.HashMap线程非安全,HashTable是线程安全的; HashTable的get源码,使用synchronized关键字,说明是线程安全的,HashMap没有; 2. 阅读全文
posted @ 2017-07-07 17:28 qiezijiajia 阅读(236) 评论(0) 推荐(0)

摘要:一直没有写博客的习惯,技术什么的都是笔记记录一下,突然发现自己表达能力不行了,急需锻炼锻炼,所以还是需要经常写写博客来锻炼一下 阅读全文
posted @ 2017-07-07 16:39 qiezijiajia 阅读(79) 评论(0) 推荐(0)