4.类型转换
由于java是强类型语言,所以要进行运算时,需要用到类型转换
运算中,不同类型的数据先转化为同一类型,然后进行运算。
public class demo3 {
public static void main(String[] args) {
int i = 128;
byte a = (byte)i;//强制转换
System.out.println(i);
System.out.println(a);
}
}
原因:byte类型最大值为127,强制转换后发生了内存溢出。
由高优先转换为低优先时都需要强制转换
double b = i;
System.out.println(b);
可以看出,当范围合理时能正常转换。
由低优先到高优先为自动转换。
System.out.println("==========");
System.out.println((int)13.9);//13
System.out.println((int)-36.6f);//-36
强制转换后发生了精度问题。
前面说过,字符本质也是数字。
System.out.println("==========");
char b = 'a';
int c = 'a'+1;
System.out.println(c);//输出unicode值
System.out.println((char)c);//将unicode转换为字符
//操作比较大的数时需要注意溢出问题
System.out.println("==========");
int d = 1000000000;
int e = 20;
long f = d*e;
System.out.println(f);
如何解决?
当定义变量为int时,默认类型为int,java是先计算后转换,所以在计算时已经内存溢出,转换后的结果是内存溢出后的数字。
要解决问题,可以在一开始设置为long型。
5.变量
变量就是可以变化的量。
java是一种强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域。
注意:
- 每个变量必须有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符。
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
public class demo4 {
public static void main(String[] args) {
//int a,b,c;
//int a=1,b=2,c=3;//不建议,需要保证程序可读性。
int a = 1;
int b = 2;
int c = 3;
String name = "shjate";
char x = 'X';
double pi = 3.14;
}
}
public class demo5 {
//属性:变量
//实例变量,从属于对象。如果不自行初始化,这个类型的默认值为全0、null、false
String name;
int age;
double b;
byte a;
boolean c;
//main方法
public static void main(String[] args) {
//局部变量,必须声明和初始化值。
int i = 10;
System.out.println(i);
//变量类型 变量名字=new Demo06()
demo5 Demo5 = new demo5();
System.out.println(Demo5.age);
System.out.println(Demo5.name);
System.out.println(Demo5.a);
System.out.println(Demo5.b);
System.out.println(Demo5.c);
}
//其他方法
public void add(){}
}
类变量:
//属性:变量
//类变量:static
static double salary = 25000;
//实例变量,从属于对象。如果不自行初始化,这个类型的默认值为全0、null、false
String name;
int age;
double b;
byte a;
boolean c;
//main方法
public static void main(String[] args) {
//局部变量,必须声明和初始化值。
int i = 10;
System.out.println(i);
//变量类型 变量名字=new Demo06()
demo5 Demo5 = new demo5();
System.out.println(Demo5.age);
System.out.println(Demo5.name);
System.out.println(Demo5.a);
System.out.println(Demo5.b);
System.out.println(Demo5.c);
System.out.println(salary);
}
//其他方法
public void add(){}
}
6.常量
常量是指不会变动的值,初始化之后不能再改变。
常量可以理解为一种特殊的变量,值设定后,再程序运行过程中不会允许改变。
常量名一般使用大写字符。
public class demo6 {
//final和static为修饰符,不存在先后顺序
final static double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
7.变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线
- 类名:首字母大写和驼峰原则
- 方法名:首字母小写和驼峰原则
- 驼峰原则:单词首字母大写