Java 8中的Lambda和方法引用

在Java 8中添加了Lambda新特性。如果接口中只有一个方法,则可以使用Lambda来完成。 例如Runnable接口,只有一个run方法。在Java 8以下中我们需要这么写: new Thread(new Runnable(){ @Override public void run(){ // ... } }).start(); 在Java 8及以上版本: new ...

AtomicIntegerFieldUpdater访问权限问题

AtomicIntegerFieldUpdater所要修改的变量必须可在当前类访问,否则将抛出异常 java.lang.RuntimeException: java.lang.IllegalAccessException: Class XXXXX can not access a member of class XXX with modifiers ...

深入JVM-垃圾回收-可达性分析算法

目前关于垃圾回收这一块, 很多解释都是说引用计数。 实际上,Java在垃圾回收这里,远不是引用计数这么简单。它采用的是可达性分析算法。 首先在我们的虚拟机里,有一个GC Roots的对象,作为引用的起点,由此节点成树状分散,到达每一个对象。 从GC Roots到对象的路径被称为引用链。 如下图: 途中,Object 1 2 3 ...

深入JVM-虚拟机运行时内存

Java虚拟机的内存大致可以分成五个部分。详见Java虚拟机运行时数据区 其中、方法区和Java堆是线程共享数据。而虚拟机栈、本地方法栈、程序计数器是线程专有的。 也就是说,每个线程都有自己的虚拟机栈、本地方法栈、程序计数器,并且共同使用一个方法区和Java堆 (图片来源网络) 线程私有区域 1. 程序计数器 首先要说的就是最简单的程序计数器。 它是一个非常小的内存区域,用来存储当前执行位置的行号。如果当前执行的是一个原生方法( ...

mssql (SQL Server) 常用语句集合

博主是做php的,常用数据库也就是MySQL和mariadb,对于微软家族的产品不是很熟悉。 所以就在这里整理了mssql的一些常用的语句。以备不时之需 创建数据库 创建数据库可以直接使用CREATE DATABASE xxx来完成,在这里不做描述。仅仅用mssql奇葩的语句来创建。* CREATE DATABASE stuDB ON PRIMARY -- 主库 ( NAME='stuDB', ...