常量、数据类型、进制转换

一、数据类型

(一)掌握常量概念

1.  定义

常量表示不能改变的数值

2.常量的分类

1.整数常量:所有整数。

2.小数常量:所有小数。

3.布尔(boolean)型常量:只有两个数值true false。

4.字符常量:将一个数字,字母或者符号用单引号( ' ' )标识。

5.字符串常量:将一个或者多个字符用双引号(“ ”)标识。

6.null常量:只有一个数值就是:null。

(二)掌握变量概念

1.定义

变量表示可能改变的数值

2.Java中变量的概念

内存中的一个存储区域

该区域有自己的名称(变量名)和类型(数据类型)

该区域的数据可以在同一类型范围内不断变化

生活中的例子:超市每个货架摆放同一类型的物品 eg:水果区域有自己的名字--水果区  数据类型--只能放水果,蔬菜不可以  值--只要是水果就可以摆放

3.变量的声明形式

声明    数据类型    变量名;

赋值    变量名  = 值;

声明并赋值

   数据类型    变量名  = 【值】;

   数据类型    变量名1  =  【值】,变量名2, 变量名3  = 值;

例如:int i = 100;

           float f ;

           f=12.3f;

           double d1=0.12,d2,d3 = 0.123;

4.变量使用步骤

第一步:声明变量,即“根据数据类型在内存申请空间”

数据类型 变量名;     int money;

第二步:赋值,即“将数据存储至对应的内存空间”

      变量名=值;   money=1000;

   第一步和第二步可以合并 

       数据类型 变量名=值;  int money=1000;

第三步:使用变量,即“取出数据使用 ” 

public class MyVariable {
    public static void main(String[] args) {
        //1.声明变量:数据类型 变量名
  //        int sal;
        //2.给变量名赋值:变量名=值
  //        sal=10000;
        //1,2合并简化
        int sal=20000;
        //3.取出数据输出
        System.out.println(sal);
    }
}

5.idea的设置

  1. 主题 Appearance-Intelj 白底黑字
  2. editor-font-size 行距
  3. editor-general-Code Completion -Match case去掉勾

 

6.变量的分类

临时变量(局部变量):方法内部声明的变量(包括参数)

成员变量(全局变量):在方法外,类体内声明的变量

7.变量使用的注意事项

1.变量的作用范围(一对{ }之间有效)

2.Java中的每一个变量使用前必须要先申请(声明),然后必须进行赋值,才能够使用,否则报错。

3.该区域的数据可以在同一类型范围内不断变化

4.在一个方法中变量名不能重复声明

注意:用来存放同一类型的常量

(三)熟练掌握Java的数据类型分类

Java语言是强类型语言,任何一个变量或常量在Java中必须有确定的数据类型;

Java语言的数据类型有两种,即基本数据类型和引用类型

 

 

 

 

(四)熟练掌握Java中各类基本数据类型的数据表示范围及初始值

1.每种数据类型在内存中占有不同的长度

计算机存储设备的最小信息单元叫“位(bit)”,又称之为“比特位”;

连续的8个位成为1个“字节(byte)”;

操作系统分配内存最少1个字节,即8 个位,而不是1个位;

长度越长,所表示的范围就越大;

类型

长度(位)

长度(字节)

表示范围

byte

8位

1字节

-128~127(-27~27-1)

short

16位

2字节

-32768~32767(-215~215-1)

int

32位

4字节

-2147483648~2147483648(-231~231-1)

long

64位

8字节

-263~263-1(-263~263-1)

float

32位

4字节

-3.403E38~3.403E38

double

64位

8字节

-1.798E308~1.798E308

char

16位

2字节

