1_Java语言发展史(了解)
目标:了解Java语言发展史
java是哪家公司哪一年推出的?
sun公司在1995推出的编程语言
java之父是谁?
詹姆斯.高斯林
java的主要发展历程?
1995由sun公司推出。
2004推出JDK1.5,这是里程碑式的版本。
2009年sun公司被oracle(甲骨文公司)收购。
目前最新版本JDK12。
java的三大技术架构(了解)
JavaSE:java标准版,主要用于桌面应用软件的开发。比如计算器,QQ软件等。
JavaEE:java企业版,基于JavaSE的企业级应用的开发。比如淘宝,京东,ERP系统等。(大型互联网)
JavaME:java微型版,应用于移动设备和电子类产品的嵌入式开发。比如手机游戏,手机软件等。(安卓,IOS,Html,微信小程序)
2_Java语言跨平台原理
目标:理解java语言的跨平台特性和原理
java语言的特点
java语言具有简单易学、面向对象、健壮性、安全性、与平台无关性等特点。
什么是平台?
平台即操作系统,目前主流的有微软Windows系统,苹果Mac系统,Linux系统
qq.exe
什么是java跨平台?
通过java语言编写的应用程序可以在不同的操作系统上直接运行。具有一次编译,到处运行的特点。
java如何实现跨平台?
通过JVM虚拟机实现的跨平台。
在不同的操作系统上安装对应的JVM虚拟机。
[外链图片转存失败(img-gwfNctzT-1562913922040)(assets/1559034236533.png)]
3_JVM、JRE、JDK
目标:理解JVM、JRE、JDK三者之间的关系
JVM、JRK、JDK三者之间的关系?
JVM:Java虚拟机,保证java程序跨平台。(Java Virtual Machine)
JRE: Java运行环境,包含JVM和核心类库。如果只是想运行java程序,只要安装JRE即可。
(Java Runtime Environment)
JDK:Java开发工具包,包含JRE和开发工具。如果程序员想要开发java程序,需要安装JDK环境。
(Java Development Kit)
开发工具包括:编译工具javac.exe ,运行工具java.exe 等。
JVM、JRE、JDK关系图解:
[外链图片转存失败(img-A9IUaACU-1562913922047)(assets/1559034654031.png)]
JDK是开发工具,包含JRE和开发工具,JRE是运行程序的工具,包含JVM和核心类库,JVM是保证java程序跨平台的工具。
4_JDK的下载和安装
目标:能独立安装JDK
下载官网:www.oracle.com
傻瓜式安装(不推荐)
跟着点击下一步即可,但默认的安装路径是在C:\Program Files下,不便于软件的管理。
指定路径安装(推荐)
将JDK安装到指定目录下,比如E:\develop\java\jdk-11
注意:安装目录下不要有中文或空格等特殊字符。
安装目录文件介绍
目录名称 | 说明 |
---|---|
bin | 该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。 |
conf | 该路径下存放了JDK的相关配置文件。 |
include | 该路径下存放了一些平台特定的头文件。 |
jmods | 该路径下存放了JDK的各种模块。 |
legal | 该路径下存放了JDK各模块的授权文档。 |
lib | 该路径下存放了JDK工具的一些补充JAR包。jar包:写好并打包的java程序。 |
5_常用DOS命令(了解)
目标:了解常用的DOS命令
如何进入DOS命令行窗口
快捷键win + R打开运行窗口,输入cmd,按回车进入。
[外链图片转存失败(img-nOtz9u9k-1562913922049)(assets/1561454946337.png)]
常用DOS命令
操作 | 说明 |
---|---|
盘符名称: | 盘符切换。E:回车,表示切换到E盘。 |
dir | 查看当前路径下的内容。 |
cd 目录 | 进入单级目录。cd develop,表示进入develop文件夹。 |
cd … | 回退到上一级目录。 |
cd 目录1\目录2… | 进入多级目录。cd develop\java,表示进入develop下的java文件夹。 |
cd \ | 回退到盘符根目录。 |
cls | 清屏。 |
exit | 退出命令提示符窗口。 |
6_Path环境变量的配置
目标:完成JDK环境变量的配置,理解配置环境变量的意义
配置JDK的path环境变量的意义?
可以在任意路径下使用JDK的bin目录下提供的开发工具。
配置步骤?
1、此电脑—>属性—>高级系统设置—>高级—>环境变量
[外链图片转存失败(img-BmzdTvde-1562913922052)(assets/1559995877083.png)]
2、新建系统变量
变量名:JAVA_HOME
变量值:JDK的安装目录(到bin目录的上一层)
[外链图片转存失败(img-ZDffcEN9-1562913922056)(assets/1559996259183.png)]
3、将 %JAVA_HOME%\bin 添加到Path变量中。 %环境变量名% 引用某指定的环境变量
[外链图片转存失败(img-UATKFU8Y-1562913922058)(assets/1559997880428.png)]
4、打开DOS系统,输入javac,验证是否配置成功。
[外链图片转存失败(img-1EAPxmV3-1562913922064)(assets/1559998052944.png)]
7_HelloWorld案例
目标:独立编写并运行HelloWorld案例
Java程序开发运行流程?
编写代码:编写.java后缀的源文件
编译代码:将.java文件编译成.class后缀的字节码文件
运行程序:使用 java工具运行编译好的字节码文件
java程序编译和运行的命名是什么?
编译命令 :javac 源文件名.java
运行程序: java 类名
[外链图片转存失败(img-4wnvZZHh-1562913922068)(assets/1559998845417.png)]
HelloWorld代码
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
8_HelloWorld案例常见问题
目标:了解HelloWorld案例的常见问题
1)、中文符号问题。(java中的符号都是英文的)
2)、单词大小写问题。(java是区分大小写的)
3)、文件扩展名问题。(java源文件扩展名为.java)
4)、程序主方法main书写问题。(main为程序的主入口,单词不能写错)
5)、文件名和类名不一致问题。(public限制java文件名和类名要一致)
上午回顾
java语言发展史
1995年sun公司推出的。
java之父:詹姆斯.高斯林
2004年,JDK1.5,里程碑式的版本
2009年sun被oracle收购
最新官网版本JDK12
java语言跨平台原理
依靠JVM虚拟机实现跨平台,需要在各自的操作系统上安装对应的虚拟机版本。
什么是JVM、JRE、JDK,以及之间的关系
JVM:java虚拟机,保证java程序跨平台运行。
JRE:java运行环境,包含了JVM+核心类库,运行java程序,安装JRE即可。
JDK:java开发工具,包含JRE+开发工具(安装目录下的bin目录),开发人员需要安装JDK。
常用DOS命令
切换盘符 盘符: D:
进入文件夹 cd 文件目录
进入多级文件夹 cd \目录1\目录2
回退一级 cd ..
回退多级 cd ..\..
回退根目录 cd \
清除屏幕 cls
查看目录 dir
退出窗口 exit
java程序执行步骤
编写代码 NotePad++ idea Eclipse
编译代码 javac 源文件名.java
运行代码 java 类名
HelloWorld案例
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World");
}
}
9_Notepad的安装和使用
NotePad++基本设置
设置 --> 首选项 --> 新建,格式选择Windows,编码选择ANSI。
[外链图片转存失败(img-darSrFo6-1562913922072)(assets/1561449954918.png)]
10_注释
注释的作用?
对代码进行解释说明,便于开发人员理解和维护代码。
注释不会被程序编译和运行。
注释的分类?
单行注释 // 注释内容,单行注释可以嵌套。
多行注释 /* 注释内容 */,多行注释不能嵌套使用。
文档注释 /** 注释内容 */,文档注释不能嵌套使用。
11_关键字(理解)
什么是关键字?
在java语言中有特殊意义的英文单词。
java关键字的特点?
单词全部小写。
在高级开发工具中,关键字会有特殊的颜色标记。
java中的关键字
goto和const是java中的预留关键字。
[外链图片转存失败(img-N6UoDR01-1562913922077)(assets/1559038173703.png)]
12_常量
什么是常量?
在程序运行过程中,其值不可以发生改变的量。
常量的分类
字符串常量:使用双引号 "" 括起来的0到多个字符。 "java" ,"黑马程序员" , "" , " " , "A"
字符常量:使用单引号 '' 括起来的单个字符。 'a' , '0' ,'我'
整数常量:正负整数 10 -20
小数常量:带小数点的数字 -3.14 5.12
布尔常量:表示真或假,只有true或false两个值。
空常量:值为null,不能使用输出语句直接输出。
案例代码
public class ChangLiang{
public static void main(String[] args){
// 字符串常量:使用双引号 "" 括起来的【0到多个字符】。
System.out.println("java");
System.out.println("黑马");
System.out.println("");
System.out.println(" ");
System.out.println("A");
System.out.println("-------------");
System.out.println("10");
// 字符常量:使用单引号 '' 括起来的【单个字符】。
System.out.println('A');
System.out.println('黑');
//System.out.println(''); //编译错误,字符常量必须是单个字符,不能没有
System.out.println(' ');
//System.out.println(' '); //编译错误,字符常量必须是单个字符,不能多个
//System.out.println('10');
System.out.println("-------------");
// 整数常量:正负整数
System.out.println(10);
System.out.println(-10);
// 小数常量:带小数点的数字
System.out.println(-10.90);
System.out.println(5.12);
// 布尔常量:表示真或假,只有true或false两个值。
System.out.println(true);
System.out.println(false);
System.out.println(10>20);
// 空常量:值为null,不能使用输出语句直接输出。学习数组的时候会讲解
//System.out.println(null); //编译错误,不能使用输出语句直接输出空常量
}
}
/*
需求:使用常量在屏幕上输出一个学生的信息,包含姓名、性别、年龄、身高、地址。
*/
public class ConstantTest{
public static void main(String[] args){
System.out.println("林志玲"); // 字符串常量
System.out.println('女'); //字符常量
System.out.println(35); //整数常量
System.out.println(175.5); //小数常量
System.out.println("香港");// 字符串常量
}
}
13_数据类型
java是强类型的语言,每一个数据都有对应的数据类型。
位:计算机计算的基本单位,计算机底层是二进制 0 1
字节:计算机存储的基本单位,1字节=8位。
java数据类型分类?
基本数据类型:4型8种
整数:byte short int long
小数:float double
字符:char
布尔:boolean
整数默认是:int类型
小数默认是:double类型
引用数据类型:字符串,数组,类,接口 ,null
基本数据类型分类
[外链图片转存失败(img-Lq9CuiKs-1562913922080)(assets/1561450750068.png)]
【练习题】下面哪些是Java中的基本数据类型?( ADE )
A.byte
B.Byte
C.String //字符串 类 引用类型
D.char
E.long
14_变量
什么是变量?
变量指程序运行过程中,其值在一定范围内会发生变化的量。
变量的定义格式?
数据类型 变量名 = 初始化值;
int a = 10;
byte b = 127;
变量使用的注意事项?
1、变量可以定义时初始化,也可以先定义,使用前进行初始化。
double d = 3.14;
double d;
d = 3.14;
2、没有初始化的变量不能直接使用。
int a ;
System.out.println(a); //编译报错,
3、相同范围内,变量名不能重复。
4、整数默认是int类型,定义long类型时需要加L 或者l,建议加L。
long num = 10L;
5、小数默认是double类型,定义float类型的时候需要在数字后面加F或者f,建议加F。
float f = 3.14F;
6、一行代码上可以定义多个变量。(不推荐)
int a=10,b=20;
int a,b =20;
a=10;
/*
需求:使用变量定义并输出一个学生的信息,包含姓名、性别、年龄、身高、地址。
*/
public class VariableTest{
public static void main(String[] args){
String name = "林志玲";
}
}
15_标识符
标识符的作用?
给包,==类,==方法,变量起名的符号。
标识符的组成规则?
大小写英文字母、数字、下划线_、美元符$、中文(不推荐)
注意事项:
不能是数字开头
不能是关键字
区分大小写
标识符的命名规范?
小驼峰式命名:变量名、方法名
第一个单词首字母小写,从第二个单词开始每个单词的首字母大写。
userName,maxValue等
大驼峰式命名:类名
每个单词的首字母都大写。
String, ArrayList等
建议:标识符的起名尽量做到见名知意。
【练习题】下列不可作为java语言变量名的是( DEF )
A、a1
B、$1
C、_1
D、5a
E、num@
F、class
G、String //可以作为变量名,不建议
16_类型转换
隐式类型转换(自动类型转换)
- 从范围小的类型到范围大类型的转换,系统会自动进行类型提升,称为自动类型转换。
byte、short、char —> int —> long —> float —> double
//自动类型转换案例代码
public class ChangeDemo{
public static void main(String[] args){
double d = 10; //10默认是int类型,转为较大范围的double类型,属于自动类型转换。
//int a = 88.8; //编译报错,88.8默认是double,8个字节,int占4个字节
int a = (int)88.8;
System.out.println(a); //88 ,精度丢失
byte b = 15;
short s = b; //byte转short类型,属于自动类型提升。
int a = s; //short类型转int类型,属于自动类型提升。
long num1 = 19L; //8个字节
float f = num1; //4个字节
byte bb = 10;
// char c = bb; //类型不兼容
}
}
强制类型转换
从范围大的类型到范围小的类型的转换,需要进行强制类型转换。
-
格式:
目标数据类型 变量名 = (目标数据类型)变量值(常量值);
-
弊端:
会造成数据精度丢失。尽量少用强制转换。
【多选题】以下关于数据类型的转换,说法正确的是( AC )
A:long num = 100L;
float f = num;
System.out.println(f);
以上代码能正常编译运行,并输出100.0
B:int类型的数据转为double类型,需要强制转换。//不需要强转,整数转小数,自动转换
C:int类型转成short砍掉2个字节,可能造成数据丢失。 //
D:byte b = 130; //只能输出-128 127,编译报错
System.out.println(b);
以上代码能正常编译运行,并输出130
下午回顾
注释的分类
单行注释 //单行注释
多行注释 /*多行注释 */
文档注释 /**文档注释 */
java关键字的特点
单词全部小写。
在高级开发工具中,关键字会有特殊的颜色标记。
public class void true false
byte short int long float double char boolean
常量的分类:
字符串常量:表示0到多个字符,使用""引起来
字符常量:只能表示单个字符,使用''引起来
整数常量
小数常量
布尔常量 true,false
空常量 null ,不能使用System.out.println()输出
java中的数据类型
基本类型:
整型:
byte short int long
浮点型(小数)
float double
字符:
char
布尔类型:
boolean
引用类型:
String 数组 类
变量的定义格式
数据类型 变量名 = 初始化值;
注意事项:
先定义,再使用
没有赋值的变量不能直接使用
相同范围内,变量名不能重复
一行代码可以定义多个变量(不建议)
标识符的组成规范
大小写字母,数字,下划线 美元符,中文(不建议)
不能数字开头
不能是关键字
区分大小写
命名规范:小驼峰命名法 maxValue name
大驼峰命名法 ConstantDemo String
java中的类型转换
自动类型转换 :小类型转大类型
byte short int long float double
char
强制类型转换
格式:目标数据类型 变量名 = (目标数据类型)变量值或常量值;
int a = (int)88.8;
强转会造成数据精度丢失。
引起来
整数常量
小数常量
布尔常量 true,false
空常量 null ,不能使用System.out.println()输出
java中的数据类型
基本类型:
整型:
byte short int long
浮点型(小数)
float double
字符:
char
布尔类型:
boolean
引用类型:
String 数组 类
变量的定义格式
数据类型 变量名 = 初始化值;
注意事项:
先定义,再使用
没有赋值的变量不能直接使用
相同范围内,变量名不能重复
一行代码可以定义多个变量(不建议)
标识符的组成规范
大小写字母,数字,下划线 美元符,中文(不建议)
不能数字开头
不能是关键字
区分大小写
命名规范:小驼峰命名法 maxValue name
大驼峰命名法 ConstantDemo String
java中的类型转换
自动类型转换 :小类型转大类型
byte short int long float double
char
强制类型转换
格式:目标数据类型 变量名 = (目标数据类型)变量值或常量值;
int a = (int)88.8;
强转会造成数据精度丢失。