public class ConstantDemo { public static void main(String[] args) { // 字符串常量 System.out.println("今天是一个好天气"); System.out.println("abcd"); System.out.println("1234"); System.out.println("");//不是null 字符串两个双引号中间内容为空 // 整数常量 System.out.println(22); System.out.println(18); System.out.println(500); System.out.println(1000); System.out.println(-1000); // 浮点数常量 System.out.println(1000.0); System.out.println(3.14); System.out.println(1.75); System.out.println(-3.14); // 字符常量 System.out.println('张'); System.out.println('三'); System.out.println('男'); System.out.println('A'); // 布尔常量 System.out.println(true); System.out.println(false); // 空常量 System.out.println("null"); System.out.println(null); } }
练习数据类型之间的转换
自动类型转换
1.特点:不需要通过代码进行处理,程序内部转换自动完成。
2.规则:从数据范围小的转换为数据范围大的。
public class DataTypeDemo01 { public static void main(String[] args) { // 拿int类型的变量和byte类型的变量做运算 加法 byte num01 = 12;//----》 int int num02 = 14; int num3 = num01 + num02;//int 26虽然没有超出byte的取值范围,但是26在内存中此时的数据类型为int类型。 // 拿int类型和double类型的变量做运算 int num04 = 124; double num05 = 123.5; // 做相加运算 double num06 = num04+num05; } }
练习强制类型转换
1.特点:需要对代码进行特殊处理,程序不会自动完成。
强制类型转换的注意事项:
public class DataTypeDemo02 { public static void main(String[] args) { // 拿一个浮点数的值赋值给一个int类型的变量 int a = (int)3.14; System.out.println(a); // 拿一个long类型的数据赋值给int类型的变量 int b = (int)123L; System.out.println(b); // 拿一个超过int类型的数据赋值给int类型的变量 int c = (int)123456789123L; System.out.println(c); // 定义两个byte类型的变量 byte num01 = 10; byte num02 = 20; // 如果等号右边是两个常量在相加,程序内部会优化为一个常量再赋值。 byte num03 = 10 + 20;// 相加运算 byte num04 = 10 + num01 + 20;// 相加运算 // byte num03 = 30; System.out.println(num04); } }
练习ASCII编码表
public class DataTypeDemo03 { public static void main(String[] args) { char a = 'a';// 字符a---》97 System.out.println(a); int num1 = 1; int num2 = a + num1; System.out.println(num2);// 98 char ch = '一'; int num3 = ch;// 自动类型转换 System.out.println(num3);// 24352 36213 29579 19968 char z = 'z'; int result = z + 10; System.out.println(result);// 132 } }
算术运算符
运算符:在程序中能够进行特定操作的符号。例如:* %
表达式:使用运算符连接起来的式子叫做表达式,例如: 3+5 5%3
除法运算:
/ 求商数 5 / 3 = 1
% 取模(取余数) 5 % 3 = 2
备注:对于整数的表达式来说,除法用的是整除,求的是商数,不看余数,结果任然是整数
一旦运算中出现了不同的数据类型,那么结果将会是数据类型范围大的那种。
++ 自增运算符 加1
-- 自减运算符 减1
使用方式:
1. 变量写在运算符的左边或者右边
2. 单独使用
3. 混合使用
区别:
1.单独使用,前++和后++没有区别 ++a和a++
2.混合使用,有区别。
a. 如果是前++,那么变量会立马自增1,然后再进行其他运算【先加后用】
b. 如果是后++,那么首先使用原来的数值,然后再自增1运算【先用后加】
备注:对于自增和自减运算不能使用到常量身上,只有变量可以使用。
public class OperatorDemo01 { public static void main(String[] args) { int a = 123; double b = 12; double c = a / b;// double System.out.println(c); int d = 10; d++; System.out.println(d); System.out.println(10++); } }
赋值运算符
public class OperatorDemo02 { public static void main(String[] args) { //System.out.println(10=20); byte num01 = 10; byte num02 = 20; // += // num02+num01--->int 等价于 num02 = num02 + num01; //num02 = num02 + num01; num02 += num01; System.out.println(num02); } }
练习逻辑运算符
与 &
或 |
非 !
异或 ^
public class OperatorLogicDemo04 { public static void main(String[] args) { // & 与逻辑运算符 System.out.println(true & false);// false System.out.println(10 < 20 & 10 != 20);// true // 一个null的值被调用了 String str = null; // null == null str.equals(null) boolean boo = 10 > 20;// true //javac 编译时期只校验语法是否合法 //java 在程序运行时期,才能检测到值的内容是否合法 // && 只有当连接的左边值为false的时候,才能起到短路作用 System.out.println( boo && str.equals("null"));//false System.out.println("===================="); // | 或逻辑运算符 boolean flag = false; // || 只有当连接的左边值为true的时候,才能起到短路作用 System.out.println( !flag || str.equals("null"));//false System.out.println("===================="); // ! 取非逻辑运算符 System.out.println(!flag);// true System.out.println("===================="); // ^ 异或逻辑运算符 System.out.println(true ^ false);// true System.out.println(true ^ true);// false System.out.println(false ^ true);// true System.out.println(false ^ false);// false } }
练习下String字符串
注意: 基本数据类型都是小写字母 而字符串首字母是大写的Stringpublic class StringDemo { public static void main(String[] args) { // String 字符串 数据类型 // 引用数据类型----》String String name = "张三"; String address = "郑州"; // println() print()打印 ln--->换行 System.out.print(name); System.out.print(address + "\n");// 转义字符 \n // + --->可以进行字符串的拼接 System.out.println(name + address); } }
练习变量的定义和使用
格式:
变量的数据类型 变量名 = 数据值;
拆分两步:
变量的数据类型 变量名;// 创建了一个变量
变量名 = 数据值;// 赋值,将右边的数据值,赋值给左边的变量。
两步合一步:
变量的数据类型 变量名 = 数据值;//创建了一个变量,同时将右边的数据值,赋值给左边的变量
public class VariableDemo { public static void main(String[] args) { // 创建一个变量 // 格式:数据类型 变量名; int age; // 向变量中存入一个数据 // 格式:变量名 = 数据值; age = 22; // 把该变量的内容在控制台中打印输出 System.out.println(age); // 当在程序汇总打印变量时,显示的是变量中存储的数据值。 // 改变变量当中原来的数据值22,变成新的数据值32 age = 32; System.out.println(age); byte score = 60; System.out.println(score); // 注意:右侧的数据的范围不能超过左侧数据类型的取值范围。 score = 127; System.out.println(score); // 定义一个short类型的变量 short salary = 10000; // 定义一个长整型的数,需要在整数的后面添加字母L/l long phone = 18838894388L; System.out.println(phone); // 定义浮点型数值 需要在浮点数的后面添加字母F/f float height = 1.75F; System.out.println(height); double weight = 73.5; System.out.println(weight); // 定义一个字符型的变量 char sex = '男'; System.out.println(sex); // 定义一个布尔类型的变量 boolean flag = false; System.out.println(flag); } }
定义变量需要注意事项
使用变量的时候,需要注意的事项如下:
1.创建多个变量的时候,变量之间的名称不可以重复;
2.对于float和long类型来说,变量的数据值后面需要添加字母F和L
3.如果使用byte或者是short类型的变量,那么右侧的数据值不能超过左侧类型的范围。
4.没有进行赋值的变量,不能直接使用,能够使用的变量一定是经过初始化(赋值)。
5.变量的使用不能超出它对应的作用域。
6.可以通过一个语句来创建多个变量,但是不建议使用。
作用域---->{} 左半部分{ 代表作用域的起始位置
右半部分} 代表作用域的结束位
public class VariableNoticeDemo { public static void main(String[] args) { // 定义多个变量 int num01 = 123; num01 = 124; System.out.println(num01); System.out.println(num01); int num02 = 20; // 定义float和long类型的变量 float height = 1.75f; System.out.println(height); long phone = 123345456789L; System.out.println(phone); // 定义两个byte类型的变量 byte num1 = 127; byte num2 = 1; byte num3 = 126 + 1;// System.out.println(num3); // 定义一个变量,未经过赋值 int score; score = 60; System.out.println(score); // 变量的使用不能超出它对应的作用域。 { int wage = 600; System.out.println(wage); } //System.out.println(wage); { int wage = 9000; System.out.println(wage); } { } // 6. 定义三个变量;不要这样写 不要这样写 不要这样写 // int x ,y = 124,z ; int x = 120; int y = 124; int z = 125; } }
个别易理解未进行练习