表示一个字符,如(‘a’,‘A’,‘0’,‘中')

boolean

8位

1字节

只有两个值true与false

 

byte  short int long float double

          char

boolean

2.每种具体类型都有不同的默认值

当没有为一个属性变量赋值时,会根据类型为其赋值为默认值;

注意:char的默认值是\u0000,等同于一个空字符;boolean的默认值是false

数字 默认类型是整数

小数 默认类型是double

(五)熟练掌握JAVA基本数据类型的显式与隐式数据类型转换

1.隐式转换

小转大 自动转

从表示范围小的类型转换为表示范围大的类型,可以直接转换,称为隐式转换

byte b=1;

int i=-2;

//  表示范围小的可以直接转换为表示范围大的类型

 i=b;

 b=i; //报错

2.显式转换

大转小,手动转

从表示范围大的类型转换为表示范围小的类型,需要强制转换,称为显式转换

公式:小类型 变量名=(小类型)大类型变量名

 

byte b=1;

int i=-2;

int c;

// 表示范围大的不可以直接转换为转换范围小的类型,需要强制转换,称为显式转换

b=(byte)i;

c=(char)i;

int i=2
System.out.println("i = " + i);
  //大转小:小类型 变量名=(小类型)大类型变量
 byte b=(byte)i;
 //输出
  System.out.println("b = " + b);

3.类型转换的前提

虽然类型之间可以进行强制的隐式转换,但是也需要有一定的前提;

数值类型和boolean类型之间就不能转换;强制也不可以;

byte b=1;

  boolean b2=false;

// "风马牛不相及"的boolean和数值类型,强制也不能转换;

    b2=b; (编译错误)

b2=(boolean)b; (编译错误)

4.可以使用+、-、*、/ 对基本数据类型的数值进行运算

注意:运算后的数据类型可能会发生变化或者报错;

1) int x=3;

        x=3+5; //ok

 

2) int x=3;

    byte b=5;

     x=x+b;//ok

 

3)byte b=3;

    b=b+4; //error

 

4) byte b=4;

b=3+7; //ok

5.课堂练习

一个比较特殊的转换;

System.out.println('a')与System.out.println('a'+1) 的区别;

不报错

a

98  自动类型提升为int

 

 

 

 

   ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCⅡ)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。

  ASCII第一次以规范标准的型态发表是在1967年,最后一次更新则是在1986年,至今为止共定义了128个字符,其中33个字符无法显示(这是以现今操作系统为依归,但在DOS模式下可显示出一些诸如笑脸、扑克牌花式等8-bit符号),且这33个字符多数都已是陈废的控制字符,控制字符的用途主要是用来操控已经处理过的文字,在33个字符之外的是95个可显示的字符,包含用键盘敲下空白键所产生的空白字符也算1个可显示字符(显示为空白)。


6.ASCII控制字符

二进制

十进制

十六进制

缩写

可以显示的表示法

名称/意义

0000 0000

0

00

NUL

空字符(Null)

0000 0001

1

01

SOH

标题开始

0000 0010

2

02

STX

本文开始

0000 0011

3

03

ETX

本文结束

0000 0100

4

04

EOT

传输结束

0000 0101

5

05

ENQ

请求

0000 0110

6

06

ACK

确认回应

0000 0111

7

07

BEL

响铃

0000 1000

8

08

BS

退格

0000 1001

9

09

HT

水平定位符号

0000 1010

10

0A

LF

换行键

0000 1011

11

0B

VT

垂直定位符号

0000 1100

12

0C

FF

换页键

0000 1101

13

0D

CR

归位键

0000 1110

14

0E

SO

取消变换(Shift out)

0000 1111

15

0F

SI

启用变换(Shift in)

0001 0000

16

10

DLE

跳出数据通讯

0001 0001

17

11

DC1

设备控制一(XON 启用软件速度控制)

0001 0010

18

12

DC2

设备控制二

0001 0011

19

13

DC3

设备控制三(XOFF 停用软件速度控制)

0001 0100

20

14

DC4

设备控制四

0001 0101

21

15

NAK

确认失败回应

0001 0110

22

16

SYN

同步用暂停

0001 0111

23

17

ETB

区块传输结束

0001 1000

24

18

CAN

取消

0001 1001

25

19

EM

连接介质中断

0001 1010

26

1A

SUB

替换

0001 1011

27

1B

ESC

跳出

0001 1100

28

1C

FS

文件分割符

