> 文档中心 > Java基础补充--查漏补缺(一)

Java基础补充--查漏补缺(一)

文章目录

    • 1、原码、反码、补码
    • 2、运算符
    • 3、&& 和& 使用区别
    • 4、|| 和| 使用区别
    • 5、switch_break 注意细节
    • 6、switch 和if 的比较
    • 7、for编程思想
    • 8、数组注意事项
    • 9、数组赋值机制
    • 10、 如何进行数组拷贝
    • 11、二维数组的使用细节和注意事项
    • 12、冒泡排序经典代码

1、原码、反码、补码

在这里插入图片描述
为什么计算机进行运算的时候,用补码的形式进行运算?
因为补码把正数和负数统一起来l
在这里插入图片描述

2、运算符

前++:++i 先自增后赋值
后++:i++先赋值后自增
在这里插入图片描述

3、&& 和& 使用区别

  1. &&短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false,效率高
  2. & 逻辑与:不管第一个条件是否为false,第二个条件都要判断,效率低

4、|| 和| 使用区别

  1. ||短路或:如果第一个条件为true,则第二个条件不会判断,最终结果为true,效率高
  2. | 逻辑或:不管第一个条件是否为true,第二个条件都要判断,效率低
  3. 开发中,我们基本使用||

5、switch_break 注意细节

在这里插入图片描述

6、switch 和if 的比较

  1. 如果判断的具体数值不多,而且符合byte、short 、int、char, enum[枚举], String 这6 种类型。虽然两个语句都可以使用,建议使用swtich 语句。
  2. 其他情况:对区间判断,对结果为boolean 类型判断,使用if,if 的使用范围更广

7、for编程思想

化繁为简:将复杂的需求,拆分成简单的需求,逐步完成
先死后活:先考虑固定的值,然后再转换成灵活的值

8、数组注意事项

  1. 数组是多个相同类型数据的组合,实现对这些数据的统一管理
  2. 数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。
  3. 数组创建后,如果没有赋值,有默认值
    int 0,short 0, byte 0, long 0, float 0.0,double 0.0,char \u0000,boolean false,String null
  4. 使用数组的步骤1. 声明数组并开辟空间2 给数组各个元素赋值3 使用数组
  5. 数组的下标是从0 开始的。
  6. 数组下标必须在指定范围内使用,否则报:下标越界异常

9、数组赋值机制

  1. 基本数据类型赋值,这个值就是具体的数据,而且相互不影响。
    int n1 = 2; int n2 = n1; 值拷贝,n2的变化,不影响到n1的值
  2. 数组在默认情况下是引用传递,赋的值是地址
    看一个案例,并分析数组赋值的内存图(重点, 难点. )。
    int[] arr1 = {1,2,3};
    int[] arr2 = arr1;
    arr2[0] = 10;
    则arr2的值最终会修改arr1;因为都是同一个地址
    在这里插入图片描述

10、 如何进行数组拷贝

int[] arr1 = {10,20,30}只需要创建一个新的数组Arr2,开辟新的数据空间int[] arr2 = new int[arr1.length] ;//遍历arr1 ,把每个元素拷贝到arr2 对应的元素位置for(int i = 0; i < arr1.length; i++) {arr2[i] = arr1[i];}

11、二维数组的使用细节和注意事项

  1. 一维数组的声明方式有:
    int[] x 或者int x[]
  2. 二维数组的声明方式有:
    int[][] y 或者int[] y[] 或者int y[][]
  3. 二维数组实际上是由多个一维数组组成的,它的各个一维数组的长度可以相同,也可以不相同。比如: map[][] 是
    一个二维数组
    int map [][] = {{1,2},{3,4,5}}
    由map[0] 是一个含有两个元素的一维数组,map[1] 是一个含有三个元素的一维数组构成,我们也称为列数不等的二维数组

12、冒泡排序经典代码

public static void main(String[] args) {//冒泡排序//要求从小到大int[] arr = {20, -1, 89, 2, 890, 7};int temp = 0; / /辅助交换for(int i = 0; i < arr. length -1 ; i++) {//外层循环(轮)for(int j = 0; j < arr.length - 1 - i; j++) {//每轮的比较次数if(arr[j] > arr[j+1]) {temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}I//搞定System.out.println("====排序后====");for(int i=0;i<arr.length;i++)System.out.println(arr[i]);}

Java基础补充--查漏补缺(一) 创作打卡挑战赛 Java基础补充--查漏补缺(一) 赢取流量/现金/CSDN周边激励大奖31戒烟网