Java自我学习第二章

Java第二章 变量

1.变量是什么?

变量是一个可以变化的量 指内存中的一块被命名、被特定的数据类型约束的区域,此区域 中可以保存数据类型范围内的数据。

2. 变量的命名规则:必须遵守

1) 组成由52字母(大小写加起来), 数字0~9, _和$($最好不要使用)

2) 数字不可以开头

3) 不能直接使用关键字和保留字, 但是可以包含关键字和保留字

4) 长度最大65535字符

5) 区分大小写, a和A是不同的

6) 不可以包含空格.

 

3. 变量的声明 : 数据类型 变量名;

变量必须先声明,后使用

基本数据类型

数据类型 字节大小 范围值

整数

byte 一个字节 -128~127

short 两个字节 -32768~32767

int 四个字节 -20多亿~20多亿

long 八个字节 -900多亿~900多亿

浮点数

float 四个字节 -10^38~10^38

double 八个字节 -10^308~10^308

字符型

char 两个字节

布尔型

boolean 1/8个字节 只有ture和false

 

引用数据类型:内存空间中保存的是其他数据的地址

常量:不可以变化的量,有2种字面量和被final修饰的量

变量:可以变化的量

整数字面默认使用的是int数据类型

浮点数字面量默认的额理性是double类型

 

数据范围大小

byte<short<int <long<float <double

/*左 = 右

如果右面的值的范围小于等于左面的变量的类型

如果右面的值的范围大于左面的变量的类型, 必须强制类型转换.

*/

任意非long整数作运算, 结果总是int型

混合运算中, 结果的数据类型取决于其中范围最大的那个.

 

// 能用变量的时候, 绝不用常量

/* String是字符串 -> 像羊肉串, 是引用类型

String s1 = null; // 空, 表示没有对象

String s2 = "abc";

String s3 = ""; // 空串, 表示有对象, 但是没有内容.

字符串 可以和 任意数据用+号连接, 结果是产生一个新的字符串, 内容是连接后的结果.

*/

 

 

4.数据类型的作用 :

1) 决定空间大小

2) 决定数据是什么

3) 决定数据能做什么.

 

5.变量使用注意事项

1.先声明,后使用

2.必须要有数据类型和变量名

3.变量有其作用范围,作用范围有它的声明语句所在的一对{}决定

4.变量有其数据范围,由数据类型决定

5.变量必须初始化才能使用

6.同一范围内变量不允许重复声明

 

 

 

命名规范 : 不是强制

1) 包名. 所有字母都小写com.atguigu.javase.test;

2) 类名 : 所有单词的首字母全部大写. MyClassName

3) 变量名和方法 : 和类名唯一区别就看第一个字母, 首字母小写, 后面的单词的首字母也 是大写. myClassName

4) 常量名全部大写, 单词间用连接. MY_CONST_NAME. 这是唯一允许使用的地方.

 

手动PS(进制的转换)

首先是十进制 比如:数字172346就等于

1 * 10^5 +

7 * 10^4 +

2 * 10^3 +

3 * 10^2 +

4 * 10^1 +

6 * 10^0

权值=10的n次方,这样的数称为十进制,逢10进1,那十六进制为逢16进1,权值计算以16为底的n次方 那二进制 逢2进1 权值计算以2为底n次方

比如16进制一个数:0x3215(0x表示为16进制)

3 * 16^3+ 为 12288

2 * 16^2+ 为 512

1 * 16^1+ 为 16

5 * 16^0 + 为 5

= 12821(为十进制数)

再比如二进制一个数:0101 1010

0 * 2^7 + 0 * 128

1 * 2^6 + 64

0 * 2^5 + 32 * 0

1 * 2^4 + 16

1 * 2^3 + 8

0 * 2^2 + 4 * 0

1 * 2^1 + 2

0 * 2^0 1 * 0

= 64 + 16 + 8 + 2

= 90(为十进制数)

 

十六进制数 0x5a

5 * 16

10 * 1

= 90

0x5A,0101 1010, 90 . 各种进制本质是一回事, 3者是同一个东西的不同表现.

 

 

十进制 二进制 十六进制

0 0000 0

1 0001 1

2 0010 2

3 0011 3

4 0100 4

5 0101 5

6 0110 6

7 0111 7

8 1000 8

9 1001 9

10 1010 A

11 1011 B

12 1100 C

13 1101 D

14 1110 E

15 1111 F

 

2个16进制数 正好对应 8个比特, 所以2个十六进制就是一个字节

 

计算机底层所有数据都是二进制的补码的形式存储.

 

表示符号的符号位总是在最高位, 如果符号位为0表示这个是一个正数

如果符号位为1表示这个是一个负数.

 

补码 :

1) 正数的补码就是自身

2) 负数的补码就是它的相反数全部取反再加1

 

故所以我们可以算出byte型数据的最大值以及最小值

byte型数据最大值

0111 1111 => 0x7F => 16*7+15 => 127

 

1111 1111 这是负数, 负几?

-1 => 1111 1110

取反 => 0000 0001 这是1

所以1111 1111是-1

 

1000 0000 这是负数, 负几?

-1 => 0111 1111

取反 => 1000 0000 => 0x80 => 16*8 => 128

1000 0000就是-128

 

short型最大值

0111 1111 1111 1111

0x7FFF -> 716^3 + 1516^2 + 15*16^1 + 15 = > 32767

Short型最小值

1000 0000 0000 0000

0x8000 => -32768

 

Int型最大值

0111 1111 1111 1111 1111 1111 1111 1111

0x7FFFFFFF

Int型最小值

1000 0000 0000 0000 0000 0000 0000 0000

0x80000000

 

Long型最大值

0111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

0x7FFFFFFFFFFFFFFF

Long最小

1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

0x8000000000000000

Char型最大值

1111 1111 1111 1111

0xFFFF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值