0001 1101

29

1D

GS

组群分隔符

0001 1110

30

1E

RS

记录分隔符

0001 1111

31

1F

US

单元分隔符

0111 1111

127

7F

DEL

删除

7.ASCII可显示字符

二进制

十进制

十六进制

图形

0010 0000

32

20

(空格)(␠)

0010 0001

33

21

!

0010 0010

34

22

"

0010 0011

35

23

#

0010 0100

36

24

$

0010 0101

37

25

 %

0010 0110

38

26

&

0010 0111

39

27

'

0010 1000

40

28

(

0010 1001

41

29

)

0010 1010

42

2A

*

0010 1011

43

2B

+

0010 1100

44

2C

,

0010 1101

45

2D

-

0010 1110

46

2E

.

0010 1111

47

2F

/

0011 0000

48

30

0

0011 0001

49

31

1

0011 0010

50

32

2

0011 0011

51

33

3

0011 0100

52

34

4

0011 0101

53

35

5

0011 0110

54

36

6

0011 0111

55

37

7

0011 1000

56

38

8

0011 1001

57

39

9

0011 1010

58

3A

:

0011 1011

59

3B

;

0011 1100

60

3C

0011 1101

61

3D

=

0011 1110

62

3E

0011 1111

63

3F

?

 

 

二进制

十进制

十六进制

图形

0100 0000

64

40

@

0100 0001

65

41

A

0100 0010

66

42

B

0100 0011

67

43

C

0100 0100

68

44

D

0100 0101

69

45

E

0100 0110

70

46

F

0100 0111

71

47

G

0100 1000

72

48

H

0100 1001

73

49

I

0100 1010

74

4A

J

0100 1011

75

4B

K

0100 1100

76

4C

L

0100 1101

77

4D

M

0100 1110

78

4E

N

0100 1111

79

4F

O

0101 0000

80

50

P

0101 0001

81

51

Q

0101 0010

82

52

R

0101 0011

83

53

S

0101 0100

84

54

T

0101 0101

85

55

U

0101 0110

86

56

V

0101 0111

87

57

W

0101 1000

88

58

X

0101 1001

89

59

Y

0101 1010

90

5A

Z

0101 1011

91

5B

[

0101 1100

92

5C

\

0101 1101

93

5D

]

0101 1110

94

5E

^

0101 1111

95

5F

_

 

 

二进制

十进制

十六进制

图形

0110 0000

96

60

