3月8号

十一、对象数组
{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也只能在
        子类构造方法中的第一句。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值