java数组运算符_Java语言中学习数组、运算符、流程控制的一些理解

一、数组

1、数组的概念及作用

数组是相同数据类型的元素的集合;

数组本身是引用数据类型,即对象。但是数组可以存储基本数据类型,也可以存储引用数据类型。

例如:

int [] a = new int [] {1,2,3,4,5,6,};

String [] s = new String [] {"小兔","小小兔","小小小兔",} ;

Employee [] e = Employee [10];(Employee是自定义类)。

2、数组的声明

数组的声明有两种方式:

数据类型 [] 数组名字     例如:int [] a;

数据类型 数组名字 []     例如:int a [];

注:在JAVA语言中两种声明方法没有任何区别,但是建议大家使用第一种,避免混淆a的数据类型。

数组在声明后还只是一个空指针,不能使用,要使用必须创建。

3、数组的创建

数组的创建有三种方式:

1)//声明数组的同时,根据制定的长度分配内存,但数组中元素值都为默认的初始化值

char [] chAry = new char [10];

2)//声明数组并分配内存,同时将其初始化

int [] ary1 = new int [] {1,2,3,4,5};

3) //与前一种方式相同,仅仅只是语法相对简略

int [] ary2 = {1,2,3,4,5};

从另一角度,数组创建可以分为动态和静态两种

1)动态创建数组(没有为元素赋值,可以结合for循环进行赋值)

char [] chAry = new char [10];

2)静态创建数组,在创建的时候,即为每个元素赋初值

int [] ary1 = new int [] {1,2,3,4,5};

数组的长度:length属性

int [] b1 =new int [] {1,2,3,4,5,6,7};

System.out.println(b1.length);

注:数组的长度是属性,String的长度是length();

创建数组的时候必须指定数组长度,而且一经定义则不允许改变。

数组长度虽然是7,但是在内存中实际給8个位置,另一个存储7.

数组之间的赋值

在Java中,语法上可以将数组的值赋给另一个数组,但实际得到的效果是两个数组引用指向同一块内存。

int [] ary1 = {1,2,3,4,5,};

int [] ary2;

ary2 = ary1:

上面两个数组的引用指向同一块内存。

public class ArrayDemo {

public static void main(String[] args) {

int[] ary1 = {2, 4, 6, 8, 10}; //声明并初始化数组1

int[] ary2; //声明数组2 ary2 = ary1; //将数组1赋值给数组2

ary2[3] = 1024; //通过数组2修改其中一个元素的值

//打印出数组1中的元素 System.out.println("数组1中的元素:");

for (int i = 0; i < ary1.length; i++) {

System.out.println(ary1[i]);

}

//打印出数组2中的元素 System.out.println("数组2中的元素:");

for (int i = 0; i < ary2.length; i++) {

System.out.println(ary2[i]);

}

}

}

运行结果:数组1中的元素 2 4 6   for循环输出为1024

数组2中的元素 2 4 6   for循环输出为1024

二、运算符

按照功能分,Java中的运算符可以分为四类

算术运算符

位运算符

比较运算符

逻辑运算符

除了== 及 !=、+外,其他运算符都是针对基本数据类型进行运算,==及!=可以对基本数据类型及引用类型进行运算,+还可以对字符串进行连接操作。

1、算术运算符

单目:+(取正) -(取负)  ++(自增1) --(自减1)

双目:+ - * / %(取余)(+还可以连接字符串)

三目:a > b ? ture:false

说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"

2、位运算符

位运算符:(先转化成二进制再进行运算)

与(&)、非(~)、或(|)、异或(^)

& 全部是1,运算结果是1,其他的都是0;

~ 按位取反+1,加1后取反(取负);

| 只要有一个是1,结果就是1;

^ 相同的结果是0,不同的结果是1;

移位运算符:<>(有符号右移)

左移1位相当于乘以2,右移1位相当于除以2,比乘除运算效率更高

例如:

int a = 8, c;

c = a >> 2;

原来的: (8的二进制值是)   0000 1000

移动后:  (c的值为2)         0000 0010

3、比较运算符

