一、Java概述
1.1Java语言平台

图1-1 java语言平台
注:开发者都是安装javaSE平台的软件。
1.2.跨平台性
平台:指的是操作系统(Windows,Linux,Mac)
跨平台:Java程序可以在任意操作系统上运行,一次编写到处运行
原理:实现跨平台需要依赖Java的虚拟机 JVM (Java Virtual Machine)

图1-2 跨平台版本
1.3 JVM JRE JDK说明
-A:什么是JVM
JVM是java虚拟机(JVM Java Virtual Machine),java程序需要运行在虚拟机上,不同平台有自己的虚拟机,因此java语言可以跨平台
-B:什么是JRE
包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
JRE:JVM+类库。
-C:什么是JDK
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。
其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等
JDK:JRE+JAVA的开发工具。
-D:为什么JDK中包含一个JRE
为什么JDK中包含一个JRE呢?
开发完的程序,需要运行一下看看效果。
-E:JDK,JRE,JVM的作用和关系
JDK包含JRE 和开发工具包
JRE 包含 核心类库和JVM
二、常用的dos命令
2.1.1 打开控制台
– win + R,然后cmd回车
2.1.2 常用命令
– d: 回车 盘符切换
– dir(directory):列出当前目录下的文件以及文件夹
– cd (change directory)改变指定目录(进入指定目录)
- 进入 cd 目录;cd 多级目录
- eg:进入多个子目录下:cd A\b 进入到b目录下;
- 回退 cd.. (回退上一级目录) ;cd(直接回退到根目录下)
– cls : (clear screen)清屏
– exit : 退出dos命令行
三、java语法
3.1、关键字
3.1.1关键字的概述
– 被Java语言赋予特定含义的单词
3.1.2.关键字特点
– 组成关键字的字母全部小写
– 常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观,所以我们不需要去死记硬背,在今后的学习中重要的关键字也会不断的出来。
3.1.3.关键字举例


3.2 常量
3.2.1.常量的概述
– 在程序执行的过程中,其值不可以发生改变的量
3.2.2 常量的特点
– 字符串常量 用双引号括起来的内容(“HelloWorld”)
– 整数常量 所有整数(12,-23)
– 小数常量 所有小数(12.34)
– 字符常量 用单引号括起来的内容(‘a’,’A’,’0’)
– 布尔常量 较为特有,只有true和false
– 空常量 null(数组中常用)
3.2.3 常量的程序
1 /* 2 常量:在程序执行的过程中,其值不可以发生改变的量 3 4 常量分类: 5 A:字符串常量 "HelloWorld" 6 B:整数常量 12,-23 7 C:小数常量 12.34 8 D:字符常量 'a','0' 9 E:布尔常量 true,false 10 F:空常量 null(后面讲解) 11 */ 12 public class ChangLiang { 13 public static void main(String[] args) { 14 //字符串常量 15 System.out.println("HelloWorld"); 16 17 //整数常量 18 System.out.println(12); 19 System.out.println(-23); 20 21 //小数常量 22 System.out.println(12.34); 23 24 //字符常量 25 System.out.println('a'); 26 System.out.println('0'); 27 28 //布尔常量 29 System.out.println(true); 30 System.out.println(false); 31 } 32 }
执行程序的结果如图3-1

图3-1 执行常量程序结果
3.3 变量
3.3.1 变量概述
– 在程序执行的过程中,在某个范围内其值可以发生改变的量
– 从本质上讲,变量其实是内存中的一小块区域
3.3.2 变量定义格式
– 数据类型 变量名 = 初始化值;
– 注意:格式是固定的,记住格式,以不变应万变
3.3.3 变量图解

3.4数据类型


3.5 标识符
/*
标识符:就是给包,类,方法,变量起名字的符号。
组成规则:
A:unicode字符
数字字符,英文大小写,汉字(不建议使用汉字)
B:下划线_
C:美元符$
注意事项
A:不能以数字开头
B:不能是java中的关键字
常见命名规则:
A:基本要求
见名知意
B:常见的命名
a:包(其实就是文件夹,用于对类进行管理)
全部小写,多级包用.隔开
举例:com,com.itheima
b:类
一个单词首字母大写
举例:Student,Car
多个单词每个单词的首字母大写
举例:HelloWorld
c:方法和变量
一个单词首字母小写
举例:age,show()
多个单词从第二个单词开始每个单词的首字母大写
举例:maxAge,getAge()
*/
public class BiaoZhiFu {
public static void main(String[] args) {
//定义变量
//数据类型 变量名 = 初始化值;
int a = 10;
//正确
int b2 = 20;
//错误
//int 2b = 30;
//不能是java中的关键字
//错误
//int public = 40;
}
}
3.6 定义变量
public class VariableDemo {
public static void main(String[] args) {
//定义byte类型的变量
byte b = 10;
System.out.println(10);
System.out.println(b);
//定义short类型的变量
short s = 100;
System.out.println(s);
//定义int类型的变量
int i = 10000;
System.out.println(i);
//定义long类型的变量
long l = 1000000000000000L;
System.out.println(l);
//定义float类型的变量
float f = 12.34F;
System.out.println(f);
//定义double类型的变量
double d = 12.34;
System.out.println(d);
//定义char类型的变量
char c = 'a';
System.out.println(c);
//定义boolean类型的变量
boolean bb = false;
System.out.println(bb);
}
}
定义变量需要注意的事项:
/*
变量定义注意事项:
1:变量未赋值,不能直接使用
2:变量只在它所属的范围内有效
变量属于它所在的那对大括号
3:一行上可以定义多个变量,但是不建议
*/
public class VariableDemo2 {
public static void main(String[] args) {
//定义变量
int a = 10;
System.out.println(a);
int b;
b = 20; //变量在使用前赋值都是可以的
System.out.println(b);
{
int c = 100;
System.out.println(c);
}
//System.out.println(c);
/*
int aa,bb,cc;
aa = 10;
bb = 20;
cc = 30;
*/
/*
int aa = 10;
int bb = 20;
int cc = 30;
*/
int aa=10,bb=20,cc=30;
}
}
3.7数据转换
3.7.1 隐式数据类型转换
取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
/*
+:是一个运算符,做加法运算的。
我们在做运算的时候,一般要求参与运算的数据类型必须一致。
类型转换:
隐式转换
强制转换
隐式转换
byte,short,char -- int -- long -- float -- double
*/
public class TypeCastDemo {
public static void main(String[] args) {
//直接输出了运算的结果
System.out.println(3 + 4);
//定义两个int类型的变量
int a = 3;
int b = 4;
int c = a + b;
System.out.println(c);
//定义一个byte类型,定义一个int类型
byte bb = 2;
int cc = 5;
System.out.println(bb + cc);
//我能不能不直接输出,用一个变量接受呢?
//用变量接受,这个变量应该有类型
//可能损失精度
//byte dd = bb + cc;
int dd = bb + cc;
System.out.println(dd);
}
}
3.7.2强制类型数据转换
强制转换的格式
* b = (byte)(a + b);
强制转换的注意事项
* 如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同
/*
强制转换:
目标类型 变量名 = (目标类型) (被转换的数据);
不建议强制转换,因为会有精度的损失。
*/
public class TypeCastDemo2 {
public static void main(String[] args) {
int a = 3;
byte b = 4;
int c = a + b;
//byte d = a + b;
byte d = (byte) (a + b);
}
}