基础
风影楼c
这个作者很懒,什么都没留下…
展开
-
IO、NIO、AIO简述
IO又叫BIO,是同步阻塞IONIO是同步非阻塞IOAIO是异步IO异步一定非阻塞IO是一个socket连接对应一个线程,会造成大量阻塞。NIO是对于IO的改进,基于Reactor模型,一个请求对应一个线程。AIO是对于NIO的进一步改进,基于Proactor模型,一个有效请求对应一个线程。R和P都会用到事件分离器NIO在事件分离器注册读就绪事件和读就绪事件处理器。...原创 2019-03-25 17:45:56 · 479 阅读 · 0 评论 -
hashcode和equals方法
两个方法都是Object类中的方法在未进行重写的情况下,equals和==是等价的,都返回两个对象地址的比较而hashcode的引入是为了减少equals的次数hashcode是通过某种复杂的移位实现得到某个int值,但是不同的对象可能得到该值碰巧相等如果两个对象==,那么它们的hashcode一定相等,所以在需要进行对象是否相等的判断之前,判断hashcode是否相等,如果不相等...原创 2019-03-23 16:13:46 · 108 阅读 · 0 评论 -
发生死锁的情况以及解决的办法
首先,死锁是指两个或多个线程,彼此间持有对方所需资源,使得每一个线程都处在等待的状态。发生死锁通常要满足以下四个条件:1、互斥条件:一个资源只能同时被一条线程占用。2、请求和保持条件:当一个线程因获取不到其他资源而阻塞时,对自己所持有的资源保持不放。3、不剥夺条件:除非线程自己释放资源,否则其占有的资源不可以被剥夺。4、环路条件:处于死锁等待中的线程一定会形成一条环路。...原创 2019-03-23 16:26:25 · 1257 阅读 · 0 评论 -
gc简述
jvm的gc分为年轻代的minor gc,老年代的major gc,和整个堆空间的full gc。-Xmx 设置jvm最大堆内存-Xms 设置jvm初始堆内存,最好设置成与Xmx相同-Xss 设置每个线程的栈大小-XX:Newsize 年轻代初始值-XX:MaxNewsize 年轻代最大值-XX:NewRatio 年轻代与年老代的比值jvm命令:jps查看有哪些虚拟...原创 2019-03-23 17:09:20 · 468 阅读 · 0 评论 -
hashmap、concurrenthashmap
java1.7及以前hashmap是entry的数组+链表concurrenthashmap是若干(16)个segment组成,每个segment都是继承了ReentrantLock的一个hashmap类型的结构java1.8及以后hashmap中的链表结构当数量大于等于8时会转为红黑树,为了增加查找效率(logn + 转化为树的时间 < 平均遍历时间n/2)为什么不直...原创 2019-03-24 15:08:23 · 82 阅读 · 0 评论