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

一、数据类型

(一)掌握常量概念

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  阅读(131)  评论(0)    收藏  举报