Java语言发展史
詹姆斯·高斯林(James Gosling)1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司,1990年,与Patrick,Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。
SUN(Stanford University Network,斯坦福大学网络公司),Java在1990年末由sun公司开发,完全面向对象
Java语言版本
版本号 | 名字 | 中文名 | 时间 |
---|---|---|---|
JDK 1.1.4 | Sparkler | 宝石 | 1997-09-12 |
JDK 1.1.5 | Pumpkin | 南瓜 | 1997-12-13 |
JDK 1.1.6 | Abigail | 阿比盖尔–女子名 | 1998-04-24 |
JDK 1.1.7 | Brutus | 布鲁图–古罗马政治家和将军 | 1998-09-28 |
JDK 1.1.8 | Chelsea | 切尔西–城市名 | 1999-04-08 |
J2SE 1.2 | Playground | 运动场 | 1998-12-04 |
J2SE 1.2.1 | none | 无 | 1999-03-30 |
J2SE 1.2.2 | Cricket | 蟋蟀 | 1999-07-08 |
J2SE 1.3 | Kestrel | 美洲红隼(sǔn) | 2000-05-08 |
J2SE 1.3.1 | Ladybird | 瓢虫 | 2001-05-17 |
J2SE 1.4.0 | Merlin | 灰背隼 | 2002-02-13 |
J2SE 1.4.1 | grasshopper | 蚱蜢 | 2002-09-16 |
J2SE 1.4.2 | Mantis | 螳螂 | 2003-06-26 |
JAVASE 5.0 (1.5.0) | Tiger | 老虎 | |
JAVASE 5.1 (1.5.1) | Dragonfly | 蜻蜓 | |
JAVASE 6.0 (1.6.0) | Mustang | 野马 | |
JAVASE 7.0 (1.7.0) | Dolphin | 海豚 |
Java语言特点
- 简单性
- 解释性
- 面向对象
- 高性能
- 分布式处理
- 多线程
- 健壮性
- 动态
- 结构中立
- 安全性
- 开源
- 跨平台
Java语言跨平台原理
什么是跨平台性1.只需要在运行Java应用程序的操作系统上先安装一个java虚拟机(JVM Java Virtual Machine)即可.
由jvm来负责Java程序在该系统中的运行.
2.Java语言跨平台性:一处编译,到处运行
JRE和JDK
什么是JRE :全名( Java Runtime Enviroment) Java运行时环境. 包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。什么是JDK :全名(java Development kit) java开发工具.JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了.
JDK:JRE+JAVA的开发工具。
为什么JDK中包含一个JRE ?
开发完的程序,需要运行一下看看效果。
JDK、JRE和JVM三者之间关系
JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。
Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
JVM是Java Virtual Machine(Java虚拟机)的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。
JDK 包含JRE,JRE包含JVM。
JVM:将字节码文件转成具体系统平台的机器指令。
JRE:JVM+Java语言的核心类库。
JDK:JRE+Java的开发工具。
我们开发的实际情况是:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
java运行步骤
java程序开发步骤:
1:将java代码编写到扩展名为.java的文件中
2:通过java命令对该java文件进行编译
3:通过java命令对生成的class文件进行运行
java文件的命名规范:
1.源文件的后缀必须是.java.不能使用其他文件后缀名.
2:所有的java文件名首字母必须要大写而且是名词,使用驼峰命名,每一个单词首字母要大写
3.由数字.字母,下划线组成,但是要以字母或者下划线开头
- 1:包
- 最好是域名倒过来,要求所有的字母小写
- 2:类或者接口
- 如果是一个单词首字母大写
- 如果是多个单词每个单词首字母大写(驼峰标识)
- 3:方法或者变量
- 如果是一个单词全部小写
- 如果是多个单词,从第二个单词首字母大写
- 3 :常量
- 如果是一个单词,所有字母大写
- 如果是多个单词,所有的单词大写,用下划线区分每个单词
java源文件里有public类,那么源文件的主文件名必须与public类名一样:
例: public class Mehtod {
}
public(修饰符) class(关键字) Method(类名)
main方法的用途:
main方法是运行java代码的执行入口,所以要运行一个类中的代码,需要先编写main方法.
class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
关键字的概述和使用
- 1:什么是关键字
- 被Java语言赋予特定含义的单词
- 2:关键字的特点
- 组成关键字的字母全部小写
- 3:常见关键字
- public static void class等
- 4:关键字的注意事项
- goto和const作为保留字存在,目前并不使用,类似Editplus这样的高级记事本,针对关键字有特殊的颜色标记,非常直观
标识符的概述和组成规则
- 1:什么是标识符
- 就是给类,接口,方法,变量等起名字时使用的字符序列
- 2:标识符的组成规则
- 英文大小写字母
- 数字字符
- $和_
- 3:标识符注意事项
- 1,不能使用关键字
- 2,不能数字开头
- 行注释: //注释文本
- 快注释: /*注释文本 */
- 文档注释 /** 注释文档 */
类型名称 | 类型定义 | 类型取值 |
---|---|---|
boolean | 布尔值,作二元判断 | true, false |
byte | 8位有符号整数 | 最小值-128,最大值127 |
short | 16位有符号整数 | 最小值-32768,最大值32767 |
int | 32位有符号整数 | 最小值-2147483648(-231),最大值2147483647(231-1) |
long | 64位有符号整数 | -263~(263-1) |
float | 32位浮点数 | 1.4E-45~3.4028235E38 |
double | 64位浮点数 | 4.9E-324~1.7976931348623157E308 |
char | 16位Unicode字符 | 不适用 |
数值型–整数型 | byte,int,long,short |
---|---|
数值型–整数型: | byte,int,long,short |
数值型–浮点型: | float,double |
布尔型: | Boolean |
字符行: | char |
类型 | 占用大小 |
---|---|
byte | 1字节 |
short | 2字节 |
int | 4字节 |
long | 8字节 |
float | 4字节 |
double | 8字节 |
char | 2字节 |
引用类型
而引用类型则是 类、接口和数组变量 。引用类型变量的值和基本类型变量不同,变量值是指向内存空间的 地址(引用) 。这个 地址 在C语言中称为指针或者内存地址。java不支持显式使用内存地址,所以要通过变量(引用类型变量)名对某个内存地址访问。引用类型变量的赋值
User li = new User;
user zhou = li; //将li的内存地址写入zhou的栈内存中。