Java面试整理
Java面试整理
我爱花落随
假如编程易懂得,那么程序员就不会热情地写出注释,也不会有得到编程的快乐。
展开
-
常见面试题(二)JVM与内存管理
1、什么情况下会产生栈内存溢出异常?如果线程请求分配的栈容量超过java虚拟机栈允许的最大容量的时候,java虚拟机将抛出一个StackOverFlowError异常,可通过-Xss参数适当调整大小。2、JVM内存结构,以及Eden和Survivor比例1)堆内存:最大的一块内存区域,线程共享,主要用于存放对象实例,分为一个Eden和两个Survivor,比例为8:1:12)方法区...原创 2019-08-04 11:05:52 · 219 阅读 · 0 评论 -
常见面试题(一)java多线程
1、多线程的几种实现方式继承Thread、实现Runnable接口、创建有返回结果的线程(创建Callable线程,然后封装FutureTask任务,获取结果方法为阻塞)2、什么是线程安全在多线程环境下,执行程序始终能得到预期的正确结果3、volatile的原理,作用,能代替锁么1)作用:保持内存可见性和防止指令重排序2)原理:观察加入volatile关键字和没有加入...转载 2019-08-04 15:17:20 · 295 阅读 · 0 评论 -
常见面试题(五)java 类的加载过程、反射、动态代理
1、有哪些JVM自带类加载器?根加载器bootstrap:加载虚拟机核心类库,C++代码编写扩展类加载器:负载加载jre/lib/ext目录下类系统类加载器:加载classpath下的类库2、类的实例化顺序1. 父类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行2. 子类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行3. 父类实例成员和实例初始化块 ,按...原创 2019-08-14 15:00:49 · 241 阅读 · 0 评论 -
常见面试题(四)java 字符串
1、String类能被继承吗,为什么?不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变。2、String,Stringbuffer,StringBuilder的区别。1).可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。 private...原创 2019-08-14 14:59:42 · 109 阅读 · 0 评论 -
常见面试题(三)java基础
1、如何在父类中为子类自动完成所有的hashcode和equals实现?这么做有何优劣。在覆盖equals方法的时候,你必须要遵守它的通用约定。下面是约定的内容,来自Object的规范[JavaSE6]自反性。对于任何非null的引用值x,x.equals(x)必须返回true。对称性。对于任何非null的引用值x和y,当且仅当y.equals(x)返回true时,x.equals(y...原创 2019-08-14 14:58:18 · 324 阅读 · 0 评论 -
常见面试题(六)单例模式的实现
1)饿汉式:instance作为类变量,并且直接得到了初始化,类被主动使用时会完成实例的创建缺点:如果instance被创建很久没有被使用,会在堆内存中留驻很久,如果成员是很重的资源,则不建议使用总结:可以保证多线程下的唯一实例,getInstance方法性能也比较高,但是无法进行懒加载2)懒汉式调用getInstance时,如果instance==null进行创建,在多线程环...原创 2019-09-30 16:06:26 · 141 阅读 · 0 评论 -
常见面试题(七)消息中间件
https://www.cnblogs.com/kevingrace/p/9443270.html1、消息队列的使用场景解耦、异步、削峰2、消息队列的重发、补偿策略主要因为消费者从队列获取消息,未处理完成发生故障,恢复启动后可能会丢失刚才处理失败的消息。activeMQ消息监听器一般为:MessageListener。而使用SessionAwareMessageListener...原创 2019-09-30 16:08:10 · 331 阅读 · 0 评论 -
常见面试题(八)内存数据库 NOSQL
1、如何使用RedisTemplate访问Redis数据结构String、list、hashtable,set,zsethttps://www.jianshu.com/p/7bf5dc61ca06/2、常见的缓存策略有哪些LRU 最近最少使用LFU 使用频率最少3、缓存和数据库一致性解决方案采用延时双删策略在写库前后都进行redis.del(key)操作,并且设定合...原创 2019-09-30 16:09:06 · 597 阅读 · 0 评论 -
常见面试题(九)tomcat
1、简单讲讲tomcat结构,以及其类加载器流程,线程模型等模块组成结构:Tomcat的核心组件就Connector和Container,一个Connector+一个Container(Engine)构成一个Service,Service就是对外提供服务的组件,有了Service组件Tomcat就能对外提供服务了,但是光有服务还不行,还需要有环境让你提供服务才行,所以最外层的Server就是为...原创 2019-09-30 16:09:50 · 503 阅读 · 0 评论