![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 59
算法就是真言
这个作者很懒,什么都没留下…
展开
-
异常111111111111
NumberFormatException: 字符的 UTF 代码数据格式有错引起异常;IOException:由于文件未找到、未打开或者 I/O 操作不能进行而引起异常。ClassNotFoundException :找不到文件所抛出的异常。IndexOutOfBoundException: 数组下标越界异常。IllegalArgumentException:不合法的参数异常。InterruptedException: 线程中断抛出的异常。NullPointerException: 空指针异常。原创 2024-08-18 23:55:02 · 204 阅读 · 0 评论 -
内部类有哪些分类
这个机器人可以有不同的角色和工作模式,而这些角色就类似于 Java 的内部类。这些不同类型的“机器人”帮助你更好地管理家务,而不同类型的内部类则在 Java 编程中提供了灵活性和便利性。:局部内部类是定义在方法或代码块中的类,它的作用范围仅限于该方法或代码块。:匿名内部类是没有名字的内部类,通常用于创建瞬时的类实例来完成特定任务。:成员内部类是定义在另一个类内部的类,且它与外部类的实例密切相关。:静态内部类与外部类的实例无关,它更像是一个独立的类。让我们用一个形象的例子来理解这些内部类。原创 2024-08-18 23:53:24 · 629 阅读 · 0 评论 -
强引用、若引用、虚引用和幻象引用的区别
幻象引用是一种极弱的引用类型,唯一的作用是能让你在对象被回收前的最后一刻进行一些清理操作。对象在有幻象引用的情况下仍然可以被回收,并且幻象引用必须和引用队列一起使用。在 Java 中,不同类型的引用决定了对象的生命周期和垃圾回收机制的行为。我们可以用一个形象的例子来说明强引用、弱引用、虚引用和幻象引用之间的区别。当垃圾回收器发现只有弱引用指向某个对象时,会立即回收该对象。通过这个图书馆的例子,我们可以形象地理解不同引用类型对对象生命周期和垃圾回收的影响。只要强引用存在,垃圾回收器就不会回收对应的对象。原创 2024-08-18 23:29:22 · 518 阅读 · 0 评论 -
反射的基本原理,反射创建类实例的三种方式是什么
反射(Reflection)是 Java 中一个强大的特性,它允许程序在运行时动态地获取和操作类的结构信息,比如类名、方法、字段、构造函数等。通过反射,程序可以动态地加载类、创建实例、调用方法、访问或修改字段等,尽管这些类、方法或字段在编译时可能是未知的。这些机器人是不同的类的实例,但在生产过程中,工厂可以通过反射机制动态地确定需要生产哪种类型的机器人,甚至可以在运行时获取机器人的功能并进行操作。通过这些方法,智能工厂能够灵活地应对各种生产需求,而反射提供了程序在运行时动态处理类和实例的能力。原创 2024-08-18 23:22:37 · 509 阅读 · 0 评论 -
Java 泛型和类型擦除 用一个形象的例子说明
Java 泛型允许类和方法操作对象时不需要指定具体的类型,可以使代码更通用和灵活。然而,Java 泛型的实现依赖于一种机制,称为“类型擦除”,它在编译时将泛型类型替换为原始类型,这样在运行时就不会有泛型类型的存在。泛型可以让代码更灵活,就像学校的课程表系统能够为不同年级的学生设计不同的课程。然而,类型擦除使得在运行时这些类型信息消失了,系统变得更简单,但也带来了限制。泛型和类型擦除可以用来解释这个系统如何为不同年级的学生安排课程,并在运行时保持简单和高效。原创 2024-08-18 23:13:44 · 803 阅读 · 0 评论 -
Object 类中的常用方法
帮助你快速记住它们的功能。原创 2024-08-18 23:06:30 · 98 阅读 · 0 评论 -
Java I/O 方式有很多种,传统的 I/O 也称为 BIO,主要流有哪些
Java 的传统 I/O,也称为阻塞式 I/O(Blocking I/O,简称 BIO),涉及读取和写入数据的各种流。可以通过一个形象的例子来说明这些流的作用和特点。想象一个传统的图书馆,提供各种类型的书籍和杂志。这个图书馆里有几种不同的借阅方式,这些方式可以类比为 Java 中的几种主要的 I/O 流。Java 的传统 I/O(BIO)方式通过不同的流来处理数据,就像在图书馆中借阅和归还书籍。则处理更复杂的对象数据。这些流各有用途,帮助程序更好地处理各种类型的数据输入和输出。原创 2024-08-18 23:01:51 · 442 阅读 · 0 评论 -
Exception 和 Error 有什么区别
代表程序中可以预期和处理的问题,就像汽车的普通机械故障。这些问题虽然可能会影响你的驾驶体验,但通常可以通过某些操作(修理或绕过问题)继续驾驶。代表程序中无法处理的严重问题,就像车子遇到了灾难性的故障。这些问题通常无法通过简单的操作来修复,车子可能会直接失去控制,无法继续行驶。想象你在驾驶一辆车,而这辆车在行驶过程中可能会遇到两种类型的问题:普通的机械故障(时,你可以通过采取一些措施来解决或处理这些问题,让车子继续行驶。是程序无法处理的致命错误,通常表示一个严重的问题,如内存溢出(原创 2024-08-18 22:53:51 · 337 阅读 · 0 评论 -
static 关键字的作用
静态方法是类级别的方法,可以直接通过类名调用,而不需要实例化对象。:静态变量是类级别的变量。如果某个对象修改了静态变量的值,那么该类的所有实例都会看到这个更改。它表示这些成员属于类本身,而不是类的具体实例(对象)。想象你在一家公司工作,公司有一些员工(实例对象),也有一些公司级别的规则或制度(静态成员)。关键字表示“类级别”的概念,适用于那些在类的所有实例间共享或与具体实例无关的功能。,我们可以让某些成员与类本身绑定,而不是与具体的对象绑定。修饰的成员可以在不创建对象的情况下直接通过类名访问。原创 2024-08-18 22:17:37 · 364 阅读 · 0 评论 -
String、StringBuffer、StringBuilde 区别
想象你在使用不同的工具来写笔记,每种工具的特点类似于。原创 2024-08-18 22:13:11 · 241 阅读 · 0 评论 -
String s1 = new String(“abc“) 在内存中创建了几个对象
想象你有一个公司文档库,所有的文档都存放在一个共享的文件柜中(字符串池)。是一个字符串字面量,Java 会将它放在字符串常量池(string pool)中。如果它还不存在,Java 会在字符串池中创建一个。这个新对象是对池中字符串的一个拷贝。已经存在于字符串池中(比如在程序的其他部分已经用到过。,你都会制作一份复印件,这个复印件是你实际使用的那一份。因此,总的来说,这行代码通常会在内存中创建。,一个在堆内存中,另一个可能在字符串池中。是否已经存在于字符串池中。会在堆内存中创建一个新的。原创 2024-08-18 22:09:56 · 160 阅读 · 0 评论 -
String 中的 equals 是如何重写的
你只是把文章 A 和 B 放在一起,看看它们是否是同一张纸。这种比较方式只检查两篇文章是否是相同的物理文档(即引用是否相同)。:你逐字逐句地阅读文章 A 和 B,检查每一个字是否相同。如果所有的字都相同,你会说这两篇文章是一样的。想象你有两篇文章,A 和 B,它们的内容可能完全相同,也可能不同。方法进行了专门的优化,使得两个字符串对象即使在不同的内存位置,如果它们的字符序列相同,方法被重写来比较字符串的内容,而不是它们的内存地址。能够正确地比较两个字符串的实际内容是否一致,而不只是它们的引用。原创 2024-08-18 21:58:49 · 188 阅读 · 0 评论 -
描述一下值传递和引用传递的区别
这个区别在编程中非常重要,尤其是在处理复杂的数据结构时,理解参数的传递方式可以帮助避免意外的副作用。:你朋友在书上做的任何笔记都会直接反映在这本书上,等他还给你时,书上的笔记依然存在。:这就像是引用传递,函数得到的是参数的引用,对参数的修改会直接影响外部的实际参数。:你朋友可以在复印的书上随意写、画、做笔记,但你的原书完全不会受到影响。:这就像是值传递,函数得到的是参数的副本,不会影响到外部的实际参数。你去复印店,把这本书复印了一份,然后将复印的副本借给你的朋友。你直接把原书借给了你的朋友。原创 2024-08-18 21:55:49 · 87 阅读 · 0 评论 -
== 和 equals 区别是什么
你走到宝箱前,查看这两个宝箱的外观(例如它们的编号或标签)。如果两个宝箱的编号相同,你就说它们是相同的宝箱。:你打开两个宝箱,检查里面的金币是否一模一样。如果金币的数量、种类和摆放方式都相同,你就说这两个宝箱是一样的。假设你有两个宝箱,分别装满了金币。你想知道这两个宝箱是否相同。通常是为了比较对象是否是同一个引用,而使用。则是为了比较两个对象的值或状态。来描述这两个比较的方式。原创 2024-08-18 21:52:47 · 110 阅读 · 0 评论