类型转换,变量,运算符,包机制
类型转换级别
低--------------------------------------------------------------------->高
byte,short,char,int,long,float,double
ps:运算中,不同类型的要先转化为同一类型再进行计算
强制类型转换:由高类型转化为低类型时,比如:int a=10;(short)a//将a转化为int型
自由类型转换:由低类型转化为高类型时
注意点
-
不能对布尔值进行转换
-
把高容量的转换为低容量的要进行强制类型转换
-
转换的时候可能存在内存溢出问题或者精度问题
操作比较大的数是时,注意溢出问题,JDK7新特性,数字之间可以用下划线分割
public class abc {
public static void main(String[] args) {
int money = 10_0000_0000;
int year = 20;
long total = money*year;//这样转换无效,在转换前已经进行计算,并且内存溢出
long total1 = (long)money*year;//这样转换才有效,计算前先把一个数转换为long类型
System.out.println(total);
System.out.println(total1);
}
}
answer:-1474836480
20000000000
变量作用域问题
-
类变量:前缀为static,可以在主方法内直接使用
-
实例变量:从属于对象,如果不自行初始化,这个类型的默认值为0,布尔型默认为false,除基本类型,其余默认值为null,实例变量要引用,例如类名为Deom,则Deom deom =new Deom()
public class Demo {
private static Demo demo;
int age = 10;
public static void main(String[] args) {
demo = new Demo();//输入new Demo()后,利用快捷键ctrl+alt+f
System.out.println(demo.age);
}
} -
局部变量:必须声明和初始化值
-
常量:前缀为final
变量的命名规范
-
类成员变量:首字母小写和驼峰原则
-
类名:首字母大写和驼峰原则:除第一个单词外,后面单词首字母大写
-
局部变量:首字母小写和驼峰原则
-
-
方法名:首字母小写和驼峰原则runRun()
运算符
-
a++:先赋值再加:a=5,b=a++;此时结果为b=5,a=6
-
++a,先加再赋值:a=5,b=++a;此时结果为b=6,a=6
-
幂函数,2^3,在Java中表示为:double power = Math.pow(2 ,3)
-
逻辑运算符 //与 ||或 !非
public class Demo {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
int c = 10;
int d = 20;
System.out.println("a && b: "+(a&&b));//""+为字符串连接符
System.out.println("a || b: "+(a||b));
System.out.println("!(a && b): "+!(a&&b));
System.out.println(""+a+b);//结果为1020
System.out.println(a+b+"");//结果为30
}
} -
短路运算,当判断与运算的两个条件时,如果第一个为假,则直接输出false
-
位运算
A=0011 1100;
B=0000 1101
A&B=0000 1100
A|B=0011 1101
A^B=0011 0001
~B=1111 0010 -
条件运算符?:
int score = 50;
string type = score < 60 ?"不及格":"及格"
包机制
相当于文件夹:导入包下的所有类:import com.liu.base.*;
JAVADoc