随堂笔记
类型转换
- 背景:由于java是强类型语言,所以要进行有些运算时要用到类型转换。(不同的数据类型要转化为同一类型)
低------------------------------------------->高
byte,short,char->int->long->float->double
与c语言相似 - 有两类类型转换:
* 强制类型转换
(类型)变量名 高----->低
* 自动类型转换
低---------->高 - 注意点:
* 不能对布尔值进行转化(boolean)
* 不能把对象类型转换为不相干的类型
* 在高容量转换为低容量时,要强制转换
* 转换时可能存在内存溢出或精度问题
public class hello
{
public static void main(String[] args)
{
//操作比较大的数时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int m=10_0000_0000;
//System.out.println(m);//结果:1000000000
int y=20;
//int t=m*y;
//System.out.println(t);//结果:-1474836480,计算溢出
// long t=m*y;
// System.out.println(t);//结果还是-1474836480,因为还是默认为int类型,在转换之前就存在了int
long t=m*((long)y);//先把一个数转换为long,低向高转换
System.out.println(t);//结果为20000000000
}
}
变量
- java是强类型语言,我们在使用前必须定义
- java变量是程序中最基本的存储单元,其要素包括变量类型(基本类型、引用类型)、变量名(规范参考标识符的笔记)、还有作用域。
ps:变量声明是一条完整的语句,因此每一个声明必须以分号结束。程因为序的可读性,所以尽量定义要分开定义。
public class D8
{
//类变量 static
static double salary=2500;//相当于c语言的全局变量
/*实例变量:从属对象;如果没有初始化,数值类型的默认值为0或0.0
字符类型的默认值为u0000(不显示?)
布尔值:false
其余的都是null
*/
String name;
int age;
char year;
//main方法
public static void main(String[] args)
{
/*局部变量:必须声明和初始化值,只能在最近
的括号内才能被引用
*/
int i=1;
System.out.println(i);
//变量类型 变量名字 = new D8();
//从new D8到D8 d8 = new D8();ALT+回车键即可
D8 d8 = new D8();
System.out.println(d8.age);//有点类似于c语言的结构体
System.out.println(d8.year);
System.out.println(d8.name);
System.out.println(salary);
}
}
运行结果:
常量
- 常量一旦被定义后,在程序运行的过程中不允许被改变
//final 常量名=值
static final double PI=3.14;//静态变量
final static double PI=3.14;//一样的
/*变量类型前面的都是修饰符,修饰符不存在先后顺序
final相当于c语言中的#define
常量名一般用大写字母
*/