• JavaEE学习记录2(JavaOO 知识回顾)


    1.super()与this()的区别:

    this():当前类的对象,super父类的对象。
    super():在子类访问父类的成员和行为,必须受类继承规则的约束。

    而this它代表当前对象,当然所有的资源都可以访问。
    在构造函数中,如果第一行没有写super(),编译器会自动插入。但是如果父类没有不带参的构造函数,或这个函数被私有化了(用private修饰)。此时你必须加入对父类的实例化构造。而this就没有这个要求,因为它本身就进行实例化的构造。而在方法中super()和this()使用的方法就差不多。只不过super要考虑是否能访问其父类的资源。

    2.作用域public、protected、private,以及不写时的区别?

    public:在不同的包中、类中,或者同一包中均可以使用和访问
    protected:受保护的成员可以被同一包中的类所访问,还可以被类的子类所访问,不管子类是在哪个包中。private:只能在同一个类中使用和访问
    不写时:只能在同一包中和类中使用。

    3.Java的事件委托机制和垃圾回收机制:

    (1).java事件委托机制的概念—一个源产生一个事件并将它送到一个或多个监听器哪里。在这种方案中,监听器简单的等待,直到它收到一个事件。一旦事件被接受,监听器将处理这个事件,然后返回。
    (2).垃圾回收机制—垃圾收集是将分配给对象但不再使用的内存回收或释放的过程。如果一个对象没有指向它的引用或者其赋值为null,则此对象适合进行垃圾回收。

    4.什么是java序列化?如何实现java序列化?

    (1).序列化:
    序列化是指—处理对象的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可以将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。

    (2).序列化的实现:
    将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable 只是为了标注该对象是可以被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输出流。


    ---------------------------------------------------------
    5.一个“.java”源文件中是否可以包括多个类(不是内部类)?有什么限制?

    (1).是可以包含多个类的。
    (2).限制就是:如果这个类的修饰符是public的话,其类名要与文件名必须相同。

    6.final类有什么特点?

    1.属性常量
    2.方法不可以overriding(被重写)
    3.类不可以继承

    排序的方法有:

    1.插入排序法(直接插入排序、希尔排序)
    2.交换排序法(冒泡排序、快速排序)
    3.选择排序法(直接选择排序、堆序法)
    4.归并排序
    5.分配排序(箱排序、基数排序)


    java代码如下:

    冒泡排序法:

    import java.util.*;
    public class Test02{
    public static void main(String [] args){
    int[] arr={1,8,9,3,2,5,6,4,12};
    System.out.pringtln(Arrays.toString(arr));
    for(int i=0;i<arr.length;i++){
    for(int j=0;j<arr.length-1-i;j++){
    if(arr[j]<arr[j+1]){
    int temp =arr[j];
    arr[j] =arr[j+1];
    arr[j+1]=temp;
    }
    }
    }
    }
    System.out.println(Arrays.to.String(arr));
    }

    =======================================================
    选择排序法:

    import java.util.*;
    public class Test03{
    public static void main(String [] args){

    int[] arr={1,8,9,3,2,5,6,4,12};
    System.out.pringtln(Arrays.toString(arr));
    for(int i=0;i<arr.length-1;i++){
    for(int j=i+1;j<arr.length;j++){
    if(arr[i]>arr[j]){
    int temp=arr[i];
    arr[i]=arr[j];
    arr[j]=temp;
    }
    }
    }
    System.out.pringtln(Arrays.toString(arr));
    }
    }

    ================================================
    插入一个数排序法:(插入一的数排序。)

    import java.util.*;
    public class Test04{
    public static void main(String [] args){
    int [] arr={1,5,8,10,15,19,34,60};
    int [] arr1=new int[arr.length+1];
    for(int i=0;i<arr.length;i++){
    arr1[i] =arr[i];
    }
    Scanner in = new Scanner(System.in);
    System.out.println("请输入一个数:");
    int num =in.nextInt();
    int index =arr1.length-1;
    for(int i=0;i<arr1.length;i++){
    if(arr1[i]>num){
    index =i;
    break;
    }
    }
    for(int i=arr1.length-1;index;i--){
    arr1[i] =arr1[i-1];
    }
    arr1[index] =num;
    System.out.println(Arrays.toString(arr));
    }

    }
    ==========================================================

  • 相关阅读:
    php操作redis cluster集群成功实例
    js算法-快速排序(Quicksort)
    如何编写自己的虚拟DOM
    一文带你看透kubernetes 容器编排系统
    SpringBoot AOP控制Redis自动缓存和更新
    机器学习中的numpy库
    时间戳转自定义日期格式和刚刚、十分钟前等友好日期格式
    Python数据处理实例
    Spark1.x和2.x如何读取和写入csv文件
    掌握这个Python小技巧,轻松构建cytoscape导入文件
  • 原文地址:https://www.cnblogs.com/White-destiny/p/5335224.html
Copyright © 2020-2023  润新知