1.Java运行开发环境java
Sun在1996年年初发布JDK1.0(首版)。这个版本包含两个部分:运行环境(jre)和开发环境(jdk)。数据库
(1)运行环境包括:核心API、集成API、用户界面API、发布技术、Java虚拟机(JVM)5各部分;数组
(2)开发环境包括:编译Java程序的编译器(javac命令)。ide
2.Java程序的运行机制和JVM:spa
(1)Java语言编译后不会生成特定平台的机器码,而是生成一种与平台无关的字节码(xxx.class),必须用Java解释器解释执行。对于Java而言编译和解释缺一不可;以下图:线程
(2)Java中负责解释执行字节码的是Java虚拟机,即JVM(Java virtual machine)。Java字节码不面向任何平台,只面向JVM。不一样平台的JVM是不一样的,可是他们都提供相同的接口;3d
3.Java程序的编译和运行对象
(1)使用记事本便可,编译命令:Javac -d . HelloWorld.java(-d 表示生成.class文件的目录,.表示当前目录);运行命令:Java Java的类名(注意:运行时Java命令后接类名,而非.class文件名,更非源Java文件名)。blog
(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()方式只仅仅是建议系统回收垃圾;