JAVA学习之补充知识点

对象数组

{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、使用单例模式(有一个对象)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值