类型转换
-
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。
-
byte、short、char—>int—>long—>float—>double 小数优先级高于整数
低——————————————————————>高
-
运算中,不同类型的数据先转化为同一类型,然后进行运算。
-
由低—>高,自动转化
由高—>低,强制转换 (类型)变量名
注意点
-
不能对布尔值boolean转换
-
不能把对象类型转换为不相干的类型
-
把高容量转换到低容量,要强制转换
-
转换过程可能存在内存溢出,或精度问题、
-
操作比较大大的数时,注意溢出问题
-
JDK7新特性,数字之间可以下划线分割
变量
-
变量是可以变化的量
-
Java是一种强类型语言,每个变量都必须声明其类型
-
Java变量是程序中最基本的存储单位,其要素包括变量名,变量类型和作用域
注意事项
-
每个变量都有类型,类型可以是基本型,也可以是引用类型
-
变量名必须是合法的标识符
-
变量声明是一条完整的语句,因此每一个声明都必须以分号结束
变量作用域
-
类变量 static
-
实例变量 默认值
-
局部变量:必须声明和初始化值 在两个大括号内
常量
-
常量:初始化后不能再改变值!不会变动的值
final 常量名 = 值; final double PI = 3.14;
-
所谓常量可以理解为特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
-
常量名一般使用大写字符
变量的命名规范
-
所有变量、方法、类名:见名知意
-
类成员变量、局部变量:首字母小写和驼峰原则 moneySalary
-
常量:大写字母和下划线 MAX_VALUE
-
类名:首字母大写和驼峰原则 Man Good_Man
-
方法名:首字母小写和驼峰原则 run runRun()
运算符
-
算数运算符:+、-、*、/、%(模 取余)、++(自增)、--(自减)
public class Demo05 { public static void main(String[] args) { //++ -- 一元运算符 int a=3; int b=a++; //先给b赋值再自增 //a++ a=a+1 //a++:先赋值再自增 ++a:先自增再赋值 System.out.println(a); int c=++a; //先自增再给c赋值 System.out.println(a); System.out.println(b); System.out.println(c); //幂运算 2^3 2*2*2 double pow = Math.pow(2, 3); //alt+enter System.out.println(pow); } }
-
赋值运算符:=
int a =10; //把10赋值给a
-
关系运算符:>、<、>=、<=、==(等于)、!=(不等于)、instanceof
-
逻辑运算符:&&、||、! 与或非
public class Demo06 { public static void main(String[] args) { //逻辑运算 &&与(and) ||或(or) !非(取反) boolean a = true; boolean b = false; System.out.println("a&&b:"+(a&&b)); //两个都为真,才为真 System.out.println("a||b:"+(a||b)); //有一个为真,就为真 System.out.println("!(a&&b):"+!(a&&b));//是真为假,是假为真 System.out.println("=============================================="); //短路运算 int c = 5; boolean d = (c<4)&&(c++<10); System.out.println(c); System.out.println(d); //c<4错误,下面就不会执行,直接输出为false System.out.println("==============================================="); int e = 3; boolean f = (e<4)&&(e++<10); System.out.println(e); System.out.println(f); } }
-
位运算符:&(位与)、|(位或)、~(取反)、^(位异或)、<<(左移)、>>(右移)、>>>
public class Demo07 { public static void main(String[] args) { //位运算符 /* A=0011 1100 B=0000 1101 -------------------------------------- A&B=0000 1100 都为1才为1 A|B=0011 1101 都为0才为0 A^B=0011 0001 相同为0,相异为1 ~B=1111 0010 取反 -------------------------------------- 2*8计算如何最快 2*2*2*2 位运算效率极高!!!! << *2 >> /2 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 0101 5 0000 1000 8 0001 0000 16 */ System.out.println(2<<3); System.out.println(2>>3); System.out.println(2<<4); } }
-
条件运算符 ? :
-
扩展赋值运算符:+=、-=、*=、/=