接口和抽象类

Java中接口和抽象类小结,欢迎交流,指正错误。

这是一个非常经典的Java基础题,再次整理出来,除了巩固之用外也是对一些新特性的总结。

1. 接口和抽象类的区别

  • 接口的方法默认为public abstract ,接口中的变量默认为public static final,在Java8之前接口所有的方法不能有实现;抽象类中可以有类变量,也可以有成员变量,还可以有非抽象方法。
  • 一个类可以实现多个接口,但只能继承一个抽象类
  • 一个类实现接口,要实现该接口的所有抽象方法。
  • 接口中不能有构造方法,接口不能被实例化;但可以声明,必须引用一个实现该接口的对象。
  • 抽象类可以有构造方法,但是不能被直接通过new进行实例化。但可以通过子类继承,实例化子类的时候抽象类也会被实例化。 这其实用到了多态,向上转型。父类引用指向子类对象。
  • 从设计层面来说,抽象类是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。

2. JDK1.7及以前

在JDK1.7,接口中只包含抽象方法,使用public abstract 修饰。

手动实现热加载

热加载相关知识,欢迎交流,指正错误。

1. 什么是热加载

热加载是指可以在不重启服务的情况下让更改的代码生效,热加载可以显著的提升开发以及调试的效率,它是基于 Java 的类加载器实现的,但是由于热加载的不安全性,一般不会用于正式的生产环境。

IoC容器注入Bean的方式

IOC容器注入Bean的方式,欢迎交流,指正错误。

Spring提供的主要功能就是对于Bean的管理,提供了多种方式可以向容器中注入Bean,下面总结一下向IOC容器注入Bean的几种方式(以下注入Bean的方式都是基于注解完成的):

1. @ComponentScan+@Component方式

@ComponentScan可以扫描指定包下的类,如果该包下的类标有@Component、@Service、@Repository、@Controller、@RestController和@Configuration,都会被注入到IOC容器中,这种方式也是我们写代码最常用的,一般针对自己写的类。

BeanFactory和FactoryBean的区别

BeanFactory和FactoryBean的区别,欢迎交流,指正错误。

0. 区别

BeanFactory是个Factory,也就是IOC容器或对象工厂;FactoryBean是个Bean。在Spring中,所有的Bean都是由BeanFactory(也就是IOC容器)来进行管理的。但对FactoryBean而言,这个Bean不是简单的Bean,而是一个能生产或者修饰对象生成的工厂Bean,它的实现与设计模式中的工厂模式和修饰器模式类似。

分布式文件系统FastDFS

FastDFS知识小结,欢迎交流,指正错误。

1. FastDFS介绍

FastDFS 是以C语言开发的一项开源轻量级分布式文件系统,他对文件进行管理,主要功能有:文件存储,文件同步,文件访问(文件上传/下载),特别适合以文件为载体的在线服务,如图片网站,视频网站等

0%