众所周知,Kotlin 拥有一种叫做具名参数(Named arguments)的特性,它在需要跳过可选参数,或是调整参数顺序的地方十分有效。
声明:本文章中 Java 8 至 Java 16 以来变化的内容整理自 这个网站,您可以访问该网站以了解更多新版本 Java 的更改
类似Linux的ps,但jps只列出Java进程。可方便查看Java进程的启动类、传入参数和JVM参数。直接运行,不加参数,列出Java程序的进程ID及Main函数名称。
直接内存由操作系统来管理。常见于NIO,用于数据缓冲,读写性能很高,分配回收花销较高。
方法区是java虚拟机中所有线程共享的共享区域,主要存放类的结构相关信息(成员变量,方法、构造器的代码),运行时常量池,类加载器。方法区在虚拟机启动时被创建,在逻辑上属于堆的组成部分(具体产商实现时不一定遵守逻辑上的...
堆中具有垃圾回收机制,但是垃圾回收的前提是堆中的对象不再被引用(实际上,回收引用的算法是根可达算法,后面会讲述,这里的表述是不准确的),因此如果我们有过多无法被回收的对象,就可能导致内存溢出。...
栈:线程运行时需要的内存空间,一个栈中包含多个栈帧,栈帧是每个方法运行时需要的内存,一次方法调用就是一个栈帧。栈帧主要是用来存储局部变量,参数与返回地址(结束该方法后执行方法的地址)的。调用一个方法时,方法的栈帧入...
JVM遵守一系列规范,如有需要,可以自己开发一个JVM,很多大公司有自己的JVM,常见的JVM如下表。其底层实现不尽相同,我们接下来都是针对Hotspot进行讲解。...
我们在这篇文章中将介绍JMM模型,也就是java内存模型。注意,本文所提到的JMM模型与JVM内存模型属于不同层次的内容。JVM内存模型讲的是物理内存空间的分配,而JMM则强调对于JVM内存模型的抽象。...
第一章 java多线程技能进程是受操作系统管理的基本运行单元,它受系统进行资源分配和调度的一个独立单元。线程是进程中独立运行的子任务。main函数也是一个进程,并且有一个main线程。isAlive()方法判断当前的线程是否处...