01 JavaSE基础语法
java介绍
Java 是一门派生语言,早期语言设计者为了不想在项目中使用 C++ 而创造了这种看起来很像 C++,却比 C++ 有了改进的新语言(原始的项目并未成功)。Java 最核心的变化就是加入了“虚拟机”和“垃圾回收机制”,这两个概念在之后的章节会有详细描述。 此外,Java 还在其他方面推动了行业发展。例如,现在绝大多数编程语言都支持文档注释语法和 HTML 文档生成工具。
java各版本的含义
简而言之,javase是基础,必须要先学;javaee是企业级,接着学,然后可以转到javaweb方向,javame是做移动应用的。基础必须先学,然后再考虑下一步Java 平台有三个版本,这使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发。
J2EE(Java 2 Enterprise Edition):定位在服务器端的应用
J2EE是J2SE的扩展,增加了用于服务器开发的类库。如:javax.servlet Enterprise JavaBeans 是一种用来代表企 业逻辑的软件组件;JDBC则是让程序人员能直 接在Java内使用的SQL的语法来访问数据库内的数据;Servlet能够延伸服务器的功能,通过 请求-响应的模式来处理客户端的请求;JSP是一种可以将Java程序代码内嵌在网页内的技 术;另外还有包括XML、email及transaction等各种应用于服务器端的API。
J2SE(Java 2 Standard Edition):定位在个人计算机上的应用
这个版本是Java平台的核心,它提供了非常丰富的API来开发一般个人计算机上的应用程序, 包括用户接口AWT及Swing,网络功能与国际化、图像处理能力以及输入输出支持等。在互联 网上大放异彩的Applet也属于这个版本。
J2ME(Java Micro Edition):定位在消费性电子产品的应用上
J2ME是J2SE的内伸,包含J2SE的一部分核心类,也有自己的扩展类,增加了适合微小装置的
类库:javax.microedition.io.等。
java特性与优势
简单性 面向对象 可移植性 高性能 动态性 多线程 安全性 健壮性
java应用程序的运行机制
计算机高级语言类型:编译型 解释型
jvm 虚拟机
JVM是一种规范,可以使用软件来实现,也可以使用硬件来实现,就是一个虚拟的用于执行 bytecodes 字节码的计算机。他也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。JVM负责将 java字节码 解释运行,边解释边运行,这样,速度就会受到一定的影响。JAVA提供了另一种解释运行的方法JIT(just in time),可以一次解释完,再运行特定平台上的机器码,高级的JIT可以只能分析热点代码,并将这些代码转成本地机器码,并将结果缓存起来,下次直接从内存中调用,这样就大大提高了执行JAVA代码的效率。这样就实现了跨平台、可移植的功能。
-
JVM是指在一台计算机上由软件或硬件模拟的计算机;它类似一个小巧而高效 的CPU。
-
byte-code代码是与平台无关的是虚拟机的机器指令。
-
java字节代码运行的两种方式: 方式interpreter(解释) Just-in-time(即时编译):有代码生成器将字节代码转换成本机的机器代码,然后可 以以较高速度执行。
不同的操作系统有不同的虚拟机。Java 虚拟机机制屏蔽了底层运行平台的差别,实 现了“一次编译,随处运行”。
jre 运行时环境
Java Runtime Environment (JRE) 包含:Java虚拟机、库函数、运行Java应用程序和Applet所必须文件
Java运行环境的三项主要功能:
-
加载代码:由class loader 完成;
-
校验代码:由bytecode verifier 完成;
-
执行代码:由 runtime interpreter完成。
jdk 开发工具包
sdk(Soxware Development Kit)(也就是jdk)是jre的超集,是在jre的基础上增加了编译器及其他一些开发工具。jre就是java运行时环境,包括了jvm和其它一些java核心api,任何一台电脑,只有安装了jre才可以运行java程序。
Java2SDK (Development Kit)包含:JRE的超集,包含编译器和调试器等用于程序开发的文件。
所以运行java文件只需要jre就可以了。但是要开发java程序就需要jdk。
基础语法
类{ 属性 方法 }: 对事物的总结抽象整体
特殊方法{构造器} 对事物的赋予属性
属性{简单类型 复杂类型} 事物自身必带的特征
方法{方法权限 方法签名} 事物的功能 能力
接口{ 抽象方法实现功能}
枚举{枚举属性}
简单类型:
复杂类型:装箱后的数据类型 类对象 地址引用
装箱:将数据封装成类
拆箱:将类拆箱读取出其中数据
this super
public default protect private
static { } final
向上转型 向下转型
逻辑预算符
三目运算符
for while do{ }while if eles switch
continue break return