JAVA学习之补充知识点

    xiaoxiao2021-03-25  61

    对象数组

    {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 classSingleton{

        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 = newjava.util.Date();

            SimpleDateFormat df = newSimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");

            return df.format(date);

        }

    }

     

    在实际开发中的应用场景

    通常在一些工具类中使用

     

    思考:

    实现一个工具类通常:

    1、普通类

    2、私有化构造方法,功能方法静态化(完全没有对象)

    3、使用单例模式(有一个对象)

    转载请注明原文地址: https://ju.6miu.com/read-38099.html

    最新回复(0)