Java碎片化学习-语法基础

java

最后更新于:2022-01-24

Java的数据类型分为2大类:

  • 基本数据类型
  • 引用数据类型

1.1 Java 8种基本数据类型

Java 8种基本数据类型可以分为3类:

  • 数字型:short,int,long,float,double
  • 字符:byte,char
  • 布尔:boolean

数据类型根据【存储字节数】和【是否含有符号】,具有不同的取值范围

类型存储字节大小最小值最大值默认值
byte8-128+1270
char160+65535'\u0000'
short16-32768+327870
int32-2147483648+2147836470
long64-9,223,372,036,854,775,808+9,223,372,036,854,775,8070L
float321.4 E-453.402,823,5 E+380.0f
double644.9 E-3241.797,693,134,862,315,7 E+3080.0d
boolean---false

使用Java基本数据类型的常见错误:

  • 内存溢出错误
  • 赋值类型错误

1.2 Java引用数据类型

1.2.1 字符串

Java字符串属于引用数据类型。

字符串是由【零个】或者【多个字符】组成的【有限序列】。

创建字符串

String类型引导的变量,对变量记性字符串引用类型赋值,如

String name = "";

创建多行字符串

使用三引号来创建多行字符串,也叫【文本块】,如:

String str = """

你好

我好

大家好

"""

三引号引导的文本块时,三引号要与所包裹的字符串分行书写,否则语法错误

字符串拼接

使用加法符号+对字符串进行拼接操作

只读特性

字符串属于只读的量,拼接出来的字符串,也属于创建了新的字符串对象,而非改变原有的对象

1.2.2 数组

数组是相同类型的数据,按照顺序组成的一种引用数据类型。

数组的声明

两种方式声明一个Java数组:

  1. 方括号在数据类型后,DataType[] arrayName;
  2. 方括号在数组名称后,DataType arrayName[];

DataType是数组要存放元素的数据类型,比如基本数据类型,arrayName是数组名称,遵守变量命名规范

数组的创建

数组的创建,需要先声明数组变量 ,然后用new关键字创建数组

DataType[] arrayName;

arrayName = new DataType[数组长度];

也可以

DataType[] arrayName = new DataType[数组长度];

数组的初始化

数组创建后,所有元素都初始化为元素类型的默认值。

也可以通过【静态初始化】和【动态初始化】的方式,对数组元素进行初始化

数组元素的索引

通过数组名[下标]的方式,对数组元素进行索引。

下标从0开始计数,且下标不能超过下标最大值

数组元素修改

通过索引数组元素,【动态初始化】的方式就能够修改数组元素

数组长度

数组对象内置属性length可以获取数组长度

arrayName.length //数组长度

因为数组具有一组元素,元素操作又基本相同,所以可以跟循环结构结合使用,使用循环对数组进行各种操作

多维数组

跟一维数组基本相同,只是下标数多了

2.Java运算符

运算表达式 由【操作数】和【操作符】组成。操作符也叫做运算符。

Java的运算符号有6大类:

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 赋值运算符
  • 位运算符
  • 其他运算符

2.1 算术运算符

算术运算符包括5类运算,7个运算符

  • 加: + ++
  • 减:- --
  • 乘:*
  • 除:/
  • 余:%

2.2 关系运算符

关系运算,也是比较运算,包括3类运算,6个运算符

  • 等于/不等于 ==/!=
  • 大于/大于等于 >/>=
  • 小于/小于等于 </<=

大于、大于等于,小于,小于等于,比较的只能是基本数据类型,而等于,不等于既可以比较基本数据类型,也可以比较引用数据类型

2.3 逻辑运算符

逻辑运算就是【与】【或】【非】的计算

  • 逻辑【与】:&&,当且仅当两个操作数都为真,条件才为真
  • 逻辑【或】:||,有一个为真,条件就为真
  • 逻辑【非】:!,反转逻辑状态

逻辑运算有个短路运算行为,也就是只有在需要的时候才会进行第二个操作数的真假判断

2.4 赋值运算符

赋值运算有5个运算符:

  • =
  • +=
  • -=
  • *=
  • /=

=是直接赋值,其他操作是左边操作数和右边操作数,先进行算术运算,然后赋值给左边操作数

2.5 位运算符

