咔咔做受视频网站,贵阳网站建设q.479185700惠,西安市市政建设网站,要怎样建立自己的网站面试 Java 基础八股文十问十答第十五期 作者#xff1a;程序员小白条#xff0c;个人博客 相信看了本文后#xff0c;对你的面试是有一定帮助的#xff01;关注专栏后就能收到持续更新#xff01;
⭐点赞⭐收藏⭐不迷路#xff01;⭐
1#xff09;BIO, NIO, AIO 有什么…面试 Java 基础八股文十问十答第十五期 作者程序员小白条个人博客 相信看了本文后对你的面试是有一定帮助的关注专栏后就能收到持续更新
⭐点赞⭐收藏⭐不迷路⭐
1BIO, NIO, AIO 有什么区别
BIOBlocking I/OBIO 是传统的 Java I/O 模型它是阻塞的意味着当一个线程执行 I/O 操作时它会一直等待直到数据被读取或写入完成。这种模型下每个连接都需要一个独立的线程来处理当连接数较大时会导致资源消耗严重性能较差。NIONon-blocking I/ONIO 是 Java 中引入的一种更灵活的 I/O 模型。它提供了通道Channel和缓冲区Buffer的概念使得可以使用单个线程管理多个连接。NIO 提供了非阻塞的 I/O 操作通过选择器Selector可以轮询多个通道的状态当某个通道就绪时可以进行相应的读写操作。相比于 BIONIO 可以更高效地处理大量连接。AIOAsynchronous I/OAIO 是 Java 7 中引入的一种异步 I/O 模型。它在 NIO 的基础上进一步提供了异步 I/O 操作的支持即在进行 I/O 操作时可以指定一个回调函数在操作完成时自动调用该函数不需要线程等待。AIO 通常用于处理较大的数据流例如文件的异步读写操作。
2Files 的常用方法都有哪些
Java 中的 Files 类提供了一组用于操作文件和目录的静态方法常用的方法包括但不限于
Files.exists(Path path)检查指定路径是否存在。Files.createFile(Path path)创建一个新文件。Files.createDirectory(Path dir)创建一个新目录。Files.copy(Path source, Path target, CopyOption... options)复制文件或目录。Files.move(Path source, Path target, CopyOption... options)移动文件或目录。Files.delete(Path path)删除文件或目录。Files.readAllBytes(Path path)读取文件的所有字节。Files.lines(Path path)逐行读取文件内容。Files.write(Path path, byte[] bytes, OpenOption... options)将字节数组写入文件。Files.write(Path path, Iterable? extends CharSequence lines, Charset cs, OpenOption... options)将字符串集合逐行写入文件。
3什么是反射机制
反射Reflection是指在运行时动态地获取类的信息以及操作类的属性和方法的能力。在 Java 中反射机制允许程序在运行时检查类的属性和方法获取类的构造函数信息创建类的实例以及调用类的方法等。Java 的反射 API 主要包括 java.lang.Class 类以及其相关方法例如 getField()、getMethod()、getConstructor() 等。
反射机制的主要应用场景包括但不限于
在运行时动态加载类和创建对象例如通过类名字符串来加载类并创建对象。在运行时动态调用类的方法例如通过方法名字符串来调用方法。分析类的属性和方法例如获取类的字段、方法、构造函数等信息。实现通用的框架和工具例如 Java 的 ORM对象关系映射框架和序列化框架。
尽管反射提供了一种强大的机制来操作类的属性和方法但由于其涉及到动态类型检查和动态调用通常会导致性能较低并且在编写代码时易于出错。因此应该在必要时使用反射避免滥用。
4反射机制优缺点
优点
动态性 反射机制允许在运行时动态地加载类、创建对象、调用方法从而使得程序的行为可以更加灵活和动态。扩展性 反射机制提供了一种强大的扩展机制允许程序在不修改源代码的情况下对现有类进行扩展和定制。灵活性 反射机制使得程序可以更加灵活地处理各种类型的对象而不需要提前确定对象的类型。
缺点
性能开销 反射涉及到动态类型检查和方法调用通常比直接调用方法要慢因此可能会带来一定的性能开销。安全性问题 反射机制可以访问和修改类的私有属性和方法因此可能会破坏封装性引起安全漏洞。可读性和维护性差 反射使得程序的结构更加复杂降低了代码的可读性和维护性使得程序更难以理解和调试。
5反射机制的应用场景有哪些
反射机制在许多场景下都有广泛的应用包括但不限于
框架开发 框架通常需要处理各种类型的对象并且提供通用的接口供用户使用反射机制可以使框架更加灵活和通用。工具开发 许多工具在运行时需要加载和操作用户提供的类反射机制可以使工具更加灵活和可扩展。ORM对象关系映射框架 ORM 框架通常需要在运行时根据类的属性和数据库表的字段进行映射反射机制可以帮助 ORM 框架实现自动映射。序列化和反序列化 反射机制可以帮助序列化和反序列化框架在运行时动态地获取类的属性信息从而实现对象的序列化和反序列化。
6Java 获取反射的三种方法
在 Java 中获取反射的三种主要方法包括 通过对象的 getClass() 方法 每个对象都有一个 getClass() 方法可以返回表示对象所属类的 Class 对象。例如 MyClass obj new MyClass();
Class? clazz obj.getClass();通过类的 .class 属性 每个类都有一个 .class 属性可以直接获取表示该类的 Class 对象。例如 Class? clazz MyClass.class;通过 Class 类的 forName() 方法 Class 类提供了一个 forName(String className) 方法可以根据类的全限定名包名加类名来获取 Class 对象。例如 Class? clazz Class.forName(com.example.MyClass);这三种方法都可以用来获取 Class 对象然后通过 Class 对象可以获取类的属性、方法、构造函数等信息实现反射的功能。
7字符型常量和字符串常量的区别
字符型常量 字符型常量是指用单引号括起来的单个字符例如 A、B、1 等。字符串常量 字符串常量是指用双引号括起来的一个或多个字符组成的序列例如 Hello、World、123 等。
区别在于字符型常量是单个字符而字符串常量可以包含多个字符组成字符串。
8什么是字符串常量池
字符串常量池是 Java 中的一种特殊的存储区域用于存储字符串常量对象。在 Java 中如果两个字符串常量的值相同即字符序列相同则它们实际上指向字符串常量池中的同一个对象而不是创建两个独立的对象。这样可以节省内存空间并提高字符串的比较效率。
9String 是最基本的数据类型吗
不是的。在 Java 中String 是引用数据类型而不是基本数据类型。基本数据类型包括 byte、short、int、long、float、double、char 和 boolean而 String 是由 char 类型组成的对象。
10String有哪些特性
String 类具有以下特性
不可变性Immutable String 对象一旦被创建其值就不能被修改。任何对 String 对象的操作都会返回一个新的 String 对象。线程安全性 由于不可变性String 对象是线程安全的可以在多线程环境下安全地使用。字符串常量池 Java 中的字符串常量池可以提高字符串的重用率和比较效率。重载 运算符 String 类重载了 运算符可以用于字符串的连接操作。实现了 Serializable 接口 String 类实现了 Serializable 接口可以被序列化和反序列化。实现了 Comparable 接口 String 类实现了 Comparable 接口可以进行字符串的比较操作。
开源项目地址https://gitee.com/falle22222n-leaves/vue_-book-manage-system
前后端总计已经 700 Star1W 访问
⭐点赞⭐收藏⭐不迷路⭐