1.1 java历史与特点
java历史与发展
java 由sun公司编写,后由Oracle公司收购
java 发展
分为三大平台:
- javaSE 标准版
- javaEE 企业版
- javaME 微型班
版本 | 年份 | 语言新特性 |
---|---|---|
1.0 | 1996 | 语言本身 |
1.1 | 1997 | 内部类 |
1.2 | 1998 | strictfp修饰符 |
1.3 | 2000 | 无 |
1.4 | 2002 | 断言 |
5.0 | 2004 | 泛型类、for each循环、可变元参数、自动装箱、元数据、枚举、静态导入 |
6 | 2006 | 无 |
7 | 2011 | 基于字符串的switch、二进制字面量、异常处理改进 |
8 | 2014 | lambda表达式,包含默认方法的接口、六合日期/时间库 |
java特点
- 简单性
- 面向对象(OOP)
- 分布式
- 健壮性
- 体系结构中立
- 可移植性
- 解释型
- 高性能
- 多线程
- 动态性
####
java与C++区别:
- 无指针操作
- 自动内存管理
- 数据类型长度固定
- 不用头文件
- 不包含结构和联合
- 不支持宏
- 不用多重继承
- 无类外全局变量
- 无goto
java运行机制
三中核心机制:
- java虚拟机(Java Virtual Machine)
- 代码安全性检测(Code Security)
- 垃圾回收机制(Garbage collection)
JRE
java运行环境JRE=JVM+API(Lib)
运行程序的三项功能:
- 加载代码:class loader
- 校验代码:bytecode verifier
- 执行代码:runtime interpreter
自动垃圾回收技术:
- 系统级线程跟踪存储空间的分配情况
- 在JVM空闲时,检查并释放那些可被释放的存储器空间
JDK
JDK(java工具包=JRE+Tools)
JDK提供的工具:
- java编译器:javac.exe
- java执行器:java.exe
- java文档生成器:javadoc.exe
- java打包器:jar.exe
- java调试器:jdb.exe
面向对象程序设计
类:具有共同属性和行为的对象集合
- 属性:变量(字段field)
- 行为:函数(方法)
类与对象的关系:类是对象的抽象(模板),对象是类的实例
程序的编译与运行
JDK安装后的文件夹
- bin:工具文件
- jre:java运行环境相关的文件
- demo:实例
- include:与c相关的头文件
- lib:程序库
- db:数据库相关
java的编译与运行
编译——转换字节码(bytecode)文件,扩展名.class
- .class文件中包含java虚拟机的指令
- 使用JDK工具:javac.exe,如:javac HelloWorld.java
运行——执行.class文件中的指令,如java HelloWorld
JDK工具
jar打包
- 编译:javac A.java
- 打包:jar cvfm A.jar A.man A.class(c:create v:显示详情 f:指定文件名 m 清单文件)
- 运行:java -jar A.jar
javadoc生成文档
javadoc -d 目录名 xxx.java
javap
使用javap查看类的信息 javap 类名
javap反汇编:javap -c 类名