JAVA是一门非常纯粹的面向对象编程语言,摈弃了C++难以理解的多继承、指针等概念,因此具有功能强大和简单易用两个特征。是静态面向对象编程语言的代表
JAVA由Sun公司开发。在JAVA语言出现之前,互联网网页实质就像一张纸,没有任何动态的内容。有了JAVA语言之后,浏览器的功能被扩大了,Java可以直接在浏览器里运行,可以直接与远程服务器交互。可以在互联网上像传送电子邮件一样传递程序文件。
JRE:运行环境,包括核心API,集成API,用户界面API,发布技术,虚拟机(JVM)
JDK:开发环境,安装JDK之后就包含的JRE。
Java SE:主要用于控制移动设备和信息家电等有限存储设备
Java EE:整个Java技术的核心和基础,也是Java SE Java ME编程的基础
Java ME:提供企业应用开发相关的完整解决方案
Java具有解释型语言和编译型语言两种特征,Java需要经过先编译,后解释两个步骤执行。
Java编译生成平台无关的字节码(*.class),然后由Java解释器解释执行。如下图所示
Java虚拟机负责解释执行字节码文件,即JVM,它是一个抽象的计算机,和实际计算机一样,它具有指令集并使用不同的存储区域,它负责执行指令、还要管理数据、内存和寄存器等。
编译Java程序使用 javac -d destdir srcfile // -d 用于指定存放编译生成的目标文件存放位置 javac生成的字节码文件以源文件定义的类名作为文件名,并以.class后缀,如果一个源文件中定义了多个类则会生成多个多个字节码文件。
运行程序使用 java 类名 // 参数是Java类名,而不是字节码文件的文件名,也不是源文件名。
CLASSPATH:JRE会按该环境变量指定的路径搜索Java类。
也可以在运行时临时指定搜索路径,java命令使用 -classpath 参数即可
类是java程序的最小程序单位,不允许可执行语句、方法等成分独立存在,所有的程序部分都必须放在类定义里。
通常情况下java源文件的文件名可以任意,但如果代码里面定义了一个public类,则源文件名必须与public类名相同,也因此一个源文件只能有一个public类。一般建议一个源文件只定义一个类,源文件名与类名相同
java提供垃圾回收机制,通常jre会提供一个后台线程进行控制和检测,一般在cpu空闲或内存不足时进行回收和内存碎片的清除,程序员无法精确控制垃圾回收的时间和顺序等。其潜在的缺点是开销影响程序性能