java进阶
一枚猿类---------万万
这个作者很懒,什么都没留下…
展开
-
NIO、BIO、AIO的区别
1.BIO (同步阻塞I/O模式)数据的读取写入必须阻塞在一个线程内等待其完成。这里使用那个经典的烧开水例子,这里假设一个烧开水的场景,有一排水壶在烧开水,BIO的工作模式就是, 叫一个线程停留在一个水壶那,直到这个水壶烧开,才去处理下一个水壶。但是实际上线程在等待水壶烧开的时间段什么都没有做。2.NIO(同步非阻塞模式)同时支持阻塞与非阻塞模式,但这里我们以其同步非阻塞I/O模式...原创 2019-04-28 16:19:27 · 114 阅读 · 0 评论 -
GC垃圾回收机制
常见的垃圾收集器有3类:新生代的收集器包括:Serial PraNew Parallel Scavenge老年代的收集器包括:Serial Old Parallel Old CMS回收整个Java堆(新生代和老年代)G1收集器1.Serial串行收集器-复制算法Serial收集器是新生代单线程收集器,优点是简单高效,算是最基本、发展历史最悠久的收...原创 2019-04-28 16:19:11 · 120 阅读 · 0 评论 -
java六大设计原则
1、单一职责原则(SingleResponsibilityPrinciple)高内聚,低耦合2、依赖倒转原则(DependenceInversionPrinciple)高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。即针对接口编程,不要针对实现编程3、里氏代换原则(LiskovSubstitutionPrinciple)定义1...原创 2019-04-28 16:18:53 · 357 阅读 · 0 评论 -
获取请求IP地址
public static String getIpAddress(HttpServletRequest request) { String ipAddress = request.getHeader("x-forwarded-for"); if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnore...原创 2019-04-28 16:13:26 · 1279 阅读 · 0 评论 -
线程锁+线程池+线程同步等
1、并发编程三要素?1)原子性:原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行。2)可见性:可见性指多个线程操作一个共享变量时,其中一个线程对变量进行修改后,其他线程可以立即看到修改的结果。实现可见性的方法:synchronized或者Lock:保证同一个时刻只有一个线程获取锁执行代码,锁释放之前把最新的值刷新到主内存,实现可见性。...转载 2019-04-28 16:20:39 · 7065 阅读 · 0 评论