Java高级面试题解析(一)】的更多相关文章

最近,在看一些java高级面试题,我发现我在认真研究一个面试题的时候,我自己的收获是很大的,我们在看看面试题的时候,不仅仅要看这个问题本身,还要看这个问题的衍生问题,一个问题有些时候可能是一个问题群(如果只关注问题本身,可以跳过补充部分). 这个是我一个多星期的奋战结果,把它记录下来,如有不当,希望大家不吝赐教. java 线程池的实现原理,threadpoolexecutor关键参数解释 原理见下图 (或者:https://blog.csdn.net/u013332124/article/de…
基本概念 操作系统中 heap 和 stack 的区别 heap是堆,stack是栈,是两种不同的数据结构.堆是队列优先,先进先出:栈是先进后出. 在java多线程中,每个线程都有自己的栈:不同的线程共享一个堆. 在java内存中,栈中存放的大多数是方法的参数.局部变量,调用完后立即释放空间:堆中存放的是由new创建的对象和数组,生命周期由JVM的垃圾回收算法决定. 什么是基于注解的切面实现 首先说切面编程:为了方便,将一些公共的类似的地方抽取出来,开发时只需要关注具体业务,这个公共类似的东西就…
Java概念题 拆箱装箱的原理 自动装箱时编译器调用valueOf将原始类型值转换成对象,同时自动拆箱时,编译器通过调用类似intValue(),doubleValue()这类的方法将对象转换成原始类型值. 只有double和float的自动装箱代码没有使用缓存,每次都是new 新的对象,其它的6种基本类型都使用了缓存策略.      使用缓存策略是因为,缓存的这些对象都是经常使用到的(如字符.-128至127之间的数字),防止每次自动装箱都创建一次对象的实例.      而double.flo…
简述23种设计 抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口.而无需指定它们详细的类. 适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口.适配器模式使得原本因为接口不兼容而不能一起工作的类能够一起工作. 桥梁模式(Bridge):将抽象部分与他的实现部分分离.使他们都能够独立的变化. 建造模式(Builder):将一个复杂对象的构建与他的标表示分离,使相同的构建过程能够创建不同的表示. 责任链模式(Chain of Resp…
这是我收集的10道高级Java面试问题列表.这些问题主要来自 Java 核心部分 ,不涉及 Java EE 相关问题.你可能知道这些棘手的 Java 问题的答案,或者觉得这些不足以挑战你的 Java 知识,但这些问题都是容易在各种 Java 面试中被问到的,而且包括我的朋友和同事在内的许多程序员都觉得很难回答. 1. 为什么等待和通知是在 Object 类而不是 Thread 中声明的? 一个棘手的 Java 问题,如果 Java编程语言不是你设计的,你怎么能回答这个问题呢.Java编程的常识和…
最近面试了一些公司,针对面试中遇到的问题在此记录,提升自己,造福大家 一.java源码相关 ArrayList创建和add等各种api使用原理 HashMap 的创建,put原理,和HashTable的区别,resize的原理 HashMap和HashTable在1.7版本之后的区别,针对创建时和put时处理的方式不同(红黑树,CAS.ABA处理) 各种IO交互(AIO/ NIO/ BIO) 二. JVM相关 (bookname:深入理解java虚拟机) jvm分区 java文件加载到gc全流程…
List和Set比较,各自的子类比较 对比一:Arraylist与LinkedList的比较 1.ArrayList是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高(在内存里是连着放的). 2.因为地址连续, ArrayList要移动数据,所以插入和删除操作效率比较低. 3.LinkedList基于链表的数据结构,地址是任意的,所以在开辟内存空间的时候不需要等一个连续的地址,对于新增和删除操作add和remove,LinedList比较占优势. 4.因为Lin…
JVM 1.请介绍一下JVM内存模型??用过什么垃圾回收器都说说呗 2.线上发送频繁full gc如何处理? CPU 使用率过高怎么办? 如何定位问题?如何解决说一下解决思路和处理方法 3.知道字节码吗?字节码都有哪些?Integer x =5,int y =5,比较x =y 都经过哪些步骤? 4.讲讲类加载机制呗都有哪些类加载器,这些类加载器都加载哪些文件? 手写一下类加载Demo 5.知道osgi吗? 他是如何实现的??? 6.请问你做过哪些JVM优化?使用什么方法达到什么效果??? 7.c…
一.基础知识: 1)集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList:HashSet,TreeSet): 2)HashMap的底层实现,之后会问ConcurrentHashMap的底层实现: 3)如何实现HashMap顺序存储:可以参考LinkedHashMap的底层实现: 4)HashTable和ConcurrentHashMap的区别: 5)String,StringBuffer和StringBuilder的区别: 6)Object的方法有…
每天搬一点砖,总有一天成为大牛! 看问题的时候请不要立马去翻答案,多想想. 看完答案可以问问为什么,尝试拓展!一起加油吧! 每个答案后面都有一个小彩蛋(一个以上的拓展问题),钻研让你先人一步. java 基础篇(初中级)    1.java跨平台的原因  https://www.cnblogs.com/leifei/p/11745467.html 2.javaInt占几个字节 3.什么是装箱和拆箱 4.==和.equals的区别 5.String,StringBuffer与StringBuild…