Java语言及开发概述
- 90年末,C++太复杂,缺少垃圾回收系统、可移植性、分布式和多线程,因而Sun开发新的语言,诞生了Java。
- J2ME:用于控制移动设备和信息家电等有限存储的设备。
- J2SE:Java技术的核心和基础。
- J2EE:应用最广泛的部分,提供了企业应用开发相关的完整解决方案。
- C# 和Java 很像,在语法方面,都摒弃了C++中函数及其参数的const修饰、宏替换、全局变量和全局函数等地方;继承方面,两者都采用了单继承和多接口的实现方案;源代码组织方面,都提出了声明与实现一体的逻辑封装。
- 计算机高级语言按程序的执行方式可以分为解释型和编译型,C\C++等属于编译型语言,Python\Ruby属于解释型语言,Java语言特殊,先编译后解释,编译不会生成机器码而是生成一种与平台无关的字节码(*.class文件)再用Java解释器(JVM-Java虚拟机)来解释执行。
- JVM是一个抽象的计算机,具有指令集并使用不同的存储区域,它负责执行指令,管理数据、内存和寄存器。制定JVM的统一标准是为了实现Java程序的平台无关性。
- JRE:Java Runtime Environment-Java运行时环境。
- JDK:Java SE Development Kit-Java标准版开发包。
- 第一个程序:
public class HelloWorld
{
public static void main (String[] args)
{
System.out.println("Hello World!");
}
}
- Java是面向对象的程序设计语言,Java程序必须以类(class)的形式存在,类是Java程序的最小程序单位。
- Java程序源代码里定义了public类,该源文件的主文件名必须与该public类的类名相同,所以一个Java源文件最多只能定义一个public类。
- Java的内存分配和回收都是由JRE在后台自动进行的。JRE会回收不再使用的内存,这种机制被称为垃圾回收(GC)。当没有引用变量指向原来分配给某个对象的内存时,该内存就成了垃圾。JVM的一个超级线程会自动释放该内存区。
- 垃圾回收算法主要做两件事:发现无用的对象,回收被无用对象占用的内存空间,使该空间可被程序再次使用。主要缺点是影响程序性能,对其他物理资源无能为力。
- 垃圾回收的精确性主要包括两个方面:一是GC能精确地标记活着的对象;二是GC能精确的定位对象之间的引用关系。前者是完全回收的前提,不然可能造成内存泄漏,后者是实现归并和复制的必要条件,通过这种引用关系,能保证所有对象都能被可靠的回收并重新分配,从而有效减少内存碎片的产生。
- 编写Java程序的基本原则是:对于不在需要的对象,不要引用它们。