![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题
爱辣条
这个作者很懒,什么都没留下…
展开
-
多线程面试题
线程池的优点? 线程是稀缺资源,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以重复使用。 线程池为线程生命周期开销问题和资源不足问题提供了解决方案。可以根据系统的承受能力,调整线程池中工作线程的数量,防止因为消耗过多内存导致服务器崩溃。 线程池的创建 public ThreadPoolExecutor(int corePoolSize, ...原创 2019-03-22 15:04:37 · 158 阅读 · 0 评论 -
如何判断一个对象已经被回收?
java虚拟机氛围五个区域,三个线程私有:程序计数器,虚拟机栈,本地方法站,两个是线程共享:堆,方法区。线程私有区域等线程结束时,就会是自动释放掉,空间比较容易清理。线程共享的堆和方法区空间内存大没有线程回收容易产生垃圾,GC垃圾回收的一般就是堆和方法区这两块区域。线程共享也会有线程安全问题。 两种常用方法 引用计数法(已淘汰) 循环引用无法释放资源。比如AB有引用,BC有引用,AC有引用...原创 2019-03-26 16:43:04 · 1115 阅读 · 0 评论 -
String,Stringbuffer和Stringbuilder的区别
String,Stringbuffer和Stringbuilder对字符串的拼接是有区别的。 性能方面:Stringbuilder>Stringbuffer>String(+)(for循环里字符串拼接) 线程安全:Stringbuilder(非线程安全,速度快)Stringbuffer(线程安全,速度慢) 如何选择:方法内无线程安全问题使用Stringbuilder,有线程安...原创 2019-04-11 16:50:42 · 99 阅读 · 0 评论 -
JDK动态代理
AOP一般有两种实现方式一种是jdk动态代理,另一种是Cglib代理。两者的区别是:JDK动态代理只能对实现了接口的类生成代理,而不能针对类,CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法(继承)。 JDK动态代理 接口类 public interface IHello { void sayHello(); } 实现类 public class Hell...原创 2019-05-09 17:55:36 · 89 阅读 · 0 评论 -
阿里外包面试
spring ioc的理解 aop的原理以及是否使用过。 spring常用注解 注入方式 排序算法 数据库索引 多线程的使用,线程池原理,四种本地线程池及区别 项目介绍以及负责模块使用的技术,分布式事务如何解决, 集合list hashmap put原理 扩容机制 长度为啥是2的幂次方 、 maven(阿里问了两次) 生命周期 以及 jar...原创 2019-05-10 13:56:43 · 4633 阅读 · 0 评论