From bf3e799975165240dacbea00716faa7f3ad4a49e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E5=85=AC=E4=BC=97=E5=8F=B7=EF=BC=9A?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E4=B9=94=E6=88=88=E9=87=8C?= <990878733@qq.com> Date: Mon, 6 Apr 2020 19:44:26 +0800 Subject: [PATCH 1/2] =?UTF-8?q?Create=20Java=E5=9F=BA=E7=A1=80=E5=AD=A6?= =?UTF-8?q?=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...7\272\347\241\200\345\255\246\344\271\240" | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 "docs/Java\345\237\272\347\241\200\345\255\246\344\271\240" diff --git "a/docs/Java\345\237\272\347\241\200\345\255\246\344\271\240" "b/docs/Java\345\237\272\347\241\200\345\255\246\344\271\240" new file mode 100644 index 00000000..43b7f2a1 --- /dev/null +++ "b/docs/Java\345\237\272\347\241\200\345\255\246\344\271\240" @@ -0,0 +1,24 @@ +# Java + +Oracle JDK有部分源码是闭源的,如果确实需要可以查看OpenJDK的源码,可以在该网站获取。 + +http://grepcode.com/snapshot/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/ + +http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/73d5bcd0585d/src +上面这个还可以查看native方法。 + +### JDK&JRE&JVM + +JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具(编译、开发工具)和Java核心类库。 +Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。 +JVM是Java Virtual Machine(Java虚拟机)的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。 + +![123.png](http://ww1.sinaimg.cn/large/007s8HJUly1gdka822vwdj30dw099414.jpg) + +JDK包含JRE和Java编译、开发工具; +JRE包含JVM和Java核心类库; +运行Java仅需要JRE;而开发Java需要JDK。 + +### 跨平台 + +字节码是在虚拟机上运行的,而不是编译器。换而言之,是因为JVM能跨平台安装,所以相应JAVA字节码便可以跟着在任何平台上运行。只要JVM自身的代码能在相应平台上运行,即JVM可行,则JAVA的程序员就可以不用考虑所写的程序要在哪里运行,反正都是在虚拟机上运行,然后变成相应平台的机器语言,而这个转变并不是程序员应该关心的。 From e6b8ff8e54066d07934c166f176833e37b0ca6df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E5=85=AC=E4=BC=97=E5=8F=B7=EF=BC=9A?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E4=B9=94=E6=88=88=E9=87=8C?= <990878733@qq.com> Date: Mon, 6 Apr 2020 19:45:36 +0800 Subject: [PATCH 2/2] =?UTF-8?q?Rename=20Java=E5=9F=BA=E7=A1=80=E5=AD=A6?= =?UTF-8?q?=E4=B9=A0=20to=20Java=E5=9F=BA=E7=A1=80=E5=AD=A6=E4=B9=A0.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Java\345\237\272\347\241\200\345\255\246\344\271\240.md" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "docs/Java\345\237\272\347\241\200\345\255\246\344\271\240" => "docs/Java\345\237\272\347\241\200\345\255\246\344\271\240.md" (100%) diff --git "a/docs/Java\345\237\272\347\241\200\345\255\246\344\271\240" "b/docs/Java\345\237\272\347\241\200\345\255\246\344\271\240.md" similarity index 100% rename from "docs/Java\345\237\272\347\241\200\345\255\246\344\271\240" rename to "docs/Java\345\237\272\347\241\200\345\255\246\344\271\240.md"