Java提供位运算符,主要有7个运算符

  • 按位【与】:&,相对应位都是1,结果是1;否则结果是0
  • 按位【或】:|,相对应位都是0,结果为0;否则结果是1
  • 按位【异或】:,相对应位值相同,结果位0,否则位1
  • 按位【取反】:~,按位反转操作数的每一位,0变为1,1变为0
  • 左位移:<<,左操作数按位左移右操作数指定的位数
  • 右位移:>>,左操作数按位右移右操作数指定的位数
  • 零填充右移:>>>,左操作数按右操作数指定的位数右移,移动得到的空位补零

2.6 其他运算符

2.6.1 条件运算符

也叫三元运算符。

变量 = (布尔表达式)?值1:值2

如果布尔表达式为真,就把值1赋值给变量;如果布尔表达式为假,就把值2赋值给变量

2.6.2 instanceof运算符

类型比较运算。检查对象是否是一个特定的类型(类,接口)

boolean VarBoolean = Var instanceof Type(class,interface)

如果instanceof左侧的变量Var所指向的对象,是intanceof右侧的类或者接口的一个对象,那么结果VarBoolean为真,否则VarBoolean为假

2.7 运算符优先级

类别操作数关联性
后缀操作() [] .左到右
一元操作++ - ! ~右到左
乘除余*/%左到右
加减+-左到右
移位>> >>> <<左到右
关系大于> 大于等于>= 小于< 小于等于<=左到右
相等不等等于== 不等于!=左到右
位与&左到右
位异或^左到右
位或|左到右
&&左到右
|左到右
条件?:右到左
赋值= += -= *= /= %= >>= <<= &= ^=

3.Java表达式,返回值,语句块

程序源码由多条语句或者多个语句块组成。而语句由表达式和语句分隔符组成。

表达式由数字,运算符,数字分组符号(括号),自有变量,约束变量等能求得数值的有意义的排列组合构成。

约束变量是表达式中已经被指定的数值,而自有变量则可以在表达式之外另行指定数值

4.语句控制结构

4.1 条件语句

条件语句通过判断给定的条件的真假,来控制程序的执行。

4.1.1 if引导条件语句

由if引导的条件语句,实际上的逻辑是:对if后面括号内部的表达式进行计算,得到的表达式的结构如果不为0,或者不为false,就执行花括号内部的语句

这个表达式可以是:布尔值,布尔运算,条件表达式,最后返回一个真值,if对这个真值进行判断,不为0或者不为false,则执行花括号内部语句

if (表达式){

当条件成立时,要执行的语句

}

if语句根据【特殊情况】【互斥情况】【多种情况】分为几种结构,包括if语句的嵌套

//特殊情况

if (表达式){

要执行语句

}

//互斥情况

if (表达式){

要执行的语句

}

else {

要执行的语句

}

//多种情况

if (表达式) {

要执行的语句

}

else if (表达式) {

要执行的语句

}

else {

要执行的语句

}

//嵌套情况

if (表达式){

if (表达式) {

要执行的语句

}

else {

要执行的语句

}

}

4.1.2 switch引导条件语句

switch效果等同于if引导的【多种情况】,其结构如下:

switch (变量) {

case 值1:

要执行的语句

break;

case 值2:

要执行的语句

break;

default:

要执行的语句;

}

switch后面的变量,其类型可以为:byte,short,int,char,或者String

4.2 循环语句

4.2.1 while循环

while (表达式){

要执行的语句

}

while首先判断表达式的计算结果是否为true,如果是true,就执行花括号内部的语句,否则不执行语句

4.2.2 do...while循环

do{

要执行的语句

}while(表达式)

无论while后面的表达式是否为true,都要先执行一下do花括号内部的语句

4.2.3 for循环

for (变量声明;条件表达式;迭代语句){

要执行的语句

}

for循环属于一种遍历。在for后面的括号内部,由三个语句:

  • 变量声明语句
  • 条件表达式
  • 迭代语句

for无条件遍历

fot(;;){

要执行的语句

}

4.2.4 for each循环

4.2.5 break和continue打破循环

两者都可以用来打破循环,区别在于:

  • break 跳出循环语句块,执行循环语句块以后的语句
  • continue跳过当次循环要执行的语句,继续执行下一次循环

以上是 Java碎片化学习-语法基础 的全部内容, 来源链接: utcz.com/z/392076.html

回到顶部