欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java基础(二)java语言基础,

来源: javaer 分享于  点击 35538 次 点评:84

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 longshort(两个字节) 高位去掉,保留低位 还是128

b的值 还是看补码 a 1000 0000 short转byte 高位去掉,保留低位 这里需注意byte是一个字节 这个1就成了符号位 即为-128 同上

相关文章

    暂无相关文章
相关栏目:

用户点评