javaSE学习-历史与特性

1.1 java历史与特点

java历史与发展

java 由sun公司编写,后由Oracle公司收购

java 发展

分为三大平台:

  • javaSE 标准版
  • javaEE 企业版
  • javaME 微型班

java发展历史

版本 年份 语言新特性
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打包

  1. 编译:javac A.java
  2. 打包:jar cvfm A.jar A.man A.class(c:create v:显示详情 f:指定文件名 m 清单文件)
  3. 运行:java -jar A.jar

javadoc生成文档

javadoc -d 目录名 xxx.java

javap

使用javap查看类的信息 javap 类名

javap反汇编:javap -c 类名