类型转换
运算中,不同类型的数据先转换为同一类型,然后进行运算
浮点数比整数容量高
强制转换:(类型)变量名 高——低
自动转换 :低——高
int i=128;
byte b=(byte) i;//强制转换 (类型)变量名 高——低
System.out.println(i);//128
System.out.println(b);//-128 内存溢出
//====================================================
double d=i;//自动转换 低——高
System.out.println(d);//128
注意
-
不能对布尔值进行转换
-
不能把对象转换为不相干的对象
-
在把高容量转换到低容量的时候,需要强制转换
-
强制转换时注意内存溢出,或者精度问题
System.out.println((int)23.7);//23 精度问题
System.out.println((int)-45.78F);//-45 精度问题
举例
//举例
char c='a';
int e=c+1;//自动转换 低——高
System.out.println(e);
System.out.println((char)e);//强制转换 高——低
//===========================================
//操作比较大的数字的时候,注意内存溢出
//JDK7新特性,数字之间可以用下划线隔开
int money=10_0000_0000;
int years=20;
int total=money*years;
long total2=money*years;
long total3=money*((long)years);
System.out.println(total);//-1474836480,内存溢出
System.out.println(total2);//-1474836480 默认是int,转换之前就已经出问题了
System.out.println(total3);//20000000000 先把一个变量转换为long
变量
-
变量就是可以变化的量
-
java是一种强类型语言,每个变量都必须声明其类型
-
java变量是程序中最基本的存储单元,其要素包括变量名,变量类型,作用域
-
尽量不要在一行里面定义多个变量
变量作用域
-
类变量(插入关键词static)
-
实例变量(无关键词)
-
局部变量(写在方法里面)
注意事项
-
每个变量都有类型,类型可以是基本类型,也可以是引用类型
-
变量名必须是合法的标识符
-
变量声明是一条完整的语句,因此每一个声明都必须以分号结束
常量
-
初始化后不能改变值
-
常量名一般使用大写字符、
-
public class demo06 {
//类变量 static 全局可用
static double salary=3000;
//常量 final为修饰符,不存在先后
static final double PI=3.14;
//final static double PI=3.14;两者意思一样
//还可以定义一些属性:变量
//实例变量:从属于对象;如果不进行初始化,会输出这个这个类型的默认值 0 0.0
//布尔值:默认值是false;除了基本类型,其余类型默认都是null
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量:只有在方法的大括号里可以使用
int i=10;//必须声明初始值(赋值)
System.out.println(i);
//实例变量输出
//变量类型 变量名字=new demo06();
demo06 demo06 = new demo06();
System.out.println(demo06.age);//0
System.out.println(demo06.name);//null
//类变量输出
System.out.println(salary);//3000
//常量输出
System.out.println(PI);//3.14
}
//其他方法
public void add(){
}
}
命名规范
-
所有变量,方法,类名:要做到见名知意
-
类变量:首字母小写和驼峰原则:(monthSalary)
-
局部变量:首字母小写和驼峰原则
-
常量:大写字母和下划线:(MAX_VALUE)
-
类名:首字母大写和驼峰原则:(GoodMan)
-
方法名:首字母小写和驼峰原则:(runRun())
运算符
-
算输运算符:+,-,*,/,%(取余),++(自增),--(自减)
-
赋值运算符:a=b(把b赋值给a)
-
关系运算符:>,<,>=,<=,==(等于是两个等号),!=(不等于),instanceof
package operaor;
public class Demo01 {
public static void main(String[] args) {
//二元运算符
int a=10;
int b=20;
int c=30;
int d=40;
int t=3;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);//double类型
System.out.println(a%t);//取余 10/3=3...1
System.out.println("==============================================");
//运算时有long(double)类型时,结果为long(double);其余都为int类型
long l=12312132132L;
int i=1234;
short s=12;
byte y=8;
System.out.println(l+i+s+y);//long
System.out.println(i+s+y);//int
System.out.println(s+y);//int
System.out.println("==============================================");
//一元运算符 ++,-- 自增,自减
int a1=3;
int b1=a1++;//先赋值 再自增
//a++ a=a+1
System.out.println(a1);//4
//++a a=a+1
int c1=++a1;//先自增 再赋值
System.out.println(a1);//5
System.out.println(b1);//3
System.out.println(c1);//5
System.out.println("==============================================");
//关系运算符:true/false
int e=10;
int f=20;
System.out.println(e>f);//false
System.out.println(e<f);//true
System.out.println(e