类型转换
由于Java是强类型语言,所以要进行有些运算的时候
低--------------------------------------------------------->高
byte,short,char-->int-->long-->float-->double
运算中,不同类型的数据先转化为同一类型,然后进行运算
强制类型转换(高--低)
自动类型转换
public class demo4 {
public static void main(String[] args) {
int i=128;
byte b=(byte) i;//内存溢出
//强制转换 (类型)变量名 (高到低)
//自动转换 低到高
System.out.println(i);
System.out.println(b);
System.out.println("======================================");
System.out.println((int)23.7); //23
System.out.println((int)-45.89f);
System.out.println("==================================");
char c ='a';
int d=c+1;
System.out.println(d);
System.out.println((char)d);
}
}
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量时,强制转换
4.转换的时候可能存在内存溢出或者精度问题
public class demo05 {
public static void main(String[] args) {
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money =10_0000_0000;
System.out.println(money);
int years=20;
int total=money*years;//-1474836480,计算的时候溢出了
System.out.println(total);
long total2=money*years;//默认是int,转换之前已经存在问题了?
System.out.println(total2);
long total123=money*((long)years);//先把一个数转换为long,
System.out.println(total123);
//L l
}
}
变量
变量的定义
变量:可以变化的量
java是一种强类型语言,每个变量都必须声明其类型
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
type varName [=value] [{,varName[=value]}];
//数据类型 变量名 = 值; 可以使用逗号个开来声明多个同类型变量
注意事项:
*每个变量都有类型,类型可以是基本类型,也可以是引用类型
*变量名必须是合法的标识符
*变量声明是一条完整的语句,因此每一个声明都必须以分号结束
public class demo06 {
public static void main(String[] args) {
//int a,b,c;//程序可读性
String name="xu";
char x='X';
double pi=3.1415926;
}
}
变量作用域
*类变量(static)
*实例变量
*局部变量
public class demo07 {
//类变量 static
static double salrry =2500;
//属性:变量
//实例变量:从属于对象:如果不自行初始化,这个类型默认值 0 0.0 u0000 false
//布尔值:默认是false
//除了基本类型其余的默认值都是null;
String name;
int age;
//主程序方法(main方法)
public static void main(String[] args) {
//局部变量:必须声明和初始化值
int i=10;
System.out.println(i);
//变量类型 变量名字=new demo07;
demo07 demo07 = new demo07();
System.out.println(demo07.age);
System.out.println(demo07.name);
//类变量 static
System.out.println(salrry);
}
//其他方法
public void add(){
}
}
实例变量:从属于对象:如果不自行初始化,这个类型默认值 0 0.0 u0000 false
布尔值:默认是false
除了基本类型其余的默认值都是null;
类变量:在类里面定义,用static,可以不初始化
局部变量:必须声明和初始化值
常量
常量的定义
常量:初始化后不能再改变值!不会变动的值
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
final 常量名=值;
final double PI=3.14
常量名一般使用大写字符
public class demo08 {
//修饰符不存在先后顺序
static final double PI =3.14;
final static double PI2=3.14;
public static void main(String[] args) {
System.out.println(PI);
System.out.println(PI2);
}
}
修饰符不存在先后顺序,也就是说定义常量时,static final和final static效果相同
变量的命名规范
*所有的变量、方法、类名:见名知意
*类成员变量:首字母小写和驼峰原则:monthSalary(除第一个单词以外,后面的单词首字母大写)
*局部变量:首字母小写和驼峰原理
*常量:大写字母和下划线:MAX_VALUE
*类名:首字母大写和驼峰原理Man,GoodMan
*方法名:首字母小写金额驼峰原理:run(),runRun()