1.Java运行开发环境
Sun在1996年年初发布JDK1.0(首版)。这个版本包含两个部分:运行环境(jre)和开发环境(jdk)。
(1)运行环境包括:核心API、集成API、用户界面API、发布技术、Java虚拟机(JVM)5各部分;
(2)开发环境包括:编译Java程序的编译器(javac命令)。
2.Java程序的运行机制和JVM:
(1)Java语言编译后不会生成特定平台的机器码,而是生成一种与平台无关的字节码(xxx.class),必须用Java解释器解释执行。对于Java而言编译和解释缺一不可;如下图:

(2)Java中负责解释执行字节码的是Java虚拟机,即JVM(Java virtual machine)。Java字节码不面向任何平台,只面向JVM。不同平台的JVM是不同的,但是他们都提供相同的接口;
3.Java程序的编译和运行
(1)使用记事本即可,编译命令:Javac -d . HelloWorld.java(-d 表示生成.class文件的目录,.表示当前目录);运行命令:Java Java的类名(注意:运行时Java命令后接类名,而非.class文件名,更非源Java文件名)。
(2)注意Java区分大小写。
4.关于Java程序:
(1)类是Java程序的最小单位。最简单的Java程序也就是仅有一个空类的程序class A{},但是该类只能编译通过,却不可运行,因为Java程序运行需要main方法入口;
(2)main方法的写法几乎是固定的,即必须由public static void修饰,参数必须是字符串数组类型(String[] args),一般的Java程序都有且仅有一个main方法,其他方法均由main方法直接或间接调用;
5.垃圾回收机制
(1)Java程序的内存分配和回收都是由JRE在后台自动进行的,JRE回收不再使用的内存,称为垃圾回收(Garbage Collection -- GC);
(2)JRE会提供一个后台线程来检测和控制,一般是在CPU空闲或者内存不足时自动进行垃圾回收,而程序开发者无法精确控制垃圾回收的时间和顺序;
(3)堆内存中保存所有类的实例对象,如果不再被程序所引用,则有垃圾回收机制自动释放;
(4)JVM除了释放没用的对象外,还可以清楚内存记录碎片(碎片是分配给对象内存快之间的空闲内存区),JVM将整理出来的内存分配给新的对象;
(5)关于GC的几点说明:
a.GC只能回收内存资源,对于其他物理资源:数据库连接、磁盘I/O的资源无能为力;
b.为了尽快使得无用的对象被回收,应将该对象赋null;
c.Runtime.getRuntime().gc();和System.gc()方式只仅仅是建议系统回收垃圾;