java002学习记录

位运算符

&、|、^、<<、>>

逻辑运算符针对 boolean 数据进行运算

位运算符针对数值进行运算

1、先将运算数据转为二进制

十进制转二进制

十进制转二进制:目标数除以 2,若能除尽,则该位记作 0,若除不尽,则该位记作 1,再对商继续除以二,以此类推,直到商为 0,将每一位的结果反序组合就是对应的二进制。

二进制转十进制

从目标数的最右侧算起,本位的数值乘以本位的权重(2 的第几位的位数减一次方),把乘积累加起来就是对应的十进制

10 -》1010

17 -》10001

2、再根据运算规则进行运算

A & B(按位与):每一位的数字一一对应,若都为 1,则该位记作 1,否则为 0.

A | B(按位或):每一位的数字一一对应,只要有 1 个为 1,则该位记作 1,否则为 0.

A ^ B(按位异或):每一位的数字一一对应,相同记作 0,不同记作 1.

A << B(左移):A 乘以 2 的 B 次方,2 << 3,16

A >> B(右移):A 除以 2 的 B 次方,2 >> 3,0

10 & 5 = 0

10:1010

5:101

1010

0101

10 | 5 = 1111

10 ^ 3 = 1001

10:1010

3:11

流程控制

循环

Java 中有多少种循环?4 种

for、while、do-while、foreach(增强型 for 循环)针对于集合进行遍历

循环四要素:

  • 初始化循环变量
  • 循环条件
  • 循环体
  • 更新循环变量

while、do-while、for 的区别

相同点:都遵循循环四要素

不同点:while 和 do-while 适用于循环次数不确定的场景,for 循环适用于循环次数确定的场景

while 和 for 先判断循环条件,再执行循环体,do-while 是先执行一次循环体,再进行循环条件的判断

双重循环

一维循环的循环体是另一个一维循环

打印 9*9 乘法表

1*1 = 1
1*2 = 2 2*2 = 4
1*3 = 3 2*3 = 6 3*3 = 9

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++){
                System.out.print(i + "*" + j + "=" + i * j+"\t");
            }
            System.out.println();
        }
    }
}

终止循环

break 和 continue

break 表示跳出整个循环体,结束整个循环

continue 表示跳出本次循环,继续下一轮循环

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            if(sum > 50) break;
            sum += i;
        }
        System.out.println(sum);
    }
}

数组

数组就是一种可以存放大量数据类型相同的变量的数据结构,一个变量可以存储多个数据

数组中的数据必须是同一种数据类型的,不同数据类型的数据不能存放到一个数组中

数组的基本要素

  • 数组名称

  • 数组元素

  • 元素下标,从 0 开始

  • 数据类型

数组下标为什么要从 0 开始?而不从 1 开始?

数组的内存都是连续的

0 1000

1 1004

2 1008

3 1012

n 1000 + n*4

下标从 1 开始,寻址公式为 1000 + (n-1)*4

下标从 0 开始,寻址公式为 1000 + n*4

你可能感兴趣的:(java,java,学习,开发语言)