算术运算及数组

718

一、算术运算

运算的封闭性

1. 同种类型参与运算返回同种类型

2. Byte,short,char类型java底层把它们按照int运算

3. Java中字面量的运算被javac优化了,优化为一个固定的常量

a. 注意边界风险

  

    int c=0X7fffffff;

System.out.println(Integer.toBinaryString(c)+"----"+c);

int d=0X7fffffff+1;

System.out.println(Integer.toBinaryString(d)+"----"+d);

b. 下溢出

     5/2    101/010    10.1   舍弃小数点后的1

c. 上溢出

    int f=1024*1024*1024*4+1;   //运算结果为1

因为Math属于java.lang包下的,java语言中使用java.lang中的类不需要声明

4.条件运算符

三目运算符,三元表达式

条件式?’成立传回值’:’失败传回值’

5.

&&短路与   当第一个条件为真时才判断第二个条件   &逻辑与

||  短路或       |逻辑或

~短路非

^异或

6.位运算只能用来处理整数

(int/long)

 3&5 结果是1

011&101    001

>>,<<进行移位运算的时候向左移,最低位都补0

向右移最高位正数补0,负数补1.

无符号右移>>>,高位全部补0

7.

++i            先运算再赋值 

i++            先赋值再运算

int a=1;

a=a++;

System.out.print(a);

8.

运行结果是:1

第一步:将a=1作为a++=1

第二步:a自增1a=2;

第三步:将a++的值赋给a

9.switch语句可传的值:byte,short,int,char

719

一、循环控制

For(初始化表达式;比较表达式;自增表达式){
//循环体

}

While(){
}

Do{

}while();

String str="a";

char c=str.charAt(0); //将字符串str第一个字符转换为char类型

二、break可以跳出当前的代码块

Continue跳出当次,继续下次循环

Breakcontinue可以加标签使用

三、数组

创建数组的两种方式:

1.静态创建

     Int[] array;

2.动态创建

int[] array={1,4,5,6}; //静态初始化

int[] array1=new int[4]; //动态初始化的时候需要指明数组的长度

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

Stack(栈)里放局部变量;heap(堆)里放对象

数组对象未初始化之前都是有“零”值的:

Int[] byte[] short[] long[]          0

Float[] double[]                 0.0

Char[]                         ‘\u0000’

Boolean[]                      false

String[]                        null

数组下标的最大值是数组长度减1

复制数组的方式:

A.

       int[] arr={1,4,7,9};

int[] arr1;

arr1=arr;

System.out.println(Arrays.toString(arr1));

arr1[2]=5;

System.out.println(arr[2]);

        //这种数组的赋值方式不好,因为隔离性较差

B.

       int[] arr2=new int[arr1.length];

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

arr2[i]=arr1[i];

}

System.out.println(Arrays.toString(arr1));

C.

       int[] arr1={1,23,4,5};

int[] arr3=new int[arr1.length];

System.arraycopy(arr1, 0, arr3, 0, arr3.length);

       //src   源数组

//srcPos  源数组开始复制的位置

//dest    目标数组

//destPos 目标数组开始复制的位置

//length  复制的长度

D.

int[] arr=Arrays.copyOf(arr1, arr1.length);  //是JDK1.6版本才提供的

二维数组:

       int a[][]={{2,4,5},{1,7,9},{3,6,7,8,4},{2,4}};

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

for(int j=0;j<a[i].length;j++){

 System.out.println(a[i][j]);

}

}

字符串转变成数组:

String str="ABCDEFG";

char[] chs=new char[str.length()];

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

chs[i]=str.charAt(i);

}

  char[] chs=str.toCharArray();

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值