您的位置 首页 java

《Core Java》阅读与拓展 第二章Java程序设计环境

原书内容概括

《Core Java》阅读与拓展 第二章Java程序设计环境

术语名

缩写

解释

Java Development Kit

JDK

编写 Java 程序的程序员使用的软件

Java Runtime Environment

JRE

运行 Java 程序的用户使用的软件

Server JRE

在服务器上.运行 Java 程序的软件

Standard Edition

SE

用于桌面或简单服务器应用的 java 平台

Enterprise Edition

EE

用于复杂服务器应用的 Java 平台

Micro Edition

ME

用于手机和其他小型设备的Java平台

Java FX

用于图形化用户界面的一个替代工具包,在 Oracle Java SE 发布版本中提供

OpenJDK

JavaSE 的一个免费幵源实现,不包含浏览器集成或 JavaFX

Java 2

J2

一个过时的术语,用于描述1998 年 ~2006 年之间的Java版本

Software Development Kit

SDK

一个过时的术语, 用于描述 1998 年 ~ 2006 年之间的JDK

Update

u

Oracle的术语,表示 bug 修正版本,例如JavaSE 8u31是JavaSE 8的第31 次更新,它的内部版本号是1.8.0_31

NetBeans

Oracle的集成开发环境

1)在windows或 Linux 上添加执行路径(bin目录)

Windows

假设JDK安装目录为D:jdk-8u192-windows-x64,相应的bin目录为D:jdk-8u192-windows-x64bin

按下图所示操作

《Core Java》阅读与拓展 第二章Java程序设计环境

《Core Java》阅读与拓展 第二章Java程序设计环境

《Core Java》阅读与拓展 第二章Java程序设计环境

《Core Java》阅读与拓展 第二章Java程序设计环境

《Core Java》阅读与拓展 第二章Java程序设计环境

验证安装是否成功:

《Core Java》阅读与拓展 第二章Java程序设计环境

Linux

假设JDK安装目录为/opt/jdk1.8.0_192,相应的bin目录为/opt/jdk1.8.0_192/bin

在/etc/profile文件的最后增加一行

export PATH=/opt/jdk1.8.0_192/bin:$PATH

为使之生效,执行命令:source /etc/profile

如果发现source /etc/profile命令不生效,那么如下操作:

vi ~/.bashrc

然后在最后一行添加 source /etc/profile

2) 安装库源文件和文档

源文件就在JDK安装目录下。

Windows

假设JDK安装目录为D:jdk-8u192-windows-x64。如下图所示。

《Core Java》阅读与拓展 第二章Java程序设计环境

Linux

假设JDK安装目录为/opt/jdk1.8.0_192

使用如下命令将源文件解压到javasrc8u192文件夹。

创建文件夹: mkdir javasrc8u192

进入上面创建的文件夹:cd javasrc8u192

解压: Jar xvf /opt/jdk1.8.0_192/src.zip

源文档需要下载,下载地址为:

拓展

术语

术语名称

缩写

解释

Garbage Collection

GC

垃圾回收

Remote Method Invocation

RMI

远程方法调用,即 Java 虚拟机 上的对象调用另一个 Java 虚拟机中的对象上的方法

Java Memory Model

JMM

Java内存模型

Java Community Process

JCP

Java开发者以及被授权者组成国际组织。JCP维护的规范包括 J2ME 、J2SE、J2EE等

Plain Old Java Object

POJO

普通java对象,不包含业务逻辑,不继承或不实现任何Java框架的类和接口。

命令行工具

基本工具

名称

描述

jar

创建和管理Java归档(JAR)文件

java

Java应用启动器

Javac

Java编程语言编译器

javadoc

API文档生成器

Jar

《Core Java》阅读与拓展 第二章Java程序设计环境

Java

《Core Java》阅读与拓展 第二章Java程序设计环境

最为复杂的options包含了好几类:

标准选项、非标准选项、高级运行环境选项、高级JIT编译器选项等。列举几个常用的选项。

-Xmssize:设置堆的最小大小和初始大小(以字节为单位)。必须是1024的倍数且大于1mb。k或k表示kilobytes, m或m表示megabytes, g或g表示gigabytes。

-Xmxsize:内存分配池的最大大小(以字节为单位)。必须是1024的倍数且大于2mb。默认值在运行时根据系统配置选择。对于服务器部署,-Xms和-Xmx通常设置为相同的值。

