Java学习之路03--JavaSE基础(二)

 

1、Java的标识符

由数字、字母、下划线、美元符号$、不能以数字开头。

Java标识符大小写敏感,没有长度限制,可以为标识符取任意长度的名字,但关键字不能作为标识符。


命名约定


类、接口:通常使用名词,且每个单词的首字母要大写

方法:通常使用动词,首字母小写,其后用大写字母分隔每个单词

常量:全部大写,单词之间用下划线分隔

变量:通常使用名词,首字母小写,其后大写字母分隔每个单词,避免使用$符号

 

2、变量

 

所谓的变量就是在内存开辟一个指定大小的存储区域。

Java的每一个变量都属于一个类型(type),声明变量时,将变量所属的类型放在变量名前以空格隔开,以分号结尾。

列如:数据类型 变量名 = 变量值;------->int args = 5;

Java是强类型语言,在使用变量前,必须先声明并且初始化才能使用,变量有明确的类型,而且变量名不能重复。

变量的作用域

在声明处开始,到代码块结束为止。离开变量的作用域,变量将被回收。代码块一般指{}里面的范围。

 

3、进制

 

 

十进制(Decimal):逢十进一,基数为10个:0 ~~ 9 ,权为10^n(10的n次幂称为权)

 

 

二进制(Binary):逢二进一,基数为2个:0 ~~ 1 ,权为2^n

 

 

八进制(Octal):逢八进一,基数为8个:0 ~~ 7 ,权为8^n

 

 

十六进制(Hexadecimal):逢十六进一,基数为16个:0 ~~ 9,A,B,C,D,E,F (A=10,B=11,C=12,D=13,E=14,F=15) ,权为16^n

 

Java中的二进制规则

java内部只有二进制补码,计算机内部数据以二进制补码表示。补码的最高位是符号位。

 

 

进制转换

 

 

十转二:

 

列如:145转成二进制数:

先将1到128的每个2^n写出来,然后将145减去128,在128下面标记为1,再将相减的数17再减去16,在16下面标记为1,

相减得1,再减去1得0,在1下面标记1,其他没有标记的都为0,这样二进制就出来了。

145

128 64 32 16 8 4 2 1

1 1 1

1 0 0 1 0 0 0 1

 

 

所以145的二进制数为10010001,这种方法很快,很方便,不用像一步步除二那样麻烦。

 

 

十转八、十六进制:

 

 

十进制整数转换成n进制整数通常采用除n取余法,小数部分乘n取整法。

 

如:将(30)十进制转换成八、十六进制数

8| 30 ……6 ------最右位

3 ------最左位

∴ (30)10 =(36)8

 

16| 30 …14(E)----最右位

1 ----最左位

∴ (30)10 =(1E)16

 

 

八,十六进制转十:

 

 

八进制转换成十进制采用方法:把这个八进制的最后一位乘上8^0,倒数第二位乘上8^1,……,一直到最高位乘上8^n,然后将各项乘积相加的结果就它的十进制表达式。

把八进制36转换为十进制

(36)8=3*8^1+6*8^0=24+6=(30)10

 

十六进制转换成十进制采用方法:把这个十六进制的最后一位乘上16^0,倒数第二位乘上16^1,……,一直到最高位乘上16^n,然后将各项乘积相加的结果就它的十进制表达式。

把十六制1E转换为十进制

(1E)16=1*16^1+14*16^0=16+14=(30)10

 

二转十:

 

以0开头的,直接将二进制转为十进制。

以1开头的,按位取反,末尾加1,再转为十进制,再加负号。

将00010101转为十进制数:

1*2^0+0*2^1+1*2^2+0*2^3+1*2^4=21

 

二转八:

 

 

对于整数,从低位到高位将二进制数的每三位分为一组,若不够三位时,在高位左面添0,补足三位,然后将每三位二进制数用一位八进制数替换,小数部分从小数点开始,自左向右每三位一组进行转换即可完成。例如:

将二进制数1101001转换成八进制数,则

(001 101 001)2

| | |

( 1 5 1)8

( 1101001)2=(151)8

 

 

 

八转二:

 

 

将每位八进制数用三位二进制数替换,即可完成转换,例如,把八进制数(643.503)8,转换成二进制数,则

(6 4 3 . 5 0 3)8

| | | | | |

(110 100 011 . 101 000 011)2

(643.503)8=(110100011.101000011)2

 

 

 

二转十六:

 

 

将二进制数的每四位用一个十六进制数码来表示,整数部分以小数点为界点从右往左每四位一组转换,小数部分从小数点开始自左向右每四位一组进行转换。

 

 

 

十六转二:

 

 

将每一位十六进制数用四位相应的二进制数表示,即可完成转换。

例如:将(163.5B)16转换成二进制数,则

( 1 6 3 . 5 B )16

| | | | |

(0001 0110 0011. 0101 1011 )2

(163.5B)16=(101100011.01011011)2

 

 

补码:

 

计算机使用补码来表示负数,正数的补码就是其本身的二进制数,负数的补码是正数的补码按位取反再加1获得的(~n+1=-n)。

--|补码的运算是封闭的,运算的结果必须小于补码的最大范围,超出范围就溢出,则数值将没有意义。

--|4位二进制补码最多能表示2^4(16)个数,数的范围是-8~7

--|8位二进制补码最多能表示2^8(256)个数,数的范围是-128~127

--|16位二进制补码最多能表示2^16(65536)个数,数的范围是-32768~32767

--|32位二进制补码最多能表示2^32个数,数的范围是-2G~2G-1

 

3、Java的数据类型

java中的数据类型分为两大类,基本数据类型和引用类型,基本数据类型有八种,引用类型以后再描述。

 

八大基本数据类型:

整数类型包括:byte、short、int、long,都是有符号(补码)整数。

浮点型包括:float、double

字符型包括:char

布尔型:boolean

 

整型:


 

java中整数的字面量默认是int类型,所以整数在运算时通常是默认转成int类型再做运算。

 

在给byte,short赋值时要注意该类型取值范围。

 

在给long赋值要注意在末尾加上“L”或“l”,因为整数默认int类型,所以用L标记为long类型。

 

浮点型:

float,double用于表示小数的数据类型。浮点型默认的字面量的类型是double。

 

float有32位(与int相同),int类型能够表示数值范围比float的小,但是int类型的数据表示精度比float高。

 

double精度比int高,但不如long;double表示的范围远大于long。

 

在给float类型赋值要在末尾加上“f”或“F”。

 

字符类型:

char类型是无符号的16位整数,最小值为0,最大值为2^16-1,在程序中为一个字符赋值,字符字面量使用单引号,可以为char赋值的有字符、数字、符号。

 

布尔类型:

表示:真(true)/假(false)。一般用于判断语句块中。

 

 

 

 

数据类型转换:

正方向---------------->

 

char --> int --> long --> float --> double

byte --> short --> int --> long --> float --> double

 

<-------------------负方向

 

自动类型转换(隐式类型转换):是自动发生,一般不用处理,规则是,符号位会自动扩展,负数补1,正数补0。整型转换到浮点型会损失精度。

 

强制类型转换(显示类型转换):会发生溢出或者损失精度,注意取值范围。

你可能感兴趣的:(基础,Java学习)