1.Java是一种面向对象的高级程序设计语言。
2.Java的按其应用范围可以分为3个版本:
I.Java Platform, Standard Edition (Java SE)
也就是Java的标准版,是Java的基础,主要用于桌面应用程序的开发。
II.Java Platform, Enterprise Edition (Java EE)
是Java的企业版,主要用于开发企业级分布式的网络程序。
III.Java Platform, Micro Edition (Java ME)
其主要用于嵌入式系统开发,为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。
3.Java语言的特点:
简单、面向对象、分布性、可移植性、解释性、安全性、健壮性、多线程、高性能、多态
4.Java的核心是面向对象的程序设计(OOP-Object Oriented Programming ),而所有面向对象的程序设计语言,包括Java,都具有三种特性:
a.封装:将数据成员和属于此数据的操作方法,放在同一个实体或对象中。(模块化、信息隐藏 )
b.继承:父类定义一些通用的属性与行为,其子类继续使用。(实现代码复用、简化设计过程)
c.多态:在同一个类中可有许多同名的方法,但其参数数量与数据类型不同,而且操作过程与返回值也可能会不同(解决其他语言中不能重名的问题)
5.Java是可以跨平台运行的,而其运行机制如下图:*****重要!
程序代码经过编译之后转换为一种称为Java字节码的中间语言(.class文件),Java虚拟机(JVM)将对字节码进行解释和运行。编译只进行一次,而解释在每次运行程序时都会进行。编译后的字节码采用一种针对JVM优化过的机器码形式保存,虚拟机将字节码解释成机器码,然后在计算机上运行。
5.1 Java运行机制-虚拟机
实现平台无关性的基础就是Java虚拟机JVM,是以Java字节码为指令组的软CPU。负责对本地*.class文件解释执行。
Java虚拟机包含类加载器(用来取得从网络或本地的类文件)、字节确认器(确认类文件是否有正确的格式)、以及JIT实时编译器(使虚拟机能提高到编译式的运行效率)。
5.2 Java运行机制-字节码
*.class文件与机器码不同,不是真正的CPU可运行的指令代码,故又称伪代码。
通过JVM以及JRE将其转成本地机器代码,达到“一次撰写,到处运行”。
6.Java环境
The Java SE System Development Kit (JDK): Java 语言的软件开发工具包。包括以下四种:
(1).Java Runtime Environment (JRE) (Java执行环境)
JDK和JRE有啥区别呢? 答:JDK是Java的开发工具包,里面包括一些类和工具,当然也是包括JRE的,是给程序员开发用的。 JRE是Java运行时候的环境,包含了Java虚拟机,Java的一些基础类库。 总结:如果想运行Java程序,只需要安装JRE就好了,而如果想开发Java,必须安装JDK
(2).Tools (各种工具程序)
(3).Java Class Library Source Files (Java类库源码)
(4).Demo (关于各种类的例程)
7.Java IDE(Java集成开发环境):Eclipse、IntelliJ等
8.Java概念图
如图所示,有几个名词需要解释以下:
javac:Java编译器,将Java源代码转换成字节码。
java:Java解释器,直接从类文件执行java应用程序字节代码。
appletviewer:小程序浏览器,一种执行HTML文件上的java小程序的Java浏览器。
javadoc:根据java源码及说明语句生成HTML文档。
jdb:Java调试器,可以逐行执行程序,设置断点和检查变量。
javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
以下为几张重要的图示:
9.Java程序的分类:
Java Application
由JAVA解释器独立运行字节码、由专门的命令行启动程序执行、程序中有定义了main()方法的主类
Java Applet
不能独立运行,字节码必须嵌入HTML文档、当浏览器调用含APPLET的Web页面时执行、程序中含有java. applet. Applet 类的子类
10.Java里面一些重要的包:
java.AWT 提供了容器和众多组件,是图形用户界面设计不可缺少的,也是一个与平台无关、用于图形用户界面编程的类库集合。
java.applet 为创建小应用程序提供必要的元件,包括声音播放资源。。
java.io 提供与设备无关的输入、输出流支持。
java.lang 提供支持Java的基础类。
java.net 提供支持联网的类。
java.util 提供实用方法和数据结构的类。
注:以上资料参考老师上课课件以及《Java从入门到精通》,以后会随着自己理解的深入进行更新。