- 博客(5)
- 收藏
- 关注
原创 java面试资料—多线程
(1)关于java线程池 预先启动一些线程,线程无限循环从任务队列中获取一个任务进行执行,直到线程池被关闭。如果某个线程因为执行某个任务发生异常而终止,那么重新创建一个新的线程而已。如此反复。 流程: a.一个任务提交,如果线程池大小没达到corePoolSize(最小线程数量),则每次都启动一个worker也就是一个线程来立即执行 b.如果来不及执行,则把多余的线程放到wor
2017-07-31 16:18:37 238
原创 java面试资料—JVM相关
(1)类的实例化过程 ①首先会执行类中static代码块(不管代码块是否在类的开头还是末尾处),如果这个类有父类,同样会优先查找父类中的static代码块,然后是当前类的static。 ②然后会从父类的第一行开始执行,直至代码末尾处,中间不管是有赋值还是method调用,都会按顺序一一执行(method),普通代码块{ }... ③代码执行完了(包括变量的声明)才开始构造,首先是父类的构造函
2017-07-31 16:18:24 269
原创 java面试资料-基础知识
(1)String类为什么是final? 主要是为了“效率” 和 “安全性” 的缘故。 若 String允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所以String被定义成final。 为了程序的安全性,因为String类共享,所以要控制不能被修改。 (2)关于HashMap JDK1.8中,HashMap采用位桶+链表+红黑树实现,当链表长度超过阈值(8)时,将链表
2017-07-26 21:56:01 500
原创 常用的几种设计模式
1.单例设计模式singleton——只能产生一个实例化对象的设计模式 (为什么不用静态变量代替呢?因为静态变量在程序一开始就创建了对象,可能会比较消耗资源)public class Singleton { private static Singleton uniqueInstance; private Singleton(){} public static Singl
2017-07-26 10:35:28 363
转载 常见的排序算法
排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进行整理便于理解记忆显得很重要。每种算法都有它特定的使用场合,很难通用。因此,我们很有必要对所有常见的排序算法进行归纳。 我不喜欢死记硬背,我更偏向于弄清来龙去脉,理解性地记忆。比如下面这张图,我们将围绕这张图来思考几个问题。 上面的这张图来自一个PPT。它概括了数据结构中的所有常见
2017-07-05 16:22:24 324
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人