变量的分类:
1.局部变量 : 在方法中或者语句块中定义的变量成为局部变量 使用前必须已经声明并且已经赋值 2.成员变量 : 在类中方法外定义的变量成为成员变量 只声明不赋值存在默认值 整数:0 小数:0.0 字符:space null 空字符 布尔: false 字符串: null
变量及类型转换中可能会遇到的小问题
long num3 = 20000000000L;// 后面加的 L 最好大写,这样便于区分 i 1 l
float fnum = 1.11111111111f; // float 类型的数据后面加f---大小写无所谓
char firstName = '王';// char类型只能储存一个字符,这个字符需要用 '单引号'括起来
// 双引号括起来的是String类型的数据
--------------------如何拿单个字符的Unicode码-------------------------------
int num = '谢';
System.out.println(num);//该语句输出的是字符'谢'的Unicode码
-------------------------类型转换------------------------
byte b1 = 100;
int int1 = b1; // byte(1)->int (4),小转大,
short short1 = 100;
int1 = short1;
char c = 10;
// 规则:在进行运算时 如果有 byte, short , char ,int 进行混合运算时,结果都将变为int
int1 = b1 + b1; // byte + byte -> int
int1 = short1 + b1; // short + byte -> int
// 强制类型转换;需要转,但是系统不能帮我,一般来说会可能存在精度丢失
// 语法: (目标类型)(数据)
byte b3 = (byte)(b1 + b1); // 200
System.out.println(b1);// 出现一个负数
int money = 1000000000; //10亿
int years = 20;
int total = money*years; //超过int的范围,因此返回的是负数
long total1 = money*years; //返回的仍然是负数。默认是int,因此结果会转成int值,再转成long。但是已经发生了数据丢失
long total2 = money*((long)years); //先将一个因子变成long,整个表达式发生提升。全部用long来计算。
long d1 = 5 + 1L; // int + long