-Xmnsize:设置年轻代(nursery)堆的初始和最大大小(以字节为单位)。

可以使用-XX:NewSize来设置年轻代(nursery)堆的初始大小,使用-XX:MaxNewSize来设置年轻代(nursery)堆的最大大小,而不是使用-Xmn选项。使用-Xmn意味着初始大小和最大大小设置为相同的值。

Javac

《Core Java》阅读与拓展 第二章Java程序设计环境

javadoc

《Core Java》阅读与拓展 第二章Java程序设计环境

监控 JVM

名称

描述

jps

JVM Process Status Tool,列出目标系统上已检测的HotSpot java虚拟机

jstat

JVM Statistics Monitoring Tool,附加到一个已测试的HotSpot Java虚拟机,收集并记录由命令行选项指定的性能统计数据。

jps

jps [ options ] [ hostid ]

常用参数:

-q 只列出pid,而不输出类的短名称

-m 列出传递给java进程主函数的参数

-l 显示应用程序主类的完整包名或应用程序JAR文件的完整路径名

-v 列出传递给java虚拟机的参数

-V 输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX: Flags =所指定的文件)

-J 传递参数到JVM

《Core Java》阅读与拓展 第二章Java程序设计环境

jstat

jstat [ generalOption | outputOptions vmid [ interval[s|ms] [ count ] ]

generalOption:命令行选项-help or -options

output Options:输出选项

class 显示有关类加载器行为的统计信息。

compiler 显示有关Java HotSpot VM即时编译器行为的统计信息。

gc 显示有关垃圾回收堆的行为的统计信息。

gccapacity 显示各代的容量及其对应的空间的统计信息。

gccause 垃圾收集统计概述(同-gcutil),附加最近两次垃圾回收事件的原因。

gcnew 显示新生代行为的统计信息。

gcnewcapacity 显示有关新生代及其相应空间大小的统计信息。

gcold 显示有关老年代和 meta space统计信息的统计信息。

gcoldcapacity 老年代行为统计。

gcmetacapacity 显示有关元空间大小的统计信息。

gcutil 显示关于垃圾收集统计信息的摘要。

printcompilation 显示Java HotSpot VM编译方法统计信息。

vmid: 虚拟机 标识符,语法如下:

[protocol:][//]lvmid[@hostname[:port]/servername]

protocol: 通信协议 。如果省略了协议值并且没有指定主机名,则默认协议是特定于平台的优化本地协议。如果省略协议值并指定主机名,则默认协议为rmi。

lvmid:目标JVM的本地虚拟机标识符。lvmid是一个特定于平台的值,它唯一地标识系统上的JVM。lvmid是虚拟机标识符的唯一必需组件。lvmid通常(但不一定)是目标JVM进程的操作系统进程标识符。可以使用jps命令来确定lvmid。此外,在 Solaris 、Linux和OS X平台上可以使用ps命令确定lvmid,在Windows上可以使用 Windows任务管理器

hostname:表示目标主机的主机名或IP地址。如果省略主机名值,则目标主机是本地主机。

port:与远程服务器通信的默认端口。如果省略了主机名值或协议值指定了一个优化的本地协议,那么端口值将被忽略。否则,端口参数的处理是具体实现的。对于默认的rmi协议,port值表示远程主机上rmi registry 的端口号。如果省略端口值,协议值为rmi,则使用默认的rmiregistry端口(1099)。

servername:服务器名参数的处理取决于实现。对于优化后的本地协议,该字段将被忽略。对于rmi协议,它表示远程主机上RMI远程对象的名称。

interval :采样间隔,单位为指定的秒(s)或毫秒(ms)。默认单位为毫秒。必须是正整数。如果指定了该参数,jstat命令将在每个时间间隔生成它的输出。

count :显示采样数量。默认值是无穷,这将导致jstat命令显示统计信息,直到目标JVM终止或jstat命令终止。该值必须为正整数。

例子:

《Core Java》阅读与拓展 第二章Java程序设计环境

其中

S0C 表示当前 Survivor0 的容量,

S1C 表示当前 Survivor1 的容量,

S0U 表示当前 Survivor0 的利用率,

S1U 表示当前 Survivor1 的利用率,

EC 表示 Eden 的容量

EU 表示 Eden 的利用率

OC 表示老年代的容量

OU 表示老年代的利用率

MC 表示 Metaspace 的容量

MU 表示 Metaspace 的利用率

CCSC 表示类指针压缩空间容量

CCSU 表示使用的类指针压缩空间

YGC 表示新生代 GC 的次数

YGCT 表示新生代 GC 的时间

FGC 表示 Full Gc 的次数

FGCT 表示 Full GC 的时间

GCT 表示 GC 总时间

《Core Java》阅读与拓展 第二章Java程序设计环境

TT:持有次数限制

MTT:最大持有次数限制

DSS :期望的幸存区大小

故障排除工具

名称

描述

jinfo

Configuration Info for Java,打印给定进程或核心文件或远程调试服务器的配置信息。

jhat

Heap Dump Browser,在一个堆转储文件(例如,由jmap -dump生成)上启动一个web服务器,允许浏览堆

jmap

Memory Map for Java,打印给定进程、核心文件或远程调试服务器的共享对象 内存映射 或堆内存详细信息。

jstack

Stack Trace for Java,打印给定进程、核心文件或远程调试服务器的 线程 堆栈跟踪。

jinfo

jinfo [ option ] pid

jinfo [ option ] executable core

jinfo [ option ] [ servier-id ] remote-hostname-or-IP

option

no option 打印命令行标志和系统属性名称-值对。

-flag name 打印指定命令行标志的名称和值

-flag [+|-]name 启用或禁用指定的 Boolean 命令行标志。

-flag name=value 将指定的命令行标志设置为指定的值。

-flags 打印传递给JVM的命令行标志。

-sysprops 以名-值对的形式打印Java系统属性

-h 打印帮助信息

-help 打印帮助信息

pid

打印配置信息的进程ID。该进程必须是Java进程。要获取在计算机上运行的Java进程列表,使用jps命令。

executable

产生 core dump 的Java可执行程序

core

要被打印堆栈跟踪信息的core dump文件

server-id

在同一远程主机上运行多个调试服务器时,可选的唯一ID(标记服务唯一性id)

remote-hostname-or-IP

远程调试服务器的hostname或ip

jhat

jhat [ options ] heap-dump-file

options

heap-dump-file

java 二进制 堆转储文件。

jmap

jmap [ options ] pid

jmap [ options ] executable core

jmap [ options ] [ pid ] server-id@ ] remote-hostname-or-IP

option

no option: 查看进程的内存映像信息,类似 Solaris pmap 命令。

heap: 显示Java堆详细信息

histo[:live]: 显示堆中对象的统计信息

clstats:打印类加载器信息

finalizer info: 显示在F-Queue队列等待Finalizer线程执行finalizer方法的对象

dump:<dump-options>:生成堆转储快照

F: 当-dump没有响应时,使用-dump或者-histo参数. 在这个模式下,live子参数无效.

help:打印帮助信息

J<flag>:指定传递给运行jmap的JVM的参数

pid

打印配置信息的进程ID。该进程必须是Java进程。要获取在计算机上运行的Java进程列表,使用jps命令。

executable

产生core dump的Java可执行程序

core

要被打印堆栈跟踪信息的core dump文件

server-id

在同一远程主机上运行多个调试服务器时,可选的唯一ID(标记服务唯一性id)

remote-hostname-or-IP

远程调试服务器的hostname或ip

jstack

jstack [ options ] pid

jstack [ options ] executable core

jstack [ options ] [ server-id@ ] remote-hostname-or-IP

options

-F:当 jstack [-l] pid 没有响应时,强制打印一个堆栈转储。

-l:打印关于锁的其他信息,比如拥有的java.util.concurrent ownable同步器的列表。

-m:打印包含Java和本机C/ C++帧的混合模式堆栈跟踪。

-h:打印帮助信息

-help:打印帮助信息

pid

打印配置信息的进程ID。该进程必须是Java进程。要获取在计算机上运行的Java进程列表,使用jps命令。

executable

产生core dump的Java可执行程序

core

要被打印堆栈跟踪信息的core dump文件

server-id

在同一远程主机上运行多个调试服务器时,可选的唯一ID(标记服务唯一性id)

remote-hostname-or-IP

远程调试服务器的hostname或ip

文章来源:智云一二三科技

文章标题:《Core Java》阅读与拓展 第二章Java程序设计环境

文章地址:https://www.zhihuclub.com/187113.shtml

关于作者: 智云科技

热门文章

网站地图