暂无搜索历史
Callable 接口是 Java 并发编程中用于表示可以由线程执行的任务的一种接口,它与 Runnable 接口类似,但功能更强大。
注意:synchronized 并不仅仅是对 mutex 进行封装,在 synchronized 内部还做了很多其它的工作,下面会详细介绍!
Java 线程池的核心接口是 Executor 和 ExecutorService,最常用的实现类是 ThreadPoolExecutor。
饿汉模式属于 "急切加载" 的方式,即在类加载时就立即创建单例对象,而不管是否会被使用。
我们可以通过 Thread.getState() 来获取当前进程在某个时刻的状态,如下所示:
在 jdk 的 bin 目录中有一个 jconsole 程序,打开然后连接到对应的 java 程序,就能看到对应的程序信息,比如内存、线程等情况,如下图所示:
Lambda 表达式是 JavaSE8 中一个重要的新特性,它允许通过表达式来代替功能接口。
这里要注意 values() 是由 Java 编译器为每个枚举类自动生成的静态方法,所以在 Enum 类里是找不到它的源码的,但每个具体的枚举类都有它。
Java 文件被编译后,生成了 .class 文件,JVM 此时会去解读这个 .class 文件,而 .class 文件也被 JVM 解析为一个对象,这个对象就...
在 Java 中,由于基本类型不是继承自 Object,为了在泛型代码中可以支持基本类型,Java 给每个基本类型都对应了一个包装类型,如下图所示:
比如算数异常 ArithmeticException、数组越界异常 ArrayIndexOutOfBoundsException、空指针异常 NullPoint...
2. 对于上面第一种构造方式来说,实际上是对常量池中 "abc" 的一个引用,如果此时再创建一个 String s2 = "abc",此时并不会真的又去开辟一段...
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是...
继承(inheritance)是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加新功能,这样产生新的类,称为派生...
采用 Java 语言将洗衣机类在计算机中定义完成,经过 javac 编译之后形成 .class 文件,在 JVM 的基础上计算机就可以识别了。
2. 静态初始化:在创建数组时不直接指定数据元素个数,而直接将具体的数据内容进行指定
在 java 中,凡是参加的逻辑运算的都必须得是 boolean 类型,比如说不能这样子:
因为C语言中使用的是 ASCII 码字符集,能表示的字符比较少,所以其中的 char 类型是1个字节。但是 java 中使用的字符集是 Unicode,能表示更...
Java 是一门半编译型、半解释型语言。先通过 javac 编译程序把源文件进行编译,编译后生成的 .class 文件是由字节码组成的平台无关、面向 JVM 的...
Predicate 决定了请求由哪一个路由处理。如果在请求处理前后需要加一些逻辑,这就是 Filter(过滤器)的作用范围了。