==(等于号) ,(大于号),<=(小于等号),>=(大于等号),!=(不等号);

==与!=比较基本数据类型是比较值,比较引用类型是虚地址;

除了==  !=外,都只能比较基本数据类型;

注:比较运算符的返回值为ture或false。

4、逻辑运算符

用于连接两个boolean类型的表达式

&& (双与) 、|| (双或) 、&(与)、|或)、^(异或)、!(非运算)

注意事项:

1)&&与&的运算结果是相同的,对于&而言无论左边为什么值,右边都参与运算;

对于&&来说,只要左边为false右边就不再运算,直接返回false。

2)||与|的运算结果是相同的,对于|而言无论左边为什么值,右边都参与运算;

对于||来说,只要左边为true右边就不再运算,直接返回true。

3)&&和||可以理解为物理上的短路,实际中多用&&及||。

三、Java中的流程控制

顺序流程

分支流程

循环流程

1、顺序流程

输入-----运算处理-----输出

2、分支流程

1)条件语句if....

条件表达式可以是任何一种逻辑表达式;

如果表达式值为true,则执行花括号的内容后,再执行后面的语句;

如果表达的值为false,则直接执行后面的语句;

如果,大括号只有一条语句,则可以省略大括号(推荐不省略);

2)条件语句 if..... else.....

语法格式—if.....case....

if(表达式){

执行语句块1

}else{

执行语句块2

}

如果表达式值为false,则执行else的语句块;

3)条件语句 — switch....case   (case的取值是具体的一个值,不能有重复的,是常量)

语法格式

switch(表达式){

case取值1:语句块1

....

case取值n:语句块n

default:语句块n+1

}

表达式的值只可以接受int、byte、char、short型、枚举,JDK1.6以后String也可以,不接受其他类型的值,不允许有重复的case取值;

switch一旦碰到第一次case匹配,程序就会跳转到这个标签位置;

开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配,直到碰到break语句为止;

3、循环流程

1)循环语句— while(循环体在whlie中)

while(条件表达式){

执行语句块;

}

2)循环语句 — do…while  至少会执行一次循环(循环体在do中)

do{

执行语句块;

}whlie(条件表达式);

3)循环语句 — for

for(初始化表达式;循环条件表达式;循环后的操作表达式){

执行语句块;

}

4、循环的中断语句

中断语句

多重循环中可以使用标号,指定中断的具体循环

在使用循环语句时,只有循环条件表达式的值为false时,才能结束循环。有时,我们想提前中断循环,要实现这一点,只需要在循环语句块中添加break或continue语句

1)中断语句 — break

break语句用于终止某个语句块的执行。用在循环语句体中,可以强行退出循环(整个循环)。

"break;"语句:可以出现在while、do…while、for、switch语句体中。

"break label”语句 :可以出现在任何语句体中。多数还是使用在循环中。

2)中断语句 — continue

continue语句用在循环语句体中,用于终止某次循环过程,跳过循环体(跳出本次循环)中continue语句下未执行的循环,开始下一次循环过程。

"continue;” 语句:只能出现在循环语句while、do…while、for中。

优先级列表

优先级运算符简介结合性

1

[ ]、.、( )

方法调用,属性获取

从左向右

2

!、~、 ++、 --

一元运算符

从右向左

3

* 、/ 、%

乘、除、取模(余数)

从左向右

4

+ 、 -

加减法

从左向右

5

<>、 >>>

左位移、右位移、无符号右移

从左向右

6

< 、<= 、>、 >=、 instanceof

小于、小于等于、大于、大于等于,

对象类型判断是否属于同类型

从左向右

7

== 、!=

2个值是否相等,2个值是否不等于。

下面有详细的解释

从左向右

8

&

按位与

从左向右

9

^

按位异或

从左向右

10

|

按位或

从左向右

11

&&

短路与

从左向右

12

||

短路或

从左向右

13

?:

条件运算符

从右向左

14

=、 += 、-= 、*= 、/=、 %=、 &=、 |=、 ^=、 、>= 、>>=

混合赋值运算符

从右向左

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值