数据类型与转换Java 是一种强类型语言, 变量需要定义后才能使用.数据类型基本数据类型整数:byte,short,int,long(long类型须在数字后加L) .​ 分别占用 1B, 2B, 4B, 8B.浮点数:float,double(float类型须在数字后加F) .​ 分别占用 4B, 8B.​需注意:float有舍入误差,需避免使用float进行比较.字符:char,String(String不是关键字, 是一种引用类型) .​char使用单引号, 而String使用双引号.char letter1 A; String letter2 B;布尔值:boolean.​ 表示 是 与 非.boolean flag ture; if(flag ture){} if(flag ) {}//这种写法更常用.进制进制前缀二进制0b八进制0十进制-十六进制0xchar character A; System.out.println((int)character);//加上int可以打印出字符的Unicode编码.(强制转化)类型转换由于 Java 是强类型语言, 需要进行类型转化 (将不同类型转为相同类型) .强制转换由高到低,手动转换.格式:(类型)变量名int a 128; byte b (byte) a;运算中只要有一个变量被转换了, 其他的也会一同被转换.自动转换由低到高,自动转换.int a 128; double b a;注意布尔值不可以参与转换.不可以转换成不相干的类型.转换中可能会出现内存溢出和精度问题.System.out.println((int) 12.3); //打印12, 丢失精度. System.out.println((byte) 128);//打印-128, 内存溢出.操作大数目时, 需要注意内存溢出.int num1 10_0000_0000; int num2 20; System.out.println(num1 * num2); //由于内存溢出, 输出-1474836480. long sum num1 * (long) num2;//进行一处类型转换. System.out.println(sum);//顺利打印出20000000000.变量和常量变量Java 的每个变量必须声明其类型后才能使用.变量是程序中最基本的单元, 包括变量名,变量类型及作用域.使用类型 变量名 [值]进行定义,可以用逗号隔开以声明多个同类型的变量 (不建议) .int a 1, b 2, c 3;//为了程序可读性, 不要一行定义多个变量!变量作用域局部变量只能在一个方法里面使用,必须声明和初始化​方法: 如有public static void main(String[] args), 则有main方法.实例变量从属于对象.public class Demo { int num 23; String char1 abc; public static void main(String[] args) { Demo Demo new Demo();//new就是在内存中开辟了一块空间可以对里面的数据进行操作. System.out.println(Demo.num);//打印23. System.out.println(Demo.char1);//打印abc. } }如不初始化, 则会输出默认值(0, 0.0, ect.)布尔值的默认值为false.除了基本类型, 其他类型默认值均为null.类变量从属于类, 使用static进行定义.static是一种修饰符, 修饰符不区分前后顺序.public class Demo { static int num 23; public static void main(String[] args) { System.out.println(Demo.num);//不需要new便能成功执行. } }常量初始化后不能改变值, 可视作一种特殊的变量, 使用final进行定义.final也是一种修饰符.常量名称一般使用大写字母.命名规则所有变量, 方法, 类名, 都需要遵循见名知意原则.类型大小写驼峰原则类成员变量首字母小写✓局部变量首字母小写✓常量全部大写, 使用_分割-类名首字母大写✓方法名首字母小写✓驼峰原则: 除了第一个单词, 每个单词首字母大写.运算符名称类型符号算数运算符,-,*,/,%,,--赋值运算符关系运算符,,,,,!,instanceof逻辑运算符, 位运算符, 条件运算符?,:扩展赋值运算符,-,*,/一元运算符只需要一个操作数, 二元, 三元也同理.运算优先级: 括号最优先, 其次是一元运算符 (多使用括号养成良好习惯).算数运算符加, 减, 乘, 除, 模,-,*,/,%(模运算, 取余).当不同类型一同运算时, 结果的类型取决于最高的类型. 如:当结果会出现小数, 需要对结果进行强制转换, 否则只会出现整数.long a 100L; int b 10; short c 1; System.out.println( a b c);//里面是long类型 System.out.println(b c);//里面是int类型 System.out.println(c / b);//打印0 System.out.println((double) c / b);//打印0.1如果的前面有String类型,则变成字符串连接运算符,负责把多个字符串连接起来.System.out.println(10 20);//打印30 System.out.println(Hello 10 20);//打印Hello1020 System.out.println(10 20 Hello 25);//打印30Hello25, 前面的会被运算需要注意, 在字符串连接运算符前面的式子会先被计算.自增自减(自增),--(自减). 两个都是一元运算符.n,n--(先数字, 后符号):先执行, 后自增/减.n,--n(先符号, 后数字):先自增/减, 后执行.int a 1, b 1; int result1 a;//a1---先为result1赋值, 然后才自增 int result3 a;//a2 int result2 b;//b2---先给自己自增, 再给result2赋值 int result4 b;//b2比较运算