java基础(二)java语言基础,
java基础(二)java语言基础,
文件名必须与类名同名,且区分大小写。
成员变量和局部变量
成员变量,也叫全局变量,类的属性,声明在类中
局部变量,方法中的属性,声明在方法中
权限修饰符、静态修饰符、返回值修饰符
基本数据类型
八进制必须以0开头,十六进制必须以0X或0x开头
Long值需要加后缀L或者l
小数默认为double,使用float需要加后缀F或者f,D或者d可不加,但声明float不加会报错
在float和double类型中,0的整数部分是可选的
例如,0.5可以写成.5
字符类型 char 16位 2字节 单引号字符,双引号字符串 可显式转换字符对应的编码整数 反之同理
如果整数字面值太长,可读性会受到影响。
从Java 7开始,可用在整数字面值中使用下划线将数字分隔开
//十进制
int x=1_000_000;
//十六进制数,即十进制的32
int y=0x2_0;
//八进制,即十进制的15
int z=0_17;
//二进制,即十进制的7
int u=0b0_111;
转义字符(了解一哈)
布尔类型
变量与常量
变量:程序执行过程中,其值不能被改变的量
常量:程序执行过程中,其值能被改变的量
标识符:用来标识类名、变量名、方法名、数组名、文件名的有效字符序列
Java语言规定标识符由任意顺序的字母(严格却分大小写,JAVA语言使用Unicode标准字符集,最多标志65535个字符,这里的字母包括abcd、汉字、日文等其他文字)、下划线(_)、美元符号($)和数字组成,并且第一个字符不能为数字。标识符不能是java中的保留关键字。
关键字:JAVA语言中被赋予特定意义的一些单词
这里仅列举这么多,比如true、false等也不能用作标识符。
Final常量属于“全局变量”需要赋初值
变量的有效范围
运算符:
赋值运算符、算术运算符、自增和自减运算符(操作元之前,先自增自减,再使用操作元,操作元之后,先使用操作元,再自增自减)、比较运算符、位运算符(补码运算,“按位与”运算:&,精度变大,111;“按位或”运算:|,精度变大,001;“按位取反”运算:~,精度变大,01;“按位异或”运算:^,精度变大,001,111;“移位”运算:)<<,>>,>>>,左移,右移,无符号右移,左移补0,右移根据最高位补0或1,无符号右移补0)、三元运算符(条件式?值1:值2 为true取值1,反正取值2)
运算符优先级(尽可能使用()来限定运算次序)
+= 和 = + 之间的区别
前者进行运算的时候 会将结果强转和前面一致的数据类型 不考虑精度丢失的问题
但是后者在进行运算的时候 有可能会出现异常或者是报错的情况
遇到逻辑短路时,不考虑括号的优先级
比如
int i = 0;
int j = 0;
if ((++i > 0) || (++j > 0)) {
//打印出i和j的值。
System.out.println(i + "------" + j + "");
}
//结果为1------0
对于一元操作符来说,如果操作数的类型是byte,short或char,运算结果提升为int类型
对与二元操作符来说,提升规则是从以下几条依次选择一条执行
1.如果操作数类型均为byte或short,那么两个数均转为int类型,结果数也将为int类型
2.如果操作数包含double类型,那么另一个操作数也转为double,结果数也将为double类型
3.如果操作数包含float类型,那么另一个操作数也转为float,结果数也将为float类型
4.如果操作数包含long类型,那么另一个操作数也转为long,结果数也将为long类型
数据类型转换
一个值从一种类型转换为另一种类型的过程
隐式类型转换:低精度转高精度,不会溢出,类型从低到高,byte< short< int< long < float < double
显式类型转换:高精度到低精度,会有信息丢失
一些题型
关于 byte = 127; byte + 1的计算?
需要明白的问题:
正数的原码、反码、补码都相同,即二进制表示的字节码
负数的原码,对应正数的原码,第一位符号位换成1;负数的反码为对该数的原码除符号位外各位取反。负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1
然后我们计算第一个问题
127的补码为 0111 1111 127+1的补码为0 1000 0000
首先符号位是1,肯定是个负数,我们根据上面知识,推出负数的原码即可
带符号位计算:补码->反码 0 0111 1111 反码->原码 1 1000 0000 结果为-128 所以127+1 = -128
不带符号位计算: 补码->反码 1 111 1111 反码->原码 1 0000000 结果为-0(这个1是符号位) 所以127+1 = -0 这两个值我们取-128 也就是-0 = -128
经过强制类型转换以后,变量a, b的值分别为( )short a = 128; byte b = (byte) a;
a的值 直接看补码 128 1000 0000 long转short(两个字节) 高位去掉,保留低位 还是128
b的值 还是看补码 a 1000 0000 short转byte 高位去掉,保留低位 这里需注意byte是一个字节 这个1就成了符号位 即为-128 同上
相关文章
- 暂无相关文章
用户点评