3月8号

    xiaoxiao2021-03-25  149

    十一、对象数组 {1,2,3, 4 ,5,6,null,null,null} 用于存储一组相同类型的对象 在使用对象数组时,我们要遵循以下原则:。 (1)保正数组元素的插入顺序 (2)保正数组元素的连续性 (3)添加元素一般在数组的末尾添加 (4)插入元素需要把插入位置之后的元素往后移动一位 (5)删除无素时需要把删除位置之后的元素往前移动一位 (6)当数组添加满后,需要重新生成新数组来完成容量的扩充     (具有该功能的数组称为动态数组) (7)扩充数组的算法一般使用两种:         原来数组的长度*3/2+1  :扩充原来数组的一半         原来数组的长度*2:扩充原来数组的一倍 思考: 数组的扩充的次数过多势必会影响性能,并造成内存浪费 数组的删除插入操作效率不高 提高移动数组元素的方法可以使用System.arraycopy方法 十二、增强for循环与可变参数 1、增强for(JDK1.5新增的功能)     String[] names = {"1","2","3","4"};     for(String s : names){         System.out.println(s);     }     for(int i=0;i<names.length;i++){     } 2、可变参数 (1)在声明可变参数时只能有一个 (2)声明的的可变参数在参数列表中必须是最后一个 (3)可变参数在使用时作为一个数组     print("a","b","c");     public void print(int num,String... s){     } 十三、代码块 (1)普通代码块: 在方法内部使用 (2)构造块:(一般不使用) 直接在类中使用 (3)静态代码块: 在类中使用static{  ... } 特点:普通代码块可以在一个方法中用来化分作用域 构造块是在创建对象时优先构造方法被调用(不使用) 静态代码块,在该类被调用时只会执行一次,在实际开发中 通常用于初始化应用程序需求的数据等。(常用) {}:大扩号是用于组织代码的结构,用于限制代码块的作用域(范围) 示例: class Demo{      static{          System.out.println("静态代码块");      }      {          System.out.println("构造块");   }      public void show(){          {//普通代码块              int i = 0;          }          int i = 0;      } } 十四、单例设计模式 设计模式:GOF 设计模式(23种) 1、基本思想,解决什么问题 2、如何实现及优缺点 3、应用场景 单例模式,解决在同一个类中创建多个对象与创建一个对象去调用方法,区别不大 这种情况下,我们使用一个对象可能会节省内存,减少垃圾对象的产生。 从而提高效率。 面试题:写出一个单例模式 (1)构造方法私有化 (2)定义一个静态的本类对象 (3)对外提供一个静态的方法来获取本类对象 实现单例可以有两种方式:懒汉式和饿汉式 public class Singleton{      private static Singleton singleton=null;      private Singleton(){}      public static Singleton getInstance(){          if(singleton==null){              singleton = new Singleton();          }          return singleton;      }      public String getDate(){          java.util.Date date = new java.util.Date();          SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");          return df.format(date);      } } 在实际开发中的应用场景 通常在一些工具类中使用 思考: 实现一个工具类通常: 1、普通类 2、私有化构造方法,功能方法静态化(完全没有对象) 3、使用单例模式(有一个对象) 一、继承 (1)继承是发生在多个类的情况下。 (2)关键字extends (3)JAVA 只能单继承,允许多层继承 (4)被继承的类叫父类(超类),继承父类的类叫子类(派生类) (5)在父类中的非私有属性和方法可以被子类继承 (6)protected(受保护的访问权限修饰符) (7)构造 方法不能被继承 (8)创建对象会调用构造方法,调用构造方法不一定就是创建该类对象 (9)实例化子类对象,会先调用父类的构造方法,如果父类中没有默认的构造方法 那么子类必须显示的通过super(...)来调用父类的带参构造方法,super也只能在         子类构造方法中的第一句。
    转载请注明原文地址: https://ju.6miu.com/read-7318.html

    最新回复(0)