全新实现的 NioSocketImpl 来替换JDK1.0的PlainSocketImpl. 它便于维护和调试,与 NewI/O (NIO) 使用相同的 JDK 内部结构,因此不需要使用系统本地代码. 它与现有的缓冲区缓存机制集成在一起,这样就不需要为 I/O 使用线程栈. 它使用 java.util.concurrent 锁,而不是 synchronized 同步方法,增强了并发能力. 新的实现是Java 13中的默认实现,但是旧的实现还没有删除,可以通过设置系统属性 jdk.net.useP…
HTML5新特性 (1)语意化更好的内容元素,比如 article.footer.header.nav.section (2)本地存储.sessionStorage.localStorage和indexedDB加强本地存储.使用之前应该先判断支持情况 if(window.sessionStorage){ //浏览器支持sessionStorage } if(window.localStorage){ //浏览器支持localStorage } localStorage和sessionStorag…
Java 13 的官方开发目标包含改进垃圾收集.应用程序的类数据共享和文本块 Java 开发工具包(JDK)13,标准 Java 的下一个版本,现在可作为候选版本使用,所有新功能都已锁定.JDK 13提出了一种功能,但从未添加到官方列表中,即用于打包自包含 Java 应用程序的 jpackage 工具,已经无缘晋级.JDK 13 不再考虑它. [新的 Java 已经来了!了解 Jakarta EE 企业 Java 路线图.|新 Java 版本在这里!你需要学习任何关于 Java JDK 11 的…
在JDK 12中引入了Raw String Literals特性,但在发布之前就放弃了.这个JEP与引入多行字符串文字(text block) 在意义上是类似的. 这条新特性跟 Kotlin 里的文本块是类似的. 现实问题 在Java中,通常需要使用String类型表达HTML,XML,SQL或JSON等格式的字符串,在进行字符串赋值时需要进行 转义和连接操作,然后才能编译该代码,这种表达方式难以阅读并且难以维护. 文本块就是指多行字符串,例如一段格式化后的xml.json等.而有了文本块以后,…
Java 8 日期时间 API Java 8通过发布新的Date-Time API (JSR 310)来进一步加强对日期与时间的处理. 在旧版的 Java 中,日期时间 API 存在诸多问题,其中有: 非线程安全 − java.util.Date 是非线程安全的,所有的日期类都是可变的,这是Java日期类最大的问题之一. 设计很差 − Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包中定义.java.ut…
写在前面 Java8之前的日期和时间API,存在一些问题,比如:线程安全的问题,跨年的问题等等.这些问题都在Hava8中的日期和时间API中得到了解决,而且Java8中的日期和时间API更加强大.立志成为架构师的你,必须掌握Java8中的日期和时间API. 本地时间和时间戳 主要方法: now:静态方法,根据当前时间创建对象 of:静态方法,根据指定日期/时间创建对象 plusDays,plusWeeks,plusMonths,plusYears:向当前LocalDate 对象添加几天.几周.几…
Q:套接字特点 A:管道,消息队列,信号量,共享内存这些通信机制只能允许同一计算机上运行的进程相互通信,而套接字不仅可以提供在同一计算机上的进程间通信,还可以提供不同计算机上的进程间通信. 服务器端: 创建套接字描述符->将套接字与地址关联->监听套接字->接受链接 客服端: 创建套接字描述符->发起链接 创建套接字描述符 int socket(int domain, int type, int protocol); domain:    通信特点,如AF_INET,IPv4因特网…
新增 添加FileSystems.newFileSystem(Path, Map<String, ?>) Method 新的java.nio.ByteBuffer Bulk get/put Methods Transfer Bytes Without Regard to Buffer Position 支持Unicode 12.1 添加-XX:SoftMaxHeapSize Flag,目前仅仅对ZGC起作用 ZGC的最大heap大小增大到16TB 移除 移除awt.toolkit System…
在JDK 11中,Java引入了ZGC,这是一款可伸缩的低延迟垃圾收集器,但是当时只是实验性的.号称不管你开了多大的堆内存,它都能保证在 10 毫秒内释放 JVM ,不让它停顿在那.但是,当时的设计是它不能把内存归还给操作系统.对于比较关心内存占用的应用来说,肯定希望进程不要占用过多的内存空间了. 在Java 13中,JEP 351再次对ZGC做了增强,将没有使用的堆内存归还给操作系统.ZGC当前不能把内存归还给操作系统,即使是那些很久都没有使用的内存,也只进不出.这种行为并不是对任何应用和环境…
支持在Java application执行之后进行动态archive.存档类将包括默认的基础层CDS存档中不存在的所有已加载的应用程序和库类.也就是说,在Java 13中再使用AppCDS的时候,就不再需要这么复杂了. 该提案处于目标阶段,旨在提高AppCDS的可用性,并消除用户进行试运行以创建每个应用程序的类列表的需要. 使用示例: # JVM退出时动态创建共享归档文件:导出jsa java -XX:ArchiveClassesAtExit=hello.jsa -cp hello.jar He…