1.1 java语言基础
1、java历史
Java语言发展史
詹姆斯·高斯林(James Gosling)1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司,1990年,与Patrick,Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。
SUN(Stanford University Network,斯坦福大学网络公司)
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语言平台
-
J2SE(Java 2 Platform Standard Edition)标准版
-
是为开发普通桌面和商务应用程序提供的解决方案,该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发
-
J2ME(Java 2 Platform Micro Edition)小型版
-
是为开发电子消费产品和嵌入式设备提供的解决方案
-
J2EE(Java 2 Platform Enterprise Edition)企业版
-
是为开发企业环境下的应用程序提供的一套解决方案,该技术体系中包含的技术如 Servlet、Jsp等,主要针对于Web应用程序开发
Java语言特点
-
简单性
-
解释性
-
面向对象
-
高性能
-
分布式处理
-
多线程
-
健壮性
-
动态
-
结构中立
-
安全性
-
开源
-
跨平台
Java语言跨平台原理
-
A:什么是跨平台性
-
B:Java语言跨平台原理
-
只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。
-
C:Java语言跨平台
-
write once ,run anywhere!(一处编译,到处运行)
JRE和JDK
-
A:什么是JRE
-
包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
-
JRE:JVM+类库。
-
B:什么是JDK
-
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。
-
其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等
-
JDK:JRE+JAVA的开发工具。
-
C:为什么JDK中包含一个JRE
-
为什么JDK中包含一个JRE呢?
-
开发完的程序,需要运行一下看看效果。
-
D:JDK,JRE,JVM的作用和关系
Java开发工具介绍
-
A:notepad(微软操作系统自带)
-
B:Editplus/Notepad++/sublime text(都是文本编辑工具)
-
C:Eclipse(eclipse的一些快捷键和设置可以看些我的博客里面的看下就行)
-
D:MyEclipse
java运行步骤
JVM
Java 虚拟机(JVM)是运⾏ Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),⽬的是使⽤相同的字节码,它们都会给出相同的结果。
什么是字节码?采⽤字节码的好处是什么?
在 Java 中,JVM 可以理解的代码就叫做(即扩展名为 .class 的⽂件),它不⾯ 向任何特定的处理器,只⾯向虚拟机。Java 语⾔通过字节码的⽅式,在⼀定程度上解决了 传统解释型语⾔执⾏效率低的问题,同时⼜保留了解释型语⾔可移植的特点。所以 Java 程 序运⾏时⽐较⾼效,⽽且,由于字节码并不针对⼀种特定的机器,因此,Java 程序⽆须重 新编译便可在多种不同操作系统的计算机上运⾏。
Java 程序从源代码到运⾏⼀般有下⾯ 3 步:

我们需要格外注意的是
.class->机器码这⼀步。在这⼀步 JVM 类加载器⾸先加载字节码⽂件, 然后通过解释器逐⾏解释执⾏,这种⽅式的执⾏速度会相对⽐较慢。⽽且,有些⽅法和代码块是 经常需要被调⽤的(也就是所谓的热点代码),所以后⾯引进了 JIT 编译器,⽽ JIT 属于运⾏时编 译。当 JIT 编译器完成第⼀次编译后,其会将字节码对应的机器码保存下来,下次可以直接使 ⽤。⽽我们知道,机器码的运⾏效率肯定是⾼于 Java 解释器的。这也解释了我们为什么经常会 说 Java 是编译与解释共存的语⾔。
HotSpot 采⽤了惰性评估(Lazy Evaluation)的做法,根据⼆⼋定律,消耗⼤部分系统资源的 只有那⼀⼩部分的代码(热点代码),⽽这也就是 JIT 所需要编译的部分。JVM 会根据代 码每次被执⾏的情况收集信息并相应地做出⼀些优化,因此执⾏的次数越多,它的速度就越 快。JDK 9 引⼊了⼀种新的编译模式 AOT(Ahead of Time Compilation),它是直接将字节码 编译成机器码,这样就避免了 JIT 预热等各⽅⾯的开销。JDK ⽀持分层编译和 AOT 协作使 ⽤。但是 ,AOT 编译器的编译质量是肯定⽐不上 JIT 编译器的。
总结: Java 虚拟机(JVM)是运⾏ Java 字节码的虚拟机。JVM 有针对不同系统的特定实现 (Windows,Linux,macOS),⽬的是使⽤相同的字节码,它们都会给出相同的结果。字节码 和不同系统的 JVM 实现是 Java 语⾔“⼀次编译,随处可以运⾏”的关键所在。
运行步骤图

HelloWorld案例的编写和运行)(掌握)
-
A:定义类
-
B:写main方法
-
C:写输出语句
-
D:Java程序开发运行与工作原理
-
E:编译和运行程序
class HelloWorld {public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
HelloWorld案例常见问题
-
A:找不到文件
-
a:文件扩展名隐藏导致编译失败
-
b:文件名写错了
-
B:单词拼写问题
-
a:class写成Class
-
b:String写成string
-
c:System写成system
-
d:main写成mian
-
C:括号匹配问题
-
a:把类体的那对大括号弄掉一个
-
b:把方法体的那对大括号弄掉一个
-
c:把输出语句的那对小括号弄掉一个
-
D:中英文问题
-
a:提示信息:错误: 非法字符: ????的格式
-
注意:java编程中需要的基本上都是英文字符
Java语言的格式(约定俗成)
书写格式:
-
1,大括号要对齐,并且成对写
-
2,左大括号前面有空格
-
3,遇到左大括号要缩进,Tab
-
4,方法和程序块之间加空行让程序看起来清晰
-
5,并排语句之间加空格,例如for语句
-
6,运算符两侧加空格
关键字的概述和使用
-
1:什么是关键字
-
被Java语言赋予特定含义的单词
-
2:关键字的特点
-
组成关键字的字母全部小写
-
3:常见关键字
-
public static void class等
-
4:关键字的注意事项
-
goto和const作为保留字存在,目前并不使用,类似Editplus这样的高级记事本,针对关键字有特殊的颜色标记,非常直观
标识符的概述和组成规则
-
1:什么是标识符
-
就是给类,接口,方法,变量等起名字时使用的字符序列
-
2:标识符的组成规则
-
英文大小写字母
-
数字字符
-
$和_
-
3:标识符注意事项
-
1,不能使用关键字
-
2,不能数字开头
命名方式:
-
1:包
-
最好是域名倒过来,要求所有的字母小写
-
2:类或者接口
-
如果是一个单词首字母大写
-
如果是多个单词每个单词首字母大写(驼峰标识)
-
3:方法或者变量
-
如果是一个单词全部小写
-
如果是多个单词,从第二个单词首字母大写
-
3 :常量
-
如果是一个单词,所有字母大写
-
如果是多个单词,所有的单词大写,用下划线区分每个单词
注释概述及其分类
注释
-
普通文本注释
-
行注释: //注释文本
-
快注释: / 注释文本 /
-
文档注释 /** 注释文档 */
-
可通过eclipse生成说明文档

浙公网安备 33010602011771号