尚硅谷_每日一考_172+194+216

172
1.使用冒泡排序,实现如下的数组从小到大排序。
int arr = new int[]{34,5,22,-98,6,-76,0,-3};
2.如何反转上面的数组。请代码实现
3.复制上述数组,得到一个新数组
4.使用线性查找,查找22,存在,返回索引,不存在,返回提示信息
5.数组中常见的异常

1.
    for(i=0; i<arr.length-1; i++)
		for(j=0; j<arr.length - i; j++)
			if(arr[j]>arr[j+1])
				int temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
/*快排时间复杂度:O(nlogn)
冒泡排序时间复杂度:O(n^2)
堆排序、归并排序  思路*/

2.for(i=0; i<arr.length/2; i++) int temp = arr[i]; arr[i] = arr[arr.length-1-i]; arr[arr.length-1-i] = temp;

3.VS赋值操作 array2 = array1 int arr[] = new int[arr.length]; for(;;)

4.
int dest = 22;
boolean isFlag = true;
	for(i=0; i<arr.length; i++)
		if(dest == arr[i])
			sysout(i);
			isFlag = false;
			break;
if(isFlag)
		sysout("未找到");

if(i = arr.length)
		sysout("未找到");

5.ArrayIndexOutOfBoundsException:数组角标越界异常
合理范围:[0,arr.length-1]
越界:arr[-1],arr[arr.length]

NullPointerException:空指针异常
int[] arr = null;
a[0];

194
1.面向对象思想编程内容的三条主线分别是什么
1)(类的设计)类及类的成员:属性、方法、构造器;代码块(初始化块);内部类
2)面向对象的三大特征:封装 继承 多态
3)其他关键字:this,super,abstract,interface,static,final,package,import
面向对象的编程思想?

2.类和对象的理解 关系
类:抽象的、概念上的内容
对象:实实在在存在的一个个体。内存中创建了一个对象,占用了空间 new出来的

对象是类的实例化
开发中的举例,Scanner类,创建Scanner类的对象,通过对象实现相应方法,与控制台实现交互

3.类和对象的创建和执行操作有那三步
1)创建类
2)类的实例化
3)调用对象的结构:"对象.属性""对象.方法"

知识 + 代码

4.画出如下代码在执行时的内存分配情况

class Car{
//非static属性都在堆空间中
	String color = "red";
	int num = 4;
	void show(){
//局部变量都在栈空间中,一次生命周期结束后,弹出
		int a = 10;
		System.out.println("color="+color+",num="+num);
		}
}
//从main方法开始看
class CarTest{
	public static void main (String[] args){
		Car c1 = new Car();
		Car c2 = new Car();
		c1.color = "blue";
		c1.show();
		c2.show();
    }
}

main方法结束后,c1和c2也从栈空间中弹出
弹出来之后指针消失,这样当在堆空间中进行垃圾回收时,发现有两个结构没有任何栈空间的引用指针,则这两个结构无法被调用(变量等都是通过对象名去调用),会被回收

5.类的方法内是否可以定义变量?是否可以调用属性?是否可以定义方法?是否可以调用方法?
是,是,否,是

216
1.什么是方法的重载?
两同一不同
同一类,相同方法名,参数列表不同

如何调用确定的方法:方法名->参数列表

2.说明Java方法中的参数传递机制的具体体现?
基本数据类型:数据值
引用数据类型:地址值(含变量的数据类型)
(逆向思维、反证法)

3.成员变量和局部变量在声明的位置上,是否有默认初始化值,是否能有权限修饰符修饰,内存分配的位置上有何不同?

4.谈谈return关键字的使用
1)结束方法
2)针对有返回值的方法,return + 返回数据

5.提供如下代码的内存解析

public class TransferTest3{
	public static void main(String[] args){
		TransferTest3 test = new TransferTest3();
		test.first;
		}
		public void first(){
		int i = 5;
		Value v = new Value();
		v.i = 25;
		second(v,i);
		System.out.println(v.i);
		}
	public void second(Value v,int i){
		i = 0;
		v.i = 20;
		Value val = new Value();
		v = val;
		System.out.println(v.i + " " + i);
		}		
}
class Value{
	int i = 15;
}

posted @ 2023-03-01 09:42  zWANG1228  阅读(26)  评论(0)    收藏  举报