- 浏览: 2652888 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
一、javah 命令(C Header and Stub File Generator)
是用于根据JAVA 本地方法,生成对应的c 语言头文件及相应的stub 文件的命令,使用比较简单,使用示例可以查看这篇文章:JNI 简单示例 , 包括 C 语言实现及调用
二、jps 命令(Java Virtual Machine Process Status Tool)
1 、介绍
用来查看基于HotSpot JVM 里面所有进程的具体状态, 包括进程ID ,进程启动的路径等等。与unix 上的ps 类似,用来显示本地有权限的java 进程,可以查看本地运行着几个java 程序,并显示他们的进程号。使用jps 时,不需要传递进程号做为参数。
Jps 也可以显示远程系统上的JAVA 进程,这需要远程服务上开启了jstat 服务,以及RMI 注及服务,不过常用都是对本对的JAVA 进程的查看。
2 、命令格式
jps [ options ] [ hostid ]
3 、常用参数说明
-m 输出传递给main 方法的参数,如果是内嵌的JVM 则输出为null 。
-l 输出应用程序主类的完整包名,或者是应用程序JAR 文件的完整路径。
-v 输出传给JVM 的参数。
4 、使用示例
fenglibin@libin:~$ jps
11644 Main
1947
12843 Jps
fenglibin@libin:~$ jps -v
11644 Main -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:43467 -Dfile.encoding=GBK
1947 -Dosgi.requiredJavaVersion=1.5 -XX:MaxPermSize=256m -Xms40m -Xmx512m
12858 Jps -Denv.class.path=/home/fenglibin/java6/lib/dt.jar:/home/fenglibin/java6/lib/tools.jar::/usr/bin/libtool:/usr/bin/autoconf:/usr/local/BerkeleyDB.4.8/lib -Dapplication.home=/home/fenglibin/java6 -Xms8m
fenglibin@libin:~$ jps -l
11644 com.alibaba.china.webww.core.Main
12870 sun.tools.jps.Jps
1947
三、jstack 命令(Java Stack Trace)
1 、介绍
jstack 用于打印出给定的java 进程ID 或core file 或远程调试服务的Java 堆栈信息,如果是在64 位机器上,需要指定选项"-J-d64" ,Windows 的jstack 使用方式只支持以下的这种方式:
jstack [-l] pid
如果java 程序崩溃生成core 文件,jstack 工具可以用来获得core 文件的java stack 和native stack 的信息,从而可以轻松地知道java 程序是如何崩溃和在程序何处发生问题。另外,jstack 工具还可以附属到正在运行的java 程序中,看到当时运行的java 程序的java stack 和native stack 的信息, 如果现在运行的java 程序呈现hung 的状态,jstack 是非常有用的。
2
、命令格式
jstack
[ option ] pid
jstack [ option ] executable core
jstack [ option ] [server-id@]remote-hostname-or-IP
3 、常用参数说明
1) 、options :
executable Java executable from which the core dump was produced.
( 可能是产生core dump 的java 可执行程序)
core 将被打印信息的core dump 文件
remote-hostname-or-IP 远程debug 服务的主机名或ip
server-id 唯一id, 假如一台主机上多个远程debug 服务
2 )、基本参数:
-F 当’jstack [-l] pid ’没有相应的时候强制打印栈信息
-l 长列表. 打印关于锁的附加信息, 例如属于java.util.concurrent 的ownable synchronizers 列表.
-m 打印java 和native c/c++ 框架的所有栈信息.
-h | -help 打印帮助信息
pid 需要被打印配置信息的java 进程id, 可以用jps 查询.
4 、使用示例
四、jstat 命令(Java Virtual Machine Statistics Monitoring Tool)
1 、介绍
Jstat 是JDK 自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool ”,它位于java 的bin 目录下,主要利用JVM 内建的指令对Java 应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size 和垃圾回收状况的监控。可见,Jstat 是轻量级的、专门针对JVM 的工具,非常适用。由于JVM 内存设置较大,图中百分比变化不太明显一个极强的监视VM 内存工具。可以用来监视VM 内存内的各种堆和非堆的大小及其内存使用量。
jstat 工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id ,和所选参数。
它主要是用来显示GC 及PermGen 相关的信息,如果对GC 不怎么了解,先看这篇文章:http://blog.csdn.net/fenglibing/archive/2011/04/13/6321453.aspx ,否则其中即使你会使用jstat 这个命令,你也看不懂它的输出。
2 、命令格式
jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ]
3 、参数说明
1 )、generalOption :单个的常用的命令行选项,如-help, -options, 或 -version 。
2 )、outputOptions :一个或多个输出选项,由单个的statOption 选项组件,可以-t, -h, and -J 选项配合使用。
statOption :
-class Option
-compiler Option
-gc Option
-gccapacity Option
-gccause Option
-gcnew Option
-gcnewcapacity Option
-gcold Option
-gcoldcapacity Option
-gcpermcapacity Option
-gcutil Option
-printcompilation Option
注:其中最常用的就是-gcutil 选项了,因为他能够给我们展示大致的GC 信息。
Option :指的是vmid 、显示间隔时间及间隔次数等
vmid — VM 的进程号,即当前运行的java 进程号
interval – 间隔时间,单位为秒或者毫秒
count — 打印次数,如果缺省则打印无数次
3 )、jstat 命令输出参数说明
S0 — Heap 上的 Survivor space 0 区已使用空间的百分比
S0C :S0 当前容量的大小
S0U :S0 已经使用的大小
S1 — Heap 上的 Survivor space 1 区已使用空间的百分比
S1C :S1 当前容量的大小
S1U :S1 已经使用的大小
E — Heap 上的 Eden space 区已使用空间的百分比
EC :Eden space 当前容量的大小
EU :Eden space 已经使用的大小
O — Heap 上的 Old space 区已使用空间的百分比
OC :Old space 当前容量的大小
OU :Old space 已经使用的大小
P — Perm space 区已使用空间的百分比
OC :Perm space 当前容量的大小
OU :Perm space 已经使用的大小
YGC — 从应用程序启动到采样时发生 Young GC 的次数
YGCT – 从应用程序启动到采样时 Young GC 所用的时间( 单位秒)
FGC — 从应用程序启动到采样时发生 Full GC 的次数
FGCT – 从应用程序启动到采样时 Full GC 所用的时间( 单位秒)
GCT — 从应用程序启动到采样时用于垃圾回收的总时间( 单位秒) ,它的值等于YGC+FGC
4 、使用示例
示例1 )、
示例2 ):
图中同时打印了young gc 和full gc 的总次数、总耗时。而,每次young gc 消耗的时间,可以用相间隔的两行YGCT 相减得到。每次full gc 消耗的时间,可以用相隔的两行FGCT 相减得到。例如红框中表示的第一行、第二行之间发生了1 次young gc ,消耗的时间为0.252-0.252 =0.0 秒。
常驻内存区(P) 的使用率,始终停留在64.21% 左右,说明常驻内存没有突变,比较正常。如果young gc 和full gc 能够正常发生,而且都能有效回收内存,常驻内存区变化不明显,则说明java 内存释放情况正常,垃圾回收及时,java 内存泄露的几率就会大大降低。但也不能说明一定没有内存泄露。
示例3 )、
以上,介绍了Jstat 按百分比查看gc 情况的功能。其实,它还有功能,例如加载类信息统计功能、内存池信息统计功能等,那些是以绝对值的形式打印出来的,比较少用,在此就不做介绍。
示例4 )、jstat -class pid: 显示加载class 的数量,及所占空间等信息。
示例5 )、jstat -compiler pid: 显示VM 实时编译的数量等信息。
示例就不一一例举,有兴趣的可以自己尝试尝试。
五、jmap 命令(Java Memory Map)
1 、介绍
打印出某个java 进程(使用pid )内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。
可以输出所有内存中对象的工具,甚至可以将VM 中的heap ,以二进制输出成文本。使用方法 jmap -histo pid 。如果连用SHELL jmap -histo pid>a.log 可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC 回收了哪些对象。jmap -dump:format=b,file=outfile 3024 可以将3024 进程的内存heap 输出出来到outfile 文件里,再配合MAT (内存分析工具(Memory Analysis Tool ),使用参见:http://blog.csdn.net/fenglibing/archive/2011/04/02/6298326.asp x )或与jhat (Java Heap Analysis Tool) 一起使用,能够以图像的形式直观的展示当前内存是否有问题。
64 位机上使用需要使用如下方式:
jmap -J-d64 -heap pid
2 、命令格式
SYNOPSIS
jmap [ option ] pid
jmap [ option ] executable core
jmap [ option ] [server-id@]remote-hostname-or-IP
3 、参数说明
1) 、options :
executable Java executable from which the core dump was produced.
( 可能是产生core dump 的java 可执行程序)
core 将被打印信息的core dump 文件
remote-hostname-or-IP 远程debug 服务的主机名或ip
server-id 唯一id, 假如一台主机上多个远程debug 服务
2 )、基本参数:
-dump:[live,]format=b,file=<filename> 使用hprof 二进制形式, 输出jvm 的heap 内容到文件=. live 子选项是可选的,假如指定live 选项, 那么只输出活的对象到文件.
-finalizerinfo 打印正等候回收的对象的信息.
-heap 打印heap 的概要信息,GC 使用的算法,heap 的配置及wise heap 的使用情况.
-histo[:live] 打印每个class 的实例数目, 内存占用, 类全名信息. VM 的内部类名字开头会加上前缀”* ”. 如果live 子参数加上后, 只统计活的对象数量.
-permstat 打印classload 和jvm heap 长久层的信息. 包含每个classloader 的名字, 活泼性, 地址, 父classloader 和加载的class 数量. 另外, 内部String 的数量和占用内存数也会打印出来.
-F 强迫. 在pid 没有相应的时候使用-dump 或者-histo 参数. 在这个模式下,live 子参数无效.
-h | -help 打印辅助信息
-J 传递参数给jmap 启动的jvm.
pid 需要被打印配相信息的java 进程id, 创业与打工的区别 - 博文预览, 可以用jps 查问.
4 、使用示例
1) 、[fenglb@ccbu-156-5 ~]$ jmap -histo 4939
[ 输出较多这里不贴了]
2 )、[fenglb@ccbu-156-5 ~]$ jmap -dump:format=b,file=test.bin 4939
Dumping heap to /home/fenglb/test.bin ...
Heap dump file created
六、jinfo 命令(Java Configuration Info)
可以输出并修改运行时的java 进程的opts 。用处比较简单,用于输出JAVA 系统参数及命令行参数。用法是jinfo -opt pid 如:查看2788 的MaxPerm 大小可以用 jinfo -flag MaxPermSize 2788 。
七、jconsole 命令(Java Monitoring and Management Console)
jconsole: 一个java GUI 监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM 。用java 写的GUI 程序,用来监控VM ,并可监控远程的VM ,非常易用,而且功能非常强。命令行里打 jconsole ,选则进程就可以了。
需要注意的就是在运行jconsole 之前,必须要先设置环境变量DISPLAY ,否则会报错误,Linux 下设置环境变量如下:
export DISPLAY=:0.0
[root@localhost bin]# jconsole
上两个图看一下:
可以这里选择查看本地进程的状况,还是远程进程的状况。
通过这张图可以看到内存、线程、类及CPU 使用的一些情况。
八、jvisualvm 命令(Java Virtual Machine Monitoring, Troubleshooting, and Profiling Tool)
jvisualvm 同jconsole 都是一个基于图形化界面的、可以查看本地及远程的JAVA GUI 监控工具,Jvisualvm 同jconsole 的使用方式一样,直接在命令行打入Jvisualvm 即可启动,不过Jvisualvm 相比,界面更美观一些,数据更实时,上图为证:
九、jhat 命令(Java Heap Analyse Tool)
Jhat 用于对JAVA heap 进行离线分析的工具,他可以对不同虚拟机中导出的heap 信息文件进行分析,如LINUX 上导出的文件可以拿到WINDOWS 上进行分析,可以查找诸如内存方面的问题,使用方式可以查看这篇文章:
http://blog.csdn.net/gtuu0123/archive/2010/11/27/6039474.aspx
不过jhat 和MAT 比较起来,就没有MAT 那么直观了,MAT 是以图形界面的方式展现结果,MAT 的使用方式可以参看文章:
http://blog.csdn.net/fenglibing/archive/2011/04/02/6298326.asp x
十、 Jdb 命令(The Java Debugger)
用来对core 文件和正在运行的Java 进程进行实时地调试,里面包含了丰富的命令帮助您进行调试,它的功能和Sun studio 里面所带的dbx 非常相似,但 jdb 是专门用来针对Java 应用程序的。现在应该说日常的开发中很少用到JDB 了,因为现在的IDE 已经帮我们封装好了,如使用ECLIPSE 调用程序就是非常方便的,只要在非常特定的情况下可能会用到这个命令,如远程服务器的维护,没有IDE 进行调试,那这个时候JDB 应该可以帮上忙。
发表评论
-
Raft
2018-07-12 14:20 734前言 上篇文章说解决问题要分而治之,先把分片的问题解决了再 ... -
java uuid
2017-09-14 18:18 555在java中产生uuid的方式是使用java.util.UU ... -
JAVA 编码规范
2017-09-06 11:34 406https://google.github.io/style ... -
mac 入门
2015-12-01 16:28 622http://foocoder.com/blog/wo-zai ... -
java 反编译工具gad
2014-05-09 12:04 963java 反编译工具gad,备个份。 -
java 代码大全(code book)
2014-04-29 10:59 1058参考这里: http://www.java2s.com/C ... -
SQL语法解析器JSQLParser
2014-02-09 19:53 2138SQL 语法解释器jsqlparser 是用java ... -
BufferedInputStream 深入研究。
2013-11-19 13:26 14181. BufferedInputStream的基本原理 ... -
java 启动脚本
2013-08-22 19:08 976java 启动脚本 #!/bin/bash cmd=&q ... -
CRLF escape
2013-08-06 17:51 1192最近需要对用户输入的CRLF即(\r\n)做escape, ... -
安全的自增类
2013-07-22 18:16 982java中一个计数器如果超过MAX_VALUE再自增会如何? ... -
solr日志被block的问题
2013-05-23 16:48 1255"catalina-exec-22386" ... -
beanMapper
2013-01-13 22:43 884实在被一堆get,set搞烦了,周末写了一个beanMappe ... -
java instanceof ,isInstance(),isAssignableFrom之前的差异
2013-01-06 11:00 958public class ItemQuery { ... -
通过gzip对字符串压缩
2012-12-22 18:10 3102通过GZIPOutputStream,GZIPInputStr ... -
关于URL编码
2012-12-21 14:18 1102一、问题的由来 URL就是网址,只要上网,就一定会用到。 ... -
spring的FactoryBean机制
2012-11-20 16:18 1221spring可以通过的FactoryBean的形式把一个Fac ... -
HashMap cpu占用 100%
2012-11-10 22:22 1805今天在重现出HashMap cpu占用100%了,只 ... -
文字扫描工具--java.util.Scanner
2012-11-10 14:33 1092A simple text scanner which c ... -
一个隐形的java int溢出
2012-11-06 22:17 1103故事的背景: 笔者最近在做一个类SNS的项目, ...
相关推荐
### JDK内置工具使用技巧详解 #### 一、引言 JDK(Java Development Kit)作为Java编程语言的核心组件,不仅提供了必要的编译、调试及文档工具,还配备了一系列用于监控和诊断应用程序运行状态的工具。本文将详细...
JDK内置工具补充1.查看正在运行的JVM的参数返回结果:
Javadoc是JDK内置的一个文档生成工具,用于自动生成Java源代码的API文档。它通过解析源代码中的注释,生成HTML格式的文档,使得其他开发者能够清晰地了解类、接口、方法等的用途和用法。例如,压缩包中的`JDK_API_1_...
一旦设置完成,我们就可以创建新的 Java 项目,编写代码,使用内置的构建工具自动编译源代码,以及通过内置的调试器进行测试和调试。 Eclipse 还支持插件扩展,可以添加对其他语言(如 C++、Python 等)的支持,...
**JDK内置实用工具:监视和故障排除** Java Development Kit (JDK) 提供了一系列内置的工具,用于监视和诊断在Java平台上运行的应用程序。其中一个关键的工具是JConsole,这是一个基于Java Management Extensions ...
对于Android开发,还需掌握如何使用Android Studio中的JDK工具,如构建工具Gradle,以及如何调试和测试Android应用。 在**JDK文档**中,官方的Java SE文档是非常宝贵的资源,它详尽地解释了类库的API、JVM规范和...
在安装了JDK1.8后,开发者可以使用`javac`命令编译Java源代码,使用`java`命令运行Java程序,以及使用`jar`工具打包和管理Java应用程序。这些工具为Java开发者提供了全面的开发环境,使得他们能够高效地进行Java编程...
在Java开发环境中,有时我们需要一个轻量级的数据库来快速测试代码或进行原型设计,而JDK 1.7引入的内置数据库Apache Derby就是这样一种工具。这篇教程将带你入门使用Derby,通过两个示例程序——`TestDerbyBasic....
开发者可以查阅这些文档来学习如何使用Java的内置功能,解决问题,或者了解新特性的工作原理。文档通常包括API规范、教程、指南和参考信息,对于初学者和经验丰富的开发者都是不可或缺的资源。 Java的开发工具包括...
JDK 1.8引入了一个内置的JavaScript引擎Nashorn,使得Java应用程序能够直接运行JavaScript代码,促进了Java与JavaScript之间的交互。 ### 2. JDK 1.8的安装步骤 在安装JDK 1.8时,通常遵循以下步骤: 1. 下载:...
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar).不论什么Java应用服务器实质都是内置了某个版本的JDK. 因此掌握 JDK是学好Java的第一步.最主流的JDK是Sun...
本文将深入探讨"jdk反编译工具"这一主题,帮助你了解如何借助此类工具解决无法查看源代码的问题。 首先,让我们了解什么是反编译。反编译是将已编译的计算机程序(通常为字节码或机器码)转换回接近原始源代码的...
在Java开发中,JDK内置的动态代理机制是一种强大的工具,它允许我们在运行时创建具有额外功能的对象。这个“JDK内置动态代理例子”旨在演示如何利用Java的反射API和`java.lang.reflect.Proxy`类来实现类似拦截器的...
在Java开发过程中,掌握JDK内置工具是提升效率和优化代码的关键步骤。本文将深入探讨六个对于普通开发者极具价值的JDK内置工具,这些工具在Java开发中的应用广泛且实用,能够帮助开发者提升编程技能,优化工作流程。...
总之,JDK 1.8内置JRE的压缩包为开发者提供了一个便捷的途径来获取和使用Java 8开发环境,特别是对于那些因网络问题无法快速下载官方版本的用户而言,这是一个非常实用的资源。通过熟悉和掌握JDK 1.8的主要特性和...
Android Studio,作为官方推荐的集成开发环境(IDE),内置了基于JDK的工具链,包括Gradle构建系统,它使用Java编写的插件来管理项目依赖和构建过程。 开发者在编写Android应用时,会使用到JDK的语法特性,如类、对象...
这个库在JDK 1.8环境下运行良好,是Java Web开发中的常见组件,尤其在构建MVC(Model-View-Controller)架构的应用程序时,常常与Spring Framework等后端框架一起使用。 Freemarker的核心概念是模板语言,它允许...
本篇文章将详细解析“JDK工具包(Mac)”,包括JDK 11的运行环境和API文档的安装与使用。 首先,让我们了解JDK 11。JDK 11是Java SE(标准版)平台的第15个长期支持版本,发布于2018年9月。它引入了许多新特性,如...
在Java开发过程中,JDK提供了一系列内置的调试工具,这些工具对于优化性能、排查问题以及理解JVM(Java虚拟机)内部运作至关重要。本篇将详细介绍JDK自带的几个主要调试工具,包括`jmap`、`jstack`、`jconsole`,...
**Java JDK 11 使用详解** Java Development Kit (JDK) 是Java编程语言的核心组件,它包含Java编译器、Java运行环境、调试工具和其他必要的工具,使得开发者能够编写、测试和部署Java应用程序。JDK 11是Java的一个...