java学习笔记2

一、

通过代码将两个变量的值进行交换的方法。
		//通过第三个变量交换
        int a=20;
        int b=80;
        System.out.println("a="+a+",b="+b);
        int temp=a;
        a=b;
        b=temp;
        System.out.println("a="+a+",b="+b); 
 //加法交换
        a=11;
        b=22;
        a=a+b; //a=33 b=22
        b=a-b; //a=33 b=11
        a=a-b; //a=22 b=11
        System.out.println("a="+a+",b="+b);
 //异或交换(相同为0,不同为1)
        a=11;
        b=22;
        a=a^b; //a=29 b=22
        b=a^b; //a=29 b=11
        a=a^b; //a=22 b=11

二、

接上一篇博客

运算符:位运算
  1. 按位与 & A&B

将A和B转成二进制 右侧对齐上下比较,两者都为1,结果为1,否则为0.

  1. 按位或运算 | A|B

将A和B转为二进制,右侧对齐上下比较,两者有一个1结果即为1,两者都为0结果才为0.

  1. 按位异或运算 ^ A^B

将A和B转为二进制,右侧对齐上下比较,两者不同则为1,相同则为0.

  1. 反码运算(~) ~A

将二进制中0换成1,1换成0.

  1. 移位运算

(<<)向左移位放大倍数

result=3<<2;
System.out.println(result);//24个0+00000011变成24个0+00001100,结果为12

(>>)左侧补符号位,-1往右移位永远是-1

result=-1>>800;//右移800位
System.out.println(result);//1+23个0+0000001反码为1+23个1+11111110补码为1+23个1+11111111,右移800位,左面补符号位24个1+11111111,根据补码求原码,数据位取反加一,1+31个0加1=1后面30个0再跟个1,结果还为-1。

(>>>)往右移位,空出来的位置补0

result=-1>>>1;
System.out.println(result);//1+23个0+00000001反码为1+23个1+11111110补码为1+23个1+11111111,右移一位,左面补0,0+31个1,根据补码求原码,数据位取反加一,0+31个1加1=01后面31个0,结果为2^31=2147483647。
  1. & | 也可以对boolean进行运算,得到Boolean值
    &是按位与运算符,&&是逻辑运算符,两者运算方式不同,但是可以得到相同结果,&没有短路现象,&&有短路现象。
		boolean bool=true&false;
        int a=12,b=12;
        bool=a++<12&&b++>12;
        System.out.println(bool);
  1. 赋值运算符 = += -= *= /= %=

a=a+2;意思相同但不相等,不能将int赋值给byte

  1. 三元运算 A?B:C A如果为true取B,false取C
int result=12>34?11:33;
System.out.println(true?3:4.0);//结果为3.0,只要double参与,结果为double。

三、

流程控制语句
  1. else if 如果条件匹配,下面的else if 不再执行,与if代码块不同

写多个if语句时,尽量让条件严格的放在上面,减少重复判断造成的资源浪费

  1. swich case
  1. 匹配某一个量的值,不能做范围判断,如果匹配到某个case,就从这个case开始执行,运行到break,continue或代码块结束才退出,所有case项都没有匹配成功,才运行default。
  2. case项之间或default的顺序可以是错乱的,但是执行顺序不会乱。
  3. swich可以匹配的类型byte short int char String Enum(枚举)六种类型。
  1. 循环 while for
  1. while(循环条件){
    循环体
    }
    如:打印abcd
    i=‘a’;
    while(i<‘d’){
    System.out.println((char)i);
    i++;
    }
  1. do…while至少执行一次
  1. for(计数器;循环条件;计数器自增)
    for循环适用于知道需要循环多少遍的情况。

在循环中使用break退出所在的循环体,continue语句则是不再执行此语句下面的语句,继续下一次循环。

  1. 跳出多重循环

利用标签跳出

a:for( ; ; ){
for( ; ; ){
break a;
}
}

利用改变布尔变量导致判断逻辑改变跳出

boolean bool=true;
a:for( ;bool&&; ){
for( ;bool&&; ){
for (int bb=0;bool&&bb<100;bb++){
if(bb==50){
bool=false;
}
}
}
}

  1. 死循环和无限循环

死循环 没有结束循环的条件,下面不能写其他代码

while(true){}//死循环

无限循环 结束循环的条件永远达不到,可以编写其他代码

int a=0;
while(a<1000){
	 a--;
 } //无限循环

四、

数组
  1. 定义:数组是一种有序的元素序列,它包含有限个类型相同的变量。这些变量通过一个共同的名称(即数组名)进行集合命名,每个变量称为数组的一个分量或元素。

1,只能存放指定类型的数据
2,数组的长度是不可变的

  1. 数组的声明
		//静态声明
        int[] arr = {13, 25, 37};//只有在声明并赋值时才能这样使用
        int[] arrA = new int[]{23, 45};
        //动态声明
        int[] arrB = new int[4];
  1. 使用数组中的元素

下标 从0开始依次增加,数组下标不可越界,否则报错。

//设置元素的数据
arr[0] = 99;
//获取数组长度
System.out.println(arr.length);
//打印数组中所有元素
int i = 0;
for (i = 0; i < arr.length; i++) {
   System.out.println(arr[i]);
   }
  1. 二维数组,相当于一维数组嵌套了一个数组
//二维数组的限定   一维数组的个数不可变
        arrs[2] = new int[]{1, 2, 3, 4};
        System.out.println(Arrays.deepToString(arrs));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值