运算中,不同类型的数据先转化为同一类型,然后进行运行
public class demo03 {
public static void main(String[] args) {
int i=128;
byte b=(byte)i;//内存溢出
double c=i;
//强制转换:(类型)变量名 高--低
//自动转换 低--高
System.out.println(i);//128
System.out.println(b);//-128
System.out.println(c);
System.out.println("===================");
System.out.println((int)23.7);//23
System.out.println((int)-45.8f);//-45
System.out.println("===================");
char d='a';
int e=d+1;
System.out.println(e);//98
System.out.println((char)e);//b
}}
public class demo04 {
public static void main(String[] args) {
//操作比较大的数时,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money=10_0000_0000;
int years=20;
int total=money*years;
System.out.println(total);//-1474836480,计算的时候溢出了
long total2=money*years;//money 和 years都是int类型,转换之前已经存在问题了
System.out.println(total2);//-1474836480
long total3=money*((long)years);//先把一个数转换为long
System.out.println(total3);//20000000000
}}
变量
变量代表一个空间,空间的位置知道了,但空间中存储内容不清楚
public class demo05 {
public static void main(String[] args) {
int a=1;
int b=2;
int c=3;
String name="a";
char x='S';
double pi=3.14;
}
}
注意事项
1.每个变量都有类型,类型可以是基本类型,也可以是引用类型
2.变量名必须是合法的标识符
3.变量声明是一条完整的语句,因此每个声明都必须以分号结束
变量的命名规范首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写
变量作用域类变量
实例变量
局部变量
public class demo06 {
//类变量 static
static double salary=2500;
//属性:变量
//实例变量:从属于对象;若不进行初始化,则为此类型的默认值.数值类型是0或0.0;字符串为u0000;布尔值为false
//除了基本类型,其余的默认值都为null
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量:必须声明和初始化值
int i=10;
System.out.println(i);//只能在此括号内使用i
//变量类型 变量名字=new demo06();
demo06 demo06 = new demo06();
System.out.println(demo06.age);//demo08.age.sout
System.out.println(demo06.name);
//类变量 static
System.out.println(salary);
}
//其他方法
public void add(){
}}
常量constant
初始化(initialize)后不能再改变的值
常量可以理解为一种特殊的变量,他的值被设定后,在程序运行过程中不允许被改变
final 常量名=值
final double PI=3.14
常量名一般使用大写字符
public class demo07 {
//修饰符,不存在先后顺序。static final和final static 都可以
static final double PI=3.14;
public static void main(String[] args) {
System.out.println(PI);}}
运算符
算术运算符:+,-,*,/,%,++,–
赋值运算符:==
关系运算符:>,<,>=,<=,==,!=,instance of
逻辑运算符:&&,||,!
位运算符:&,|,^,~,>>,<<,>>>
条件运算符:?,:
扩展赋值运算符:+=,-=,*=,/=
package operator;
public class demo1 {
public static void main(String[] args) {
//二元运算符
//ctrl+D 复制当前行到下一行
int a=10;
int b=20;
int c=25;
int d=10;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
}
}
package operator;
public class demo2 {
public static void main(String[] args) {
long a=128338383L;
int b=1243;
short c=10;
byte d=8;
//当其中有long时输出结果为long,当有double时输出结果为double。cast:转换。当没有long时输出结果为int,无论其中是否有int
System.out.println(a+b+c+d);//Long
System.out.println(b+c+d);//int
System.out.println((double)c+d);//int
}}
package operator;
public class demo03 {
public static void main(String[] args) {
//关系运算符返回的结果:正确,错误 布尔值
int a=10;
int b=20;
int c=21;
System.out.println(c%a);//1
System.out.println(a>b);
System.out.println(a


