/** 常量: 在程序运行的过程中,其值保持不变的量 字面值常量: 字符串常量: 用双引号括起来的内容 整数常量: 所有的整数 小数常量 : 所有的小数 布尔常量: true false 字符常量: 用单引号括起来的内容: 只能有一个字符(字母,数字,符号,中文) ',', '3' , '我' 空常量: null 自定义常量: final 修饰的变量 */ class ConstDemo{ public static void main(String[] args){ System.out.println("默默努力的cason"); System.out.println(10); System.out.println(100.1); System.out.println(true); System.out.println(false); System.out.println('1'); System.out.println('我'); } }
4. 变量
/** 概念: 在 java 程序运行的过程中,其值可以在一定范围内发生改变的量 定义格式: 数据类型 变量名 = 初始化值 数据类型: 整数: int 字符串: String 变量名: 小驼峰 */ class VarDemo{ public static void main(String[] args){ int age = 23; //定义变量 String myName = "默默努力的cason"; System.out.println(myName); //默默努力的cason System.out.println(age); //23 age = 19; //对变量重新赋值,不加数据类型 System.out.println(age); //19 } }注意:定义在方法中的变量叫做局部变量, 局部变量不赋初值不能使用; 变量所在的大括号叫做变量的作用域,同一个作用域中不能存在多个名字相同的变量。 5. 数据类型 基本数据类型 四类八种 整数类: 1. byte 2. short 3. int 4. long 小数类: 1. float 2. double 字符类: char 布尔类: boolean 注意! 1. 整数的默认类型是 int, 小数的默认类型是 double System.out.println(70); // 70 是 int 类型的 System.out.println(123.4); // double 类型的 2.定义 float 类型的小数, 要在小数的后面加上 f float f1 = 12.4; //.错误: 原因: 这是一条赋值语句, 是把等号右面的值,赋值给等号左边的变量,等号右面的值 12.4, 默认是double 类型的,把 double 赋值给 float,可能会造成损失 解决方案: 在小数的后面加上 f(F), float f1 = 12.4f; //12.4f 代表一个 float 类型值 3. byte b1 = 123; 是把 int 类型的 123 赋值给 byte,也是把大类型的数据赋值给小类型,但是并不会报错. 定义 byte,short 类型的变量的时候,如果=右面的数值在等号左边的类型的范围之内,就可以赋值; byte b2 = 129; // 错误 4. 定义 long 类型的变量的时候,如果等号右边的值在 int 的范围之内,则可以直接赋值,如果等号右边的数值超出 int 的范围,需要在数值的后面加上一个 L(l) 推荐使用大写的long l1 = 2147483649;// 2147483649 超出 int 的最大值,会报错 5.1 默认值 8 种基本数据类型,都有各自对应的默认值: byte,short,int ,long 默认值为 0 float double 默认值为 0.0 char 默认值为\u0000(空格) boolean 默认值为false 只有定义在类中,方法外的变量才有默认值 定义在方法中的变量是没有默认值的, 要想使用, 必须赋值 静态的方法中只能调用外部, 用 static 修饰的变量或方法
class DefaultData{ int a; static int b; static double c; static boolean d; public static void main(String[] args){ byte e; System.out.println(a); //错误, 非静态变量 System.out.println(b); //0 System.out.println(c); //0.0 System.out.println(d); //false System.out.println(e); //局部变量不赋初始值无法使用 } }
5.2 运算规则(自动) byte,short,char 不能直接做运算,要想做运算必须先转成 int 给 byte,short, 赋值的时候,先看等号的右边有没有变量 如果有变量,就按照上面的规则做运算,如果结果的类型范围超出左边的范围,就会产生错误 如果都是常量,就看最终的结果是否在左边的范围之内,如果在,就可以直接赋值 默认转换: byte,short,char—int—long—float—double
class CalculateRule{ public static void main(String[] args){ byte b1=3, b2=4, b; b = b1+ b2; //错误, b1+ b2在运算的过程中会转换为int作为结果,b是byte b = 3+ 4; //byte b = 7 float f1 = 12; float f2 = 12.1; //错误 float f3 = 12.1f; float f4 = 12.1L; } }
5.3 char类型
char 类型代表的是字符.用单引号括起来,里面只能有一个字符: char 占两个字节(0-65535),用的是 unicode utf-8: 表示英文和数字用 1 个字节,表示中文用 3 个字节 gbk: 表示英文和数字用 1 个字节,表示中文用两个字节 char 类型直接打印,用的是他所代表的字符 char 类型参与运算,用的是他底层的编码 对应转换详见:https://blog.csdn.net/YY_Theshy/article/details/1034687515.4 加法运算
+: 正号, 加法运算,字符串的拼接 要注意运算的顺序: 从左往右依次运算,有括号先算括号里的(先算乘除,后算加减) String 和任意类型做加法,得到的都是 String,值就是拼接后的结果 布尔类型不能和其他的基本数据类型做运算class DataTypeDemo5{ public static void main(String[] args){ int a = +10; System.out.println('a'); // a System.out.println('a'+1); //98 System.out.println("hello"+'a'+1); // helloa1 System.out.println('a'+1+"hello");//98hello System.out.println("5+5="+5+5);//5+5=55 System.out.println("5+5="+(5+5));//5+5=10 System.out.println(5+5+"=5+5");//10=5+5 System.out.println(true+'1');//: 错误: 二元运算符 '+' 的操作数类型错误 System.out.println(true+"1");// true1 } }
5.5 强制类型转换
一般是在把大类型转成小类型的时候用强转 byte b = (byte)130 System.out.println(b); // -126 计算一下是为什么吧 :)