尚硅谷_每日一考_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;
}


浙公网安备 33010602011771号