004
JVM、JDK、JRE的关系
008
009
010
IDEA快捷键 ctrl+D 复制当前行
011
package chapter02;
public class Java01_Variable {
public static void main(String[] args) {
// TODO 变量
// 所谓的变量,其实就是可以改变的向量存储
// 1.变量得声明
// 2.变量得赋值
// 3.变量得使用
String name;//声明
name ="zhangsan";//赋值
System.out.println(name);//引用
String username = "llisi";//声明和赋值放到一起
System.out.println(username);
// 在使用变量之前,必须要给他赋值,这个过程叫做变量初始化
}
}
012
标识符只能采用下划线和美元$符号,其他符号不能使用,称之为特殊符号
数字如果在标识符的开头位置,那么会被识别为数字,而不是标识符,所以会发生错误
package chapter02;
public class Java02_Identifier {
public static void main(String[] args) {
// TODO 标识符
// 表示数据的符号,称之为标识符
// 变量名称就是标识符
// 标识符主要用于起名
// TODO 标识符的命名规则
// 1. 英文拉丁字母
String username = "zhangsan";
String xingming = "lisi";
// 2. 符号
// @ # % ¥
// 标识符只能采用下划线和美元$符号,其他符号不能使用,称之为特殊符号
// 空格属于特殊符号,所以也不能作为标识符使用
String _name = "wangwu";
String $name = "wangwu";
String $na_me = "wangwu";
System.out.println(_name);
System.out.println($name);
System.out.println($na_me);
// 3. 数字
// 阿拉伯数字0-9可以作为标识符使用,但是不能开头
// 数字如果在标识符的开头位置,那么会被识别为数字,而不是标识符,所以会发生错误
// String 1name = "zhangsan";
String name1 = "zhangsan";
// 4. 在大括号范围内,标识符不允许重复
// 标识符是区分大小写的
String Name = "zhaopliu";
// 5. Java语言中预先定义好了一些标识符名称,称之为关键字后保留字
//String static = "zhaoliu";
// 6. 驼峰标识:规范
String userName = "zhangsan";
// 7. 标识符的长度
// 没有长度限制
}
}
013
比特(bit位):数据运算的最小存储单位
字节(Byte):数据的最小存储单位
package chapter02;
public class Java03_Datatype {
public static void main(String[] args) {
String name = "zhangsan";
// TODO 数据的存储单位
// 1. 比特(bit位):数据运算的最小存储单位
// 2. 字节(Byte):数据的最小存储单位
// 字节和比特之间可以相互转换
// 1Byte = 8bit
// KB,MB,GB,TB
// 1024 Byte = 1 KB
// 1024 KB = 1 MB
// 1024 MB = 1 GB
// 1024 GB = 1 TB
// Java的数据类型可以读额定数据的范围
}
}
014
默认情况下,小数点的数据会被识别为精度较高的双精度double类型
float:单精度浮点类型,数据需要使用F或f结尾
package chapter02;
public class Java03_Datatype_1 {
public static void main(String[] args) {
// TODO 基本数据类型
// TODO 1. 整数类型
// byte : 8位
byte b = 10;
// short : 16位
short s = 10;
// int : 32位
int i = 10;
// long :64位
long lon = 10;
// TODO 2. 浮点类型:含有小数点的数据类型
// 根据计算精度分为
// 默认情况下,小数点的数据会被识别为精度较高的双精度double类型
// float:单精度浮点类型,数据需要使用F或f结尾
float f = 1.0f;
// double:双精度浮点类型
double d = 2.0;
// TODO 3. 字符类型
// 所谓的字符类型,其实就是用符号表示文字内容
char c = '@';
// TODO 4. 布尔类型
// true,false
boolean bln = true;
}
}
015
package chapter02;
public class Java03_Datatype_2 {
public static void main(String[] args) {
// TODO 数据类型的转换
String name = "zhangsan";
int age = 30;
name = "lisi";
//name = age;
// byte -> short -> int -> long -> float -> double
byte b =10;
short s = b;
int i = s;
long lon = i;
float f = lon;
double d = f;
// Java中范围小的数据可以直接转换为范围大的数据,但是范围大的数据无法直接转换为数值小的数据
// 如果想要将范围大的数据装换为范围小的数据,那么需要使用小括号进行强制类型转换
int i1 = (int)d;
}
}
016
int i = 10;//这种不是引用数据类型
package chapter02;
public class Java03_Datatype_3 {
public static void main(String[] args) {
// TODO 引用数据类型
// 所谓的应用数据类型,其实就是可以被引用的数据类型
String s = "abc";
int i = 10;//这种不是引用数据类型
}
}
017
package chapter02;
public class Java04_Operator {
public static void main(String[] args) {
// TODO 运算符
// 所谓的运算符就是参与运算的符号,java定义的,无法自定义
// TODO 表达式
// 表达式就是采用运算符和数据连接在一起形成符合Java语法规则的指令代码,称之为表达式
}
}
018
算术表达式 = 元素1 二元运算符 元素2 。 这个表达式是有结果的,就需要有类型,这里的类型是元素中类型最大的哪一种,最小使用的类型是int
byte b3 = b1 + b2; //最小使用的类型是int 所以这里的b1 b2 都是int类型,最终答案也是int类型,不能赋值给byte
package chapter02;
public class Java04_Operator {
public static void main(String[] args) {
// TODO 运算符
// 所谓的运算符就是参与运算的符号,java定义的,无法自定义
// TODO 表达式
// 表达式就是采用运算符和数据连接在一起形成符合Java语法规则的指令代码,称之为表达式
// TODO 算术运算符
// 1. 二元运算符:两个元素参与运算的运算符,1 + 2
// TODO 算术表达式 = 元素1 二元运算符 元素2
// 这个表达式是有结果的,就需要有类型,这里的类型是元素中类型最大的哪一种,最小使用的类型是int
System.out.println(1 + 2); // 3
System.out.println(2 - 2); // 0
System.out.println(3 * 2); // 6
System.out.println(4 / 2); // 2
System.out.println(1 / 2); // 0.5变成int类型,结果是0 (int,int)结果也是 int
System.out.println(1.0 / 2); // 0.5 (double,int)结果是 double(去类型大的那一种)
System.out.println(5 % 2); // 1 取余,模运算
byte b1 = 10;
byte b2 = 20;
//byte b3 = b1 + b2; //最小使用的类型是int 所以这里的b1 b2 都是int类型,最终答案也是int类型,不能赋值给byte
byte b3 = (byte)(b1 + b2);
System.out.println( 1 + 2 * 3); // 7
System.out.println( (1 + 2) * 3); // 9
// 2. 一元运算符:一个元素参与的运算符
}
}
019
package chapter02;
public class Java04_Operator {
public static void main(String[] args) {
// 2. 一元运算符:一个元素参与的运算符
// ++,--
// ++ 运算符的本质其实就是加1,自增运算符
int i = 0;
int j = i++; // j = 0 、 i = 1
System.out.println("i = " + i);
System.out.println("j = " + j);
int i1 = 0;
int j1 = ++i1; // j = 0 、 i = 1
System.out.println("i1 = " + i1);
System.out.println("j1 = " + j1);
}
}
020
如果使用了符合赋值运算符,那么数据的类型不会发生改变
byte b1 = 10;
b1 = b1 + 20; //因为二元运算符最小是int,所以此处的b1是int类型,int + int 最终结果也是 int,但是赋值给byte类型,这是错误的
b1 += 20;//这样写是对的,因为使用复合赋值运算符,数据的类型不会发生改变
package chapter02;
public class Java04_Operator_1 {
public static void main(String[] args) {
// TODO 运算符 - 赋值运算符
// 等号其实就是赋值运算符:将等号右边表达式的结果赋值给等号左边的变量
// 赋值运算符需要考虑类型的关系
String name = "zhangsan";
byte b = 10;
short s = b;
// TODO 复合赋值运算符:+=
// 如果元素进行运算后重新赋值给自己,那么可以将运算和赋值的符号进行简化
// 如果使用了符合赋值运算符,那么数据的类型不会发生改变
int i = 1;
i = i + 1;
i += 1;
System.out.println(i);
byte b1 = 10;
//b1 = b1 + 20; //因为二元运算符最小是int,所以此处的b1是int类型,int + int 最终结果也是 int,但是赋值给byte类型,这是错误的
b1 += 20;//这样写是对的,因为使用复合赋值运算符,数据的类型不会发生改变
System.out.println(b1);
}
}