: U/ C% W6 E1 L% @2 ~JVM与垃圾收集机制- y8 K6 H" Q% Q! M! M
Java语言的特点:跨平台性) O! t# P3 p) H3 N8 i5 Y
原因:因为可以在每个不同平台下载jvm# m2 Y1 T' N# J# C* y3 X
/ W' Y- F3 `' J
核心机制-Java虚拟机- q# o- z. p$ e# p, D
JVM是一个虚拟机的计算机,具有指令集并使用不同的储存区域。负责执行指令,管理数据,内存,寄存器。 # x4 N2 n/ @! O. j( k5 u5 c 7 X1 Y/ u; P3 }# S D5 y对于不同的平台的平台,有不同的虚拟机 ) l0 ^* S! f+ a8 ]/ ~! O1 q, b: p0 A* S
只有某平台提供了对应了java虚拟机,Java程序才可以在此平台运行 0 w6 Z% g# s$ g' \) i - a+ ?& w3 o5 hJava虚拟机机制屏蔽了底层运行平台的差别,实现了"一次编译,到处运行" 7 j1 G7 x- A7 F/ i5 @( J8 Z6 F! ]1 I9 {7 ~. y
核心机制-垃圾回收 3 h; F/ U, S* s1 a / ?8 i1 K% V9 ^2 k/ M" o不在使用的内存空间应回收-垃圾回收 $ F% S6 | M, |" A8 \1 d * _1 d' t9 P; U8 m0 G 在C/C++等语言中,由程序员负责回收无用内存。 - N0 r) w0 X7 p1 n0 u; | & Z- q r" w, ]- s5 l j9 a Java语言消除了程序员回收无用内存空间的责任,它提供了一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。/ U, f3 l$ i5 f& S
/ l8 B0 }+ q1 b6 R4 }# c4 A 垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预。8 j8 q! E1 N6 D% n% A- S2 F
* V$ L: |' l, R0 a; q
Java程序还会出现内存泄漏和内存溢出问题吗?Yes!$ }0 H+ _5 D; {! C O# q7 j' B% {
; G8 @3 c2 ]+ V9 J( y
JDK、JRE、JVM的关系/ v/ h: X7 @ ]+ L4 N1 k
什么是JDK、JRE ) | Y& [4 ^" j; t8 X' K- L- S0 y6 h: o/ R* P8 W, S; U
JDK # S5 k& G1 j6 E& Z T1 C; m( H) Q8 v T
JDK是提供Java开发人员使用的,其中包含了java的开发工具,也包括了JJRE。所以安装了JDK,就不用在单独安装JRE了# }, h: T% }5 h' u
7 [) |8 k% R% D' n, j+ H其中的开发工具:编译工具(javac.exe)打包工具(jar.exe)等 6 M: G+ V5 \0 I2 W) e$ e! i" A1 O3 I8 V4 S! h. Q% z
JRE& i3 q8 n/ b$ `7 g
5 m" s! R' X7 A1 z: P6 s; _
包括Java虚拟机和java程序所需要的核心类库等。如果想要运行一个开发的Java程序,计算机只想要安装JRE即可。 % @4 E% w$ |) [3 _1 N# f. s8 s+ ~! e4 x8 L6 J% e2 ~- T' {
JDK、JRE、JVM的关系) M5 ^+ y( T) \9 e! E- A2 |
$ [1 _1 I; v2 ]5 f( f
JDK=JRE+开发工具集 |3 Z+ R A3 c4 f& b" [& Y! p2 t6 w; n
JRE=JVM+Java SE标准类库 G4 b9 |) I& z' H . h, W, L' c4 }/ l6 K : A9 r7 L. K$ b d; V2 S) ]6 P# i, f* T; \- \: ^
官方网址: " Y) `: ?/ @ V% ?" ~ & }" W% D! }" l2 {& X& R, O2 K www.oracle.com 9 v# e% E: M" q3 p( }( K/ V6 u7 L& D" j4 x3 ~7 C
java.sun.com6 W" V: v' X5 N3 I
7 M) f: E# P: i4 F$ r# F, n2 M安装JDK ! b$ b! b, z R- z$ z# K 3 I& r3 ^8 p0 a: L 傻瓜式安装,下一步即可。( I/ F8 @' U. j1 t. D" J: O# O
8 p& N. C: y# G) o7 w# C7 r5 [) i) a, @! z
建议:安装路径不要有中午或者空格等特殊符号3 l$ O7 u3 M Q
: E; J A% \+ ?/ s( m* K" P# j- k
如果操作系统是64位的,软件尽量选择支持64位的) s& ^* m b" m& A' e4 d5 q
9 y9 A) \1 M: S, r0 s
当前提示安装JRE时,正常在JDK安装的时候已经安装过了,但是为了后续使用Eclipse等开发工具不报错,建议也根据提示安装JRE。 7 y& }& g- q" B 4 E% A1 I/ `1 NJDK的安装" N4 [# }' W: Y6 ]# P; c6 W& T
下载JDK - l7 I7 s; L/ e: f0 z下载路径:& D/ e f. Z$ ?( l' k( e/ o8 j
链接:Java Downloads | Oracle, z0 N$ \ n4 [$ R8 w9 C; v
( t. R1 {$ z% X2 w. J1 B根据电脑的系统选择对应的版本,其中x86表示32位系统,x64表示64位系统。 9 M8 m+ F$ N& k$ m! Y U9 \" N- r- Y7 h0 s
JDK安装步骤 " c' L, u' F' a L5 I, F 双击下载下来的安装文件, 点下一步: W( ?: j6 C0 Q# i- |
. s: V9 m! Q% Y, M9 M3 @, W' h $ H2 C9 C) {: f8 o/ ]; V7 f 7 K \* n# D+ W- q% a& |- n4 N. y: K ! Q5 W- T9 l0 s% C( ?! x % a7 V, q2 @" E% o$ P 这里我们可以选择安装路径,也可以默认安装。如果更改路径最好不要放在中文或者带空格的目录下,以免将来出现不必要的麻烦。$ E6 _0 j. H& {1 p4 n2 |8 Q* C
! [% l* G7 G) j4 _$ d+ X: o! x) k. |! o6 @" x' U0 r; B
, H3 ?/ E6 x3 p( W7 u- z8 l8 u8 t" o 点击下一步就开始安装了: A. z9 P1 t/ o% z
- H5 S- f9 J' X5 b& K* r$ t" F8 c! M. S' X' f) m( f/ j. o3 x
6 |0 f+ P9 B, v% U5 F7 P3 C
设置环境变量 , w1 d7 q1 _ ^+ g4 Q- p8 W$ U 桌面“我的电脑”右击,选择“属性”打开“系统控制面板”选择“高级系统设置” - F0 z( I2 A+ t; g) Y9 x" Z$ N% q) {4 K/ a8 L9 ^; i+ ~: b# X
' T, @' O' o' @* d# _% m$ t, w6 q$ \; c+ E, k! t2 ~
# _8 V' u }) G; d) g | / Z, L5 u, R. u. o9 ?! |+ d进入之后选择高级系统设置,然后选择环境变量 ; o3 r- Z9 a3 b. {8 t/ W# l* w' a * K" T# T0 q% y5 Q' u* W) V在打开的环境变量对话框后,单击下方【系统变量】下的【新建】按钮;% r0 k5 M9 [6 x1 R