- 浏览: 269765 次
- 性别:
- 来自: 杭州
最新评论
-
qiumin333:
所以正数最大位0111 1111,也就是数字127, 负数最 ...
Java byte数据类型详解 -
weizhikang1992:
[b][flash=200,200][list][*]引用[/ ...
Java中AOP技术详解 -
lizhengzy:
[啊啊啊]
Java中AOP技术详解 -
iyaodi:
呃,错了,按位与0xff不等于*(-255)
Java byte数据类型详解 -
iyaodi:
ftutor 写道"即0xffffffff但是这个数 ...
Java byte数据类型详解
JRE 与 JDK ,JVM Client Server了解 一、JRE: java runtime environment java 运行环境 JRE是运行java所需要的环境。包含JVM标准实现和JAVA核心类库,以及javaplug-in。 可以在JRE上进行运行、测试和传输应用程序。JRE不包括编译器,调试器和其他工具。 也就是说,如果直接运行一个java编译好了的class文件,使用JRE就OK 了。 但是如果你要开发一个java文件,然后对它进行编译,调试等工作,这个时候就要用到JDK 了。 二、JDK: java development kit java 开发工具包 java开发人员对这个并不陌生,在创建开发环境的时候首要安装的就是JDK,配置环境变量JAVA_HOME ,指向JDK。 在安装JDK的后,你会发现jdk的目录下有一个jre的目录,也就是说,JDK里面包含一个JRE。这样开发了的程序可以编译后直接运行了。 JDK 有三种版本,常说的J2EE(java 2 platform Enterprise edition),J2SE(java 2 platform standyard edition), J2ME(java 2 platform micro edition)就是说的JDK 的版本。 JDK 除了核心的java api库和jre外,还包括一些程序组成的工具库(jdk的安装目录bin下可以看到),在这里挑几个简单了解下: 1.javac:java的编译器,可以将java文件编译成字节码 2.java: java的解释器,可以将字节码进行解释运行。 3.jdb: java 调试器,可以设置断点和检查变量,逐行运行程序。 4.javah:产生可以调用java过程的c过程,或建立能被java程序调用的C过程头文件。这个我没用过。暂时理解为C 与 java之间的翻译吧。 5.Javap:java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节码的含义。其实个人感觉叫javap反汇编或反编译器比较别扭。 因为javap毕竟不像其他的反编译工具一样将class文件的直接转成java文件,而只能显示方法的名称,不包括具体实现。 我感觉javap还是作为解释class文件的。如果你没有这个class文件的api,没有ide,想在命令行操作里面查看这个class文件都包括什么方法 那javap还是很简单操作的,例如: [root@kaifa02 ~]# javap -private java.lang.Object Compiled from "Object.java" public class java.lang.Object{ public java.lang.Object(); private static native void registerNatives(); public final native java.lang.Class getClass(); public native int hashCode(); public boolean equals(java.lang.Object); protected native java.lang.Object clone() throws java.lang.CloneNotSupportedException; public java.lang.String toString(); public final native void notify(); public final native void notifyAll(); public final native void wait(long) throws java.lang.InterruptedException; public final void wait(long, int) throws java.lang.InterruptedException; public final void wait() throws java.lang.InterruptedException; protected void finalize() throws java.lang.Throwable; static {}; } javap 根据传递的不同参数展示不同的内容,可以使用javap -help来查看具体参数的使用,参数很少,也比较简单 [root@kaifa02 ~]# javap -help Usage: javap <options> <classes>... where options include: -c Disassemble the code -classpath <pathlist> Specify where to find user class files -extdirs <dirs> Override location of installed extensions -help Print this usage message -J<flag> Pass <flag> directly to the runtime system -l Print line number and local variable tables -public Show only public classes and members -protected Show protected/public classes and members -package Show package/protected/public classes and members (default) -private Show all classes and members -s Print internal type signatures -bootclasspath <pathlist> Override location of class files loaded by the bootstrap class loader -verbose Print stack size, number of locals and args for methods If verifying, print reasons for failure 6. Jconsole: Java进行系统调试和监控的工具 7.jstat : 对jvm的内存使用量进行监控,感觉这个东西很好,正好这几天看java虚拟机,如果不安装其他工具,使用jstat就可以监控到jvm内容使用的情况和GC状况,对于jvm调优很有帮助: 8.jmap - Memory Map: Prints shared object memory maps or heap memory details of a given JVM process or a Java core file on the local machine or on a remote machine through a debug server。 jmap 能够打印出jvm的内存使用详情,也可以把这些详情输出到特定的文件中进行分析 [root@kaifa02 ~]# jmap -heap 3876 Attaching to process ID 3876, please wait... Debugger attached successfully. Server compiler detected. JVM version is 10.0-b22 using thread-local object allocation. Parallel GC with 8 thread(s) Heap Configuration: MinHeapFreeRatio = 40 MaxHeapFreeRatio = 70 MaxHeapSize = 2147483648 (2048.0MB) NewSize = 1048576 (1.0MB) MaxNewSize = 4294901760 (4095.9375MB) OldSize = 4194304 (4.0MB) NewRatio = 8 SurvivorRatio = 8 PermSize = 16777216 (16.0MB) MaxPermSize = 67108864 (64.0MB) Heap Usage: PS Young Generation Eden Space: capacity = 123797504 (118.0625MB) used = 25266160 (24.095687866210938MB) free = 98531344 (93.96681213378906MB) 20.40926447111567% used From Space: capacity = 1900544 (1.8125MB) used = 0 (0.0MB) free = 1900544 (1.8125MB) 0.0% used To Space: capacity = 20447232 (19.5MB) used = 0 (0.0MB) free = 20447232 (19.5MB) 0.0% used PS Old Generation capacity = 954466304 (910.25MB) used = 19873888 (18.953216552734375MB) free = 934592416 (891.2967834472656MB) 2.0821990170540374% used PS Perm Generation capacity = 67108864 (64.0MB) used = 35417304 (33.776573181152344MB) free = 31691560 (30.223426818847656MB) 52.77589559555054% used 9.native2ascii 可以将目标文件转成unicode 编码,或者将unicode编码的文件还原成本地编码,也可以指定编码进行转换。 ========================== JVM 相关 ======================= 下面整理一下对JVM client 和server 的一点点了解: JVM如果不显式指定是-Server模式还是-client模式,JVM能够根据下列原则进行自动判断(适用于Java5版本或者Java以上版本)。 J2SE5.0检测的根据是至少2个CPU和最低2GB内存。 1 jvm server比jvm client 更优化,性能更好. 2 jvm server 启动较慢但启动后运行速度较快。jvm client 启动较快。 3 jvm client 中能运行的可能在jvm server中运行出错 ,所以这样的话最好在开发、测试阶段都使用jvm server ,保持和服务器相同。 当JVM用于启动GUI界面的交互应用时适合于使用client模式 当JVM用于运行服务器后台程序时建议用Server模式。 ps:java -version 来查看jvm默认工作在什么模式 JVM Client C:\Documents and Settings\Administrator>java -version java version "1.6.0_21" Java(TM) SE Runtime Environment (build 1.6.0_21-b06) Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing) JVM Server [root@kaifa02 ~]# java -version java version "1.6.0_06" Java(TM) SE Runtime Environment (build 1.6.0_06-b02) Java HotSpot(TM) Server VM (build 10.0-b22, mixed mode)
发表评论
-
java 序列化的说明
2013-01-23 13:49 989当父类继承Serializable接口,所有子类都可以被序列 ... -
String.split() 需要注意的问题
2012-07-31 12:29 887特殊的分割符号:| * + \ \\ 在使用Str ... -
Object中getClass()方法详解
2012-07-31 12:29 29650Obejct类有一个getClass()方法: 返回 ... -
JVM运行时内存分配
2012-07-31 12:31 1892Inside JVM运行时数据区 ============ ... -
Java字符串及其编码
2012-07-31 12:37 1262编码:将字符以编码 ... -
Java中ASM框架详解
2012-08-01 23:48 17036什么是asm呢?asm是assembly的缩写,是汇编的 ... -
Java中AOP技术详解
2012-08-01 23:48 20663AOP是Aspect Oriented Programm ... -
Java源代码文件与public类同名
2012-08-01 23:47 1056java源文件的命名规则是这样的: 1,扩展名必须 ... -
Java异常体系结构详解
2012-08-01 23:47 2003Java所有Exception, Error的父接口:T ... -
Java 线程栈信息详解
2012-08-01 23:48 5138windows系统中: 进程所拥有的内存空间都是独立 ... -
Java 启动类
2012-08-02 12:34 1047Launcher是JRE中用于启动程序入口main()的类。 -
Java 内存泄露浅析
2012-08-02 12:35 1659Java使用有向图的方 ... -
Java命令java, javac, jar
2012-08-02 12:35 2290java 用法: (执行 ... -
Java 进程,线程退出问题
2012-07-30 22:49 0Java的Main所在的线程启动一个新的线程以后,两个线 ... -
Java 环境变量详解
2012-08-02 12:35 1215当我们在Windows系统上安装jdk或者jre之后。 必须 ... -
Java 线程Thread详解
2012-08-02 12:35 2163在Java中,实现多线程的 ... -
Java的局部内部类以及final类型的参数和变量
2012-07-30 19:27 0如果定义一个局部内部类,并且希望它使用一个在其外部定的对 ... -
Java的transient, volatile, strictfp关键字详解
2012-07-30 19:26 0Java中的transient,volati ... -
Java代理模式,代理类(Proxy)详解
2012-07-30 19:24 0Java代理模式 1.代理模式 代理模式的作用是: ... -
Java常用jar包信息和关系介绍
2012-07-30 19:22 0Java发送邮件需要的jar包: mail.jar ac ...
相关推荐
网上摘录总结的关于jdk、jre、jvm的区别
开始接触Java的时候觉得Java虚拟机很麻烦,不明白JRE与JDK的区别是什么?后来搞清楚JRE是个运行环境,JDK是个开发环境。
一张图看懂JVM、JRE、JDK
本文介绍了JDK、JRE和JVM之间的关系,并提供了相应的Java示例代码。 内容概要 本文档涵盖以下内容: JDK、JRE和JVM的概念和作用 JDK的组件和功能 JRE的组成和用途 JVM的作用和重要性 学到什么 通过阅读本文,您将...
【Java面试题】JDK、JRE与JVM的区别
本文主要介绍了Java中的JDK、JRE、JVM的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
Java Portable 1.8.0.181 绿色便携精简JRE, jPortable在线安装后提取版。最大化保持功能版。7z压缩后44M解压后162M。可配合便携版360极速浏览器,firefox等浏览器使用,使便携式java随时可用
详解JDK,JRE,JVM.md
JDK(java Development Kit):java 的开发和运行环境,包括java 的开发工具和 jre,在程序员的电脑上当然要安装JDK; JRE(Java Runtime Environment):它是Java运行环境,包括,java 运行的所需的类库+JVM(java ...
我们开发的实际情况是:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译
linux版本 jdk1.7 64位 jre jdk linux版本 jdk1.7 64位 jre jdk
jdk8_java8_jre_jdk
Java中JDKJRE和JVM解析.doc
JDK,JRE,JVM区别与联系.pdf 学习资料 复习资料 教学资源
Windows server 2019 64位操作系统安装jdk时安装jre进度条卡住,等待很长时间也不继续
压缩包内包含 windows 的 jdk 的32、64位安装包 及jre的32、64位安装包 linux jre及jdk 64位安装包
JRE和JDK.pdf
jdk,jre 1.8.0.241版本,方便快捷下载。官网下载要花很多时间,为了方便,一起下载减少时间浪费。 JRE:Java Runtime Environment(java运行时环境)。 JDK:Java Development Kit(java开发工具包)。
jdk1.8工具、windows的jdk版本、java开发工具、jre、jdk、java开发、后端开发、jdk工具、jre工具、j2ee、java
我们必须明白JDK,JRE和JVM之间的差异.mp4