`

0110 0001

97

61

a

0110 0010

98

62

b

0110 0011

99

63

c

0110 0100

100

64

d

0110 0101

101

65

e

0110 0110

102

66

f

0110 0111

103

67

g

0110 1000

104

68

h

0110 1001

105

69

i

0110 1010

106

6A

j

0110 1011

107

6B

k

0110 1100

108

6C

l

0110 1101

109

6D

m

0110 1110

110

6E

n

0110 1111

111

6F

o

0111 0000

112

70

p

0111 0001

113

71

q

0111 0010

114

72

r

0111 0011

115

73

s

0111 0100

116

74

t

0111 0101

117

75

u

0111 0110

118

76

v

0111 0111

119

77

w

0111 1000

120

78

x

0111 1001

121

79

y

0111 1010

122

7A

z

0111 1011

123

7B

{

0111 1100

124

7C

|

0111 1101

125

7D

}

0111 1110

126

7E

~

 

 

==========================================

GB2312编码适用于汉字处理、汉字通信等系统之间的信息交换

1)基本集共收入汉字6763个和非汉字图形字符682个

2)于人名、古汉语等方面出现的罕用字,GB 2312不能处理

====================================

GBK

1)2W多汉字

2)有加了繁体

========================================

GB18030

1)支持中国国内少数民族(如藏、蒙古、傣、彝、朝鲜、维吾尔文等)的文字,不需要动用造字区。

======================

Unicode:国际组织编码,容纳世界上所有的文字和符号的字符编码

Unicode 是「字符集」

UTF-8 是「编码规则」

 

(1)包括UTF-32编码

每个字符用一个int来表示  abcd 需要占用4个int

特点:简单,太浪费空间

 

(2)UTF-16编码

特点:它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。

 

(3)UTF-8 编码

==================

ascii:把所有的字母的大小写,各种符号用二进制来表示,1bytes代表一个字符

 

Unicode:为了统一世界各国语言的不同,统一用2个bytes代表一个字符,特点:速度快,但浪费空间

 

utf8:为了改变Unicode的这种缺点,规定一个英文字符用一个字节表示,一个中文字符用三个字节表示,特点:节省空间,速度慢

 

gbk:是中文的字符编码,用2个字节代表一个字符

8.课堂案例

1. 输出Java课考试最高分:98.5

    输出最高分学员姓名:张三

    输出最高分学员性别:男

System.out.println("最高分姓名:张三");
System.out.println("最高分性别:");
System.out.println("最高分分数:98.5");

 

 

 

 

2.使用变量存储以下MP3信息,并打印输出

   品牌(brand):爱国者F928

   重量(weight):12.4

   电池类型(type):内置锂电池

   价格(price):499

String brand="爱国者F928";
double weight=12.4;
String type="内置锂电池";
double price=499;
System.out.println("品牌:"+brand);
System.out.println("重量:"+weight);
System.out.println("电池类型:"+type);
System.out.println("价格:"+price);

品牌:爱国者F928

重量:12.4

电池类型:内置锂电池

价格:499.0

 

 

 

 

 

 

 

 

 

 

10.数据类型转换总结

  如果 byte、short和char数据数据类型的值相计算,计算结果就是int型

       如果一个操作数最大范围的数据类型是long型,计算结果就是long型;

       如果一个操作数最大范围的数据类型是float型,计算结果就是float型;

       如果一个操作数最大范围的数据类型是double型,计算结果就是double型

(六)熟悉进制转换

1.定义

进制是一种记数方式:称进位记数法,可以用有限的数字符号代表所有的数值。

2.进制包括

十进制:人类天然选择了十进制,进位制中,十进制是使用最为普遍的一种。

                   0-9 ,满10进1.

二进制:它由两个数码0,1组成。

                  0,1 ,满2进1 

八进制: 二进制数据的书写和阅读不方便,出现了八进制

                       0-7 ,满8进1.      用0开头表示。

十六进制:逢十六进一.

                      数字0~9   A-F组成(10~15)  用0x开头表示。

3.进制转换

进制之间是可以相互转换的

1.十进制位制转二进位制

 

 

 

2.十进制位制转八进位制

 

 

 

3.十进制转八进位制、十进制、十六进制

 

           

 

 

 

4.十六进制位制转十进制、二进制

 

 

5.八进制位制转二进位制

6.八进制位与十六进制位

 

7.小数之间的进制转换

(二)了解引用数据类型

在Java语言中,除了上节学习到的8种基本数据类型,其他类型都是引用类型: 类、接口、枚举、注解、数组

引用类型使用=赋值;

字符串可以用String类型来声明

String name="张三";

  String s="";

  String s=null;

 System.out.println("name = " + name);

 

Java
语言中,除了上节学习到的
8
种基本数据类型,其他类型都是引用类型
引用类型使用
=
赋值;
字符串可以用
String
类型来声明
Java
语言中,除了上节学习到的
8
种基本数据类型,其他类型都是引用类型
引用类型使用
=
赋值;
字符串可以用
String
类型来声明
Java
语言中,除了上节学习到的
8
种基本数据类型,其他类型都是引用类型
引用类型使用
=
赋值;
字符串可以用
String
类型来声明
Java
语言中,除了上节学习到的
8
种基本数据类型,其他类型都是引用类型
引用类型使用
=
赋值;
字符串可以用
String
类型来声明
Java
语言中,除了上节学习到的
8
种基本数据类型,其他类型都是引用类型
引用类型使用
=
赋值;
字符串可以用
String
类型来
posted @ 2022-04-20 20:54  MM&WW  阅读(25)  评论(0编辑  收藏  举报