JAVA基础_杂项

1.Instanceof 操作符

  • x instanceof A:检验x是否为类A的对象,返回值为boolean型。
  • 要求x所属的类与类A必须是子类和父类的关系,否则编译错误。
  • 如果x属于类A的子类B,x instanceof  A值也为true。

2.Object类

  • object类是所有java类的根父类
  • 如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object

3.单例(Singleton)设计模式

  • 设计模式就是我们实际编程过程中,逐渐总结出的一些解决问题的套路
  • 单例就是只有一个实例,即实例化对象
  • 在整个软件系统运行过程中,这个对象只被实例化一次,以后不论在哪都只调用这一个实例
  • 适用场景:实例化对象的常见要消耗大量得到时间和资源,即频发的new对象无意义
  • 分类:饿汉式单例和懒汉式单例(调用前创建和第一次调用创建的区别)
//饿汉式
public class Single {
//	public Single(){
//		//假设构造中要执行1000行代码,要占用很大的资源,耗时很长(10秒)
//		//每一次new Single对象需要10秒,运行1000行代码
//		//像这种情况,就适合使用单例模式,只new一次对象,以后一直就使用这个对象
//	}
	
	//私有的构造,构造方法私有化,调用这个类的人就不能直接使用new来创建对象
	private Single(){
		
	}
	
	//私有的Single类型的类变量
	private static Single single = new Single();
	
	public static Single getInstance(){
		return single;
	}
}
//懒汉式
public class Single1 {
	//先私有化构造方法,让外边不能直接new对象
	private Single1(){
		
	}
	
	private static Single1 s1 = null;
	
	public static Single1 getInstance(){
		if(s1 == null){
			s1 = new Single1();
		}
		
		return s1;
	}
}

4.初始化代码块

  • 初始化代码块的静态代码块执行早于非静态代码块
  • 静态代码块多次调用只执行一次,非静态代码块多次调用多次执行
  • 静态代码块修饰符static,即static{  代码块  },常用于复杂对象的初始化
  • 在匿名内部类中,用非静态代码块代替构造方法进行初始化属性

5.final关键字

  • final标记的类不能被继承,标记的方法不能被子类重写,标记的变量为常量

6.抽象类(abstract class)

  • 抽象类的关键字是abstract,修饰类时为抽象类,修饰方法时为抽象方法
  • 抽象类不能被实例化,抽象方法中只有方法的声明,没有方法的实现
  • 不能用abstract修饰属性、私有方法、构造器、静态方法、final的方法

7.接口(Interface)

  • 一个类可以实现多个接口,接口也可以继承其它接口
  • 接口中的所有成员变量都默认是由public static final修饰的。
  • 接口中的所有方法都默认是由public abstract修饰的。
  • 接口没有构造器。
  • 接口采用多层继承机制。
  • 接口是对方法的抽象,即一系列的动作的抽象;抽象类是对一类事物的高度抽象,其中既有属性也有方法

8.内部类

  • 内部类的出现是为了解决不能多重继承问题,使用内部类可以变相实现多重继承

 

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猪自强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值