青云博客 记录、分享

java中抽象类和接口有什么区别?

抽象类和接口是Java中的两种机制,用于实现类之间的继承和多态性。它们有以下几点区别: 定义和设计:抽象类是使用abstract关键字定义的类,可以包含抽象方法和非抽象方法,可以有实例变量和构造方法;接口通过interface关键字定义,只能包含抽象方法、默认方法和静态方法,不包含实例变量或构造方法

詹学伟 Published on 2024-04-22

Java中的集合框架有哪些核心接口

Java中的集合框架提供了一组接口和类,用于存储和操作数据集合。其中一些核心接口包括: Collection接口:是集合框架中最通用的接口,用于表示一组对象。它是List、Set和Queue接口的父接口,定义了对集合进行基本操作的方法。 List接口:表示一个有序的、可重复的集合。List接口的实现

詹学伟 Published on 2024-04-22

说说你对内部类的理解

内部类是Java中一种特殊的类,它定义在其他类或方法中,并且可以访问外部类的成员,包括私有成员。 内部类分为如下几种: 成员内部类:定义在一个类的内部,并且不是静态的。成员内部类可以访问外部类的所有成员,包括私有成员。在创建内部类对象时,需要先创建外部类对象,然后通过外部类对象来创建内部类对象。 静

詹学伟 Published on 2024-04-22

notify()和 notifyAll()有什么区别

在Java中,notify()和notifyAll()都属于Object类的方法,用于实现线程间的通信。 notify()方法用于唤醒在当前对象上等待的单个线程。如果有多个线程同时在某个对象上等待(通过调用该对象的wait()方法),则只会唤醒其中一个线程,并使其从等待状态变为可运行状态。具体是哪个

詹学伟 Published on 2024-04-22

说说你对lambda表达式的理解

Lambda表达式是Java 8引入的一种简洁的语法形式,用于表示匿名函数。它可以作为参数传递给方法或函数接口,并且可以在需要函数式编程特性的地方使用。 Lambda表达式的语法类似于(参数列表) -> 表达式或代码块。参数列表描述了输入参数,可以省略类型,甚至括号。箭头符号将参数列表与表达式或代码

詹学伟 Published on 2024-04-22

说说你对泛型的理解

泛型是Java中的一个特性,它允许我们在定义类、接口或方法时使用类型参数,以实现代码的通用性和安全性。泛型的目的是在编译时进行类型检查,并提供编译期间的类型安全。 泛型的理解包括以下几个方面: 首先,泛型提供了代码重用和通用性。通过使用泛型,我们可以编写可重用的代码,可以在不同的数据类型上执行相同的

詹学伟 Published on 2024-04-22

静态内部类与非静态内部类有什么区别

在Java中,静态内部类和非静态内部类都是一种嵌套在其他类中的内部类。它们之间有以下几点区别: 实例化方式:静态内部类可以直接通过外部类名来实例化,而非静态内部类必须要通过外部类的实例来实例化。 对外部类的引用:静态内部类不持有对外部类实例的引用,而非静态内部类则会持有对外部类实例的引用。这意味着在

詹学伟 Published on 2024-04-22

JDK动态代理与CGLIB实现的区别

JDK动态代理和CGLIB是Java中常用的两种代理技术,它们在实现原理和使用方式上有一些区别。 JDK动态代理是基于接口的代理技术,要求目标类必须实现一个或多个接口。它使用java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口

詹学伟 Published on 2024-04-22

Strings 与new String有什么区别

Java中字符串可以通过两种方式创建:使用字符串字面量直接赋值给变量或使用关键字new创建一个新的String对象。它们之间有以下区别: 首先,使用字符串字面量赋值给变量时,Java会使用字符串常量池来管理字符串对象,可以提高性能和节省内存。而使用new String创建的字符串对象则在堆内存中独立

詹学伟 Published on 2024-04-22

什么是Java的序列化

Java的序列化是指将Java对象转换为字节流的过程,可以将这些字节流保存到文件中或通过网络传输。反序列化则是指将字节流恢复成对象的过程。 序列化的主要目的是实现对象的持久化存储和传输,让对象可以在不同的计算机或不同的时间点被重建和使用。通过序列化,可以将对象的状态以字节的形式保存下来,并且在需要的

詹学伟 Published on 2024-04-22
Previous Next