Java基础
Java基础
永动的图灵机
stay hungry stay foolish
展开
-
Java NIO原理及简单拷贝实列
NIO原理及使用运行环境:idea2018,jdk11简述1、比较IONIO数据处理字节或字符流(stream)块(channel)方向单向(InputStream/OutputStream)双向(读写)2、NIO(Non-blocking I/O),非阻塞IO,也可以理解为新IO(new I/O)。相对于传统的IO以字节或字符或单位传输,NI...原创 2019-04-19 12:49:34 · 180 阅读 · 0 评论 -
在IDEA中新建Servlet
在IDEA中新建Servlet1.file新建project,建议选Javaee,如下图2.新建module,选择同project。在web-inf目录下新建两个目录,classes和lib(使用new servlet也可以)。classes里放编译文件,lib一般用于导包上图中,工程名为MyWebProject,该工程部署时,在webapps目录下就会有一个MyWebProject的...原创 2019-01-20 20:45:17 · 3633 阅读 · 0 评论 -
CAS导致的ABA问题及解决
Java并发–非阻塞同步CAS问题引入在并发问题中,最先想到的无疑是互斥同步,但线程阻塞和唤醒带来了很大的性能问题,同步锁的核心无非是防止共享变量并发修改带来的问题,但不是任何时候都有这样的竞争关系。什么是CASCAS,比较并交换(Compare-and-Swap,CAS),如果期望值和主内存值一样,则交换要更新的值,也称乐观锁。如线程甲从主内存中拷贝了变量A为1,在自己的线程中将副...原创 2019-04-24 22:10:05 · 494 阅读 · 0 评论 -
多线程下指令重排与DCL单列模式
指令重排简述1、JMM内存模型三大特性包括原子性,可见性,有序性。详细请看https://blog.csdn.net/weixin_40141790/article/details/89342153。2、指令重排是相对有序性来说的,指在程序执行过程中, 为了性能考虑, 编译器和CPU可能会对指令重新排序。单线程模式下只有一个执行引擎,不存在竞争,所有的操作都是有有序的,不影响最后的执行结果。...原创 2019-04-19 20:40:41 · 531 阅读 · 0 评论 -
关于Java内存模型的三大特性
关于Java内存模型的三大特性Java在面对跨平台问题时,重要的一项就是解决硬件和操作系统内存之间的访问。Java内存模型简要工作逻辑如下图:cpu的处理速度远快于内存的读写速度,因此Java采用高速缓存建立其桥梁。其中protocal协议是为了保证多个进程访问cpu主内存时,多个缓存与主内存数据一致性。当线程需要使用变量数据时,需要从主内存中拷贝一个副本到自己的缓存中...原创 2019-04-16 21:05:19 · 962 阅读 · 1 评论 -
Map之HashMap源码浅析-扩容
HashMap源码浅析jdk11,工具idea一、存储结构入口:Ctrl+N查找到hashmap源码,找到静态内部类/** * Basic hash bin node, used for most entries. (See below for * TreeNode subclass, and in LinkedHashMap for its Entry subc...原创 2019-04-15 21:35:45 · 204 阅读 · 0 评论