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

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]);
}


  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

研行笔录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值