文章目录

Day 2

2019年3月24日。
这是我学习Java的第二天。
这一天,我学到了以下的知识。

变量

在程序运行过程当中,其值可以发生变化的值。

  1. 变量,要有数据类型的规定。
  2. Java中变量的定义格式:数据类型 变量名 = 值。数据类型就是用来限定这个值的变化范围,限定是什么样类型的值。
  3. 变量其实就是在内存中开辟的一块空间,用来存储数据,可以通过数据类型声明。
  4. 变量首字母小写。
  5. 变量在使用之前必须赋值。
  6. 重新赋值,会覆盖掉旧值。
  7. 在同一个作用域里面,不能定义两个同名变量(作用域:就是一堆{}大括号所括 的范围)。

数据类型

数据类型分为:引用数据类型、基本数据类型。
基本数据类型如下所示:

基本数据类型

类型名

字节数

取值范围

整型

byte

1

-128~127

整型

short

2

Java学习记录 Day2(变量、数据类型、运算符)_数据类型~Java学习记录 Day2(变量、数据类型、运算符)_Java_02-1

整型

int

4

Java学习记录 Day2(变量、数据类型、运算符)_Java_03~Java学习记录 Day2(变量、数据类型、运算符)_Java_04-1

整型

long

8

Java学习记录 Day2(变量、数据类型、运算符)_运算符_05~Java学习记录 Day2(变量、数据类型、运算符)_强制类型转换_06-1

浮点型

float

4

\

浮点型

double

8

\

布尔型

boolean

1

\

字符型

char

2

\

自动类型转换

byte、short、char在参与数学运算时,会自动提升为int类型。如果还有long、float、double参与运算,则会相应的提升为long、float、double。布尔类型不参与数学运算。byte、short、char之间不发生转换。

强制类型转换

强制将一个数据,转换成我们要的数据类型。强制类型转换,有可能会发生精度损失的问题(因为会丢掉多余字节)。

常量优化机制

多个常量相加时,它会先算出结果,看有没有在这个数据类型的范围内,如果不在就会报错。

面试题:char可以存储一个汉字吗?

char可以存储一个中文汉字,但是需要看编码格式。
char占两个字节。在GBK编码、ANSI编码中一个汉字占用两个字节,而utf-8编码中一个汉字占用三个字节。所以在GBK或者ANSI编码中,char可以存储一个中文汉字。而在utf-8中,char不可以存储一个汉字。

字符参与运算

会去对照ASCII表,且空格也是字符。
为了便于查询,以下列出ASCII码表:第128~255号为扩展字符(不常用)

ASCII码

键盘

ASCII 码

键盘

ASCII 码

键盘

ASCII 码

键盘

27

ESC

32

SPACE

33

!

34

"

35

#

36

$

37

%

38

&

39


40

(

41

)

42

*

43

+

44


45

-

46

.

47

/

48

0

49

1

50

2

51

3

52

4

53

5

54

6

55

7

56

8

57

9

58

:

59

;

60

<

61

=

62

>

63

?

64

@

65

A

66

B

67

C

68

D

69

E

70

F

71

G

72

H

73

I

74

J

75

K

76

L

77

M

78

N

79

O

80

P

81

Q

82

R

83

S

84

T

85

U

86

V

87

W

88

X

89

Y

90

Z

91

[

92

\

93

]

94

^

95

_

96

`

97

a

98

b

99

c

100

d

101

e

102

f

103

g

104

h

105

i

106

j

107

k

108

l

109

m

110

n

111

o

112

p

113

q

114

r

115

s

116

t

117

u

118

v

119

w

120

x

121

y

122

z

123

{

124


125

}

126

~

+(加号)的运用

  1. 可以当做一个数字运算符来用,起到相加的作用。
  2. 当加号运算两端只要任意一端是一个字符串,那么加号就起连接符的作用,就会将两端的内容拼接起来,形成一个新的字符串。

运算符

对常量或变量进行操作的符号。
运算符的分类:数学运算符,赋值运算符,比较运算符,逻辑运算符,三元运算符,位运算符。

  1. 数学运算符

符号

作用

+

加法

-

减法

*

乘法

/

除法

%

取余

++

自增1


自减1

需要注意的是:

++、–在单独使用时,在前或在后都一样。而在混合使用时。++/–在前,是先运算再使用;++/–在后,是先使用再运算。

  1. 赋值运算符

符号

作用

=

赋值

+=

加等于(a += b等价于a = a + b)

-=

减等于(a -= b等价于a = a - b)

*=

乘等于(a *= b等价于a = a * b)

/=

除等于 (a /= b等价于a = a / b)

%=

模等于(a %= b等价于a = a % b)

需要注意的是:

+=、-=、*=、/=会自动帮你强制类型转换,它会判断运算完的结果在不在这个数据类型的范围内,如果不在会自动强制转换。

  1. 比较运算符

符号

作用

>

大于

>=

大于等于

<

小于

<=

小于等于

==

等于

!=

不等于

需要注意的是:

比较运算符的运算结果是布尔类型(即true或false)。

  1. 逻辑运算符

符号

作用

&






^

异或

&&

逻辑与

丨丨

逻辑或

需要注意的是:

  • 逻辑运算符的运算结果是布尔类型(即true或false)。
  • &两端都需要运算,&&只要左端为false,右端不需要运算(为了代码的运行效率,右端无论是true还是false都不影响最后结果(false))。
  • 丨两端都需要运算,丨丨只要左端为true,右端不需要运算(为了代码的运行效率,右端无论是true还是false都不影响最后结果(true))。
  1. 三元运算符
    三元运算符格式如下:
表达式?结果1:结果2;

需要注意的是:

  • 表达式的值为ture,返回结果1,;表达式的值为false,返回结果2。
  • 三元表达式可以嵌套,但尽量不要嵌套,会影响代码的阅读性。
  1. 位运算符
    位运算符是直接对二进制补码进行计算,因为使用的不多,故不再详述。

知识点总结

  1. 原码、反码、补码
  2. 变量
  3. 数据类型
  4. 自动类型提升、强制类型转换
  5. 运算符
  6. 运算符的优先级(()是最优先的)