Java8新特性(案例分析)-- Optional接口妙用:避免嵌套if Optional接口介绍,实际案例讲解如何通过Optional接口优雅地解决if判空、嵌套if判空以及与Stream的结合操作!!
什么是同步、异步?什么是阻塞与非阻塞? 同步与异步:同步与异步讲的是,用户线程与内核的交互方式。在同步的情况下,用户线程将需要由内核完成的操作交付给内核线程后,需要一直等待内核线程完成,才能返回到用户线程;异步情况下,用户线程将任务交付给内核后,即可返回至自己的运行空间。阻塞与非阻塞:阻塞与非阻塞讲的是用户线程与内核IO操作的交互方式。阻塞模式下,当内核执行IO操作时,用户线程将一直处于阻塞状态,无法执行其它代码,无法回到用户空间;非阻塞模式下,当IO操作交付至内核空间后,整个工作流程可以直接返回至用户空间,进行下一步操作。...
【 超赞 】清晰认识ThreadFactory 学习JUC框架时,线程池是无法避免的话题。通常情况下,我们会采用默认的ThreadFactory构建线程池。那么,在线程池中,ThreadFactory的作用到底是什么呢?
为什么划分内核态、用户态? 为了保证系统的稳定性、安全性,需要在系统中划分内核态、用户态。所有涉及IO操作、内存操作等,均在内核态中完成,因为当这些操作出现差错时,可能会导致整个计算机系统的崩溃。用户写的程序可能是含有导致这些操作出现差错的bug的,所以,用户编写的不涉及IO、内存等操作的程序在用户态中完成,而涉及这些操作时,则需要进行用户态到内核态的切换。将实际操作交付给内核态,内核态完成操作后,将结果传递至用户态。注意,用户态、内核态之间的切换是十分耗费性能资源的。...
自然语言处理:StanfordCoreNLP,启动CoreNLP服务器 打开stanfordcorenlp的目录,shfit+右击-->打开powershell,输入如下命令,即可启动core nlp服务器。注意,使用过程中,勿关闭powershell界面。java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000访问方式:启动corenlp服务器后,打开浏览器,输入localhost:9000即可访问。打开后,界面如下:Tex
http1.0、http1.1、http2.0的区别 http1.0和http1.1区别1. 长连接:1.1默认开启长连接,1.0需要明确使用keep-alive参数来进行长连接;【长连接指的是TCP连接的时间的长短,长连接使得多个HTTP请求可以复用一个TCP连接,这样的话就减少了建立TCP连接和释放TCP连接的开销】2. 缓存处理:相对1.0,1.1版本引入了更多的缓存机制;3. 错误通知的管理:1.1新增了20多个错误状态响应码;4. 节省宽带:1.1支持只发送header信息,而不包含body信息;5. HOST域:1.0认为一个服务器只绑
JVM:详解CMS垃圾收集器,一篇搞定面试官 CMS,也即Concurrent Mark Sweep,基于标记-清除算法实现。CMS的目标在于缩短STW时间(stop the world),适用于网站应用以及B/S架构的服务器端。CMS垃圾回收器在进行垃圾回收时,主要经历以下步骤:1. 初始标记该阶段需要STW,工作线程需暂停。初始标记阶段的任务在于标记老年代、元空间中能够被GC Roots能够直接关联到的对象,老年代中可直接关联的对象可分为两种,被年轻代对象引用、被老年代对象引用。2. 并发标记...
StanfordCoreNLP实体识别NER、实体类型 StanfordCoreNLP中细分的实体类型包括:PERSON LOCATION ORGANIZATION MISC MONEY NUMBER ORDINAL PERCENT DATE TIME DURATION SET其中,1--4属于名称named类别,5--8属于数值numerical类别,9--10属于时间temporal类别。
超详细:ReentrantLock非公平锁的Lock流程(代码含详细注释) ReentrantLock.NonfairSync继承自内部类Sync。 static final class NonfairSync extends Sync { private static final long serialVersionUID = 7316153563782823691L; // 首先尝试立即获取锁,获取成功,则将自身设定为 独占模式的同步器 的拥有者 // 如果获取失败,则通过调用AQS.acquire(