自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 Java中异常有什么用?

在Java中,异常处理机制是一种用于处理运行时错误或其他意外情况的重要功能。通过异常处理,程序可以更加健壮和可靠,即使在发生错误时也能优雅地处理并恢复,而不是直接崩溃。:通过catch块,你可以捕获在try块中抛出的异常,并执行一些恢复操作,比如打印错误消息、清理资源等。通过这种方式,Java的异常处理机制为开发者提供了一种强大且灵活的工具来编写健壮和可靠的代码。:你可以通过创建自定义异常类来提供特定于应用程序的错误处理。:即使发生了异常,程序也可以继续运行,而不是直接崩溃退出。

2024-10-14 18:59:02 217

原创 Java中多态的内存

而在堆区的介绍中没有明确的列出字符串常量池是因为在现代Java虚拟机的实现中,字符串常量池虽然与堆区有紧密的关系,但它并不直接等同于堆区的一个独立子区域,而是有其特殊的存储和管理方式。类的字段(包括静态变量和实例变量,但仅字段的描述信息存储在方法区,而字段的值存储在其他区域,如静态变量存储在方法区的静态变量区,实例变量存储在堆区)和方法的字节码内容、一些特殊方法(如构造函数、接口方法、虚方法、默认方法等)也存储在方法区。Dog dog是一个Dog类型的引用,存储在栈内存中,指向堆区中的Dog对象。

2024-09-26 18:24:41 914

原创 静态绑定和动态绑定

在编译时期就能确定方法调用的目标。例如:静态方法、构造函数、最终方法等。

2024-09-18 19:53:47 658

原创 Java-instanceof关键字

instanceof是Java中的一个关键字,用于测试一个对象是否是某个类的实例,或是否实现了某个接口。这个操作符返回一个布尔值(true或false),表示对象是否是指定类型的实例。

2024-09-12 19:51:40 317

原创 Java字符串

出现的位置。

2024-09-11 19:24:15 1261 2

原创 浅拷贝和深拷贝

浅拷贝:复制对象的字段值,对象的引用类型字段指向相同的内存地址。修改引用类型字段会影响到原对象和新对象。深拷贝:递归复制对象及其引用类型字段,确保新对象和原对象完全独立。修改新对象中的引用类型字段不会影响原对象。在实际开发中,选择浅拷贝还是深拷贝取决于具体的需求和场景。深拷贝通常在需要完全独立的对象副本时使用,但可能会比浅拷贝更复杂和耗费更多资源。

2024-09-10 20:11:56 546

原创 不变模式是什么?如果String不是不变模式会出现什么问题?

不变模式通常围绕一个具有不变性的类展开,即一个类的内部状态在创建后整个生命周期都不发生变化,这样的类可称为不变类。使用不变类的做法就叫做不变模式。这意味着对象的所有属性在对象创建后都是固定的,不能被改变。这样可以确保对象在多线程环境中的安全性,避免因并发修改而导致的不一致性问题。同时,不变对象可以被安全地共享,无需担心数据被意外修改。但是不变模式并不一定只涉及到一个类。在实际应用中,可能会有多个类相互协作来共同实现不变性。

2024-09-10 18:43:05 286

原创 常量池的理解,8个包装类和String和其他类生成对象的不同之处

常量池是一块特殊的内存区域,用于存储编译器确定的各种字面量和符号引用。

2024-09-10 17:32:51 246

原创 +连接String的对象个数

这样比较直接的说可能不太好理解,还是通过例子来介绍吧。String str1 = "乐悠";String str2 = "小码";//乐悠小码这是连接两个字符串的例子这段代码前两句String str1 = "乐悠";和String str2 = "小码";这两段代码如果说在字符串常量池中没有这两个字符串数据的话,它们会各创建一个对象,如果在字符串常量池中已经存在了这两个字符串的话,这两句代码就不会创建对象。

2024-09-08 11:38:24 897

原创 方法重载和方法重写

条件:1.同一个类2.方法名相同3.方法的参数类型、个数、顺序至少一项不同·其他说明:1.方法的返回类型可以不同2.方法的修饰符可以不同3.同一个类中不允许出现两个名称,参数完全相同的方法重载方法的调用:1.利用调用时候的实参数区分调用的是哪个重载方法2.方法的实参与形参类型相同或兼容个数相同顺序一致//构造方法也可以重载//重载方法在调用的时候通过参数的个数,类型,顺序来区分调用的是哪一个重载方法//char可以默认转换为int型(兼容)//相同优先于兼容。

2024-09-07 09:19:40 593 2

原创 Java中super关键字的用法

由于静态方法不属于任何一个具体的对象,而this代表的是当前对象的引用,在静态方法中没有一个特定的对象可以被引用,所以不能使用this关键字。在静态方法中,没有对象实例的概念,无法确定要访问哪个父类对象的成员,所以不能使用super关键字。·只能放在方法的第一行,this与super不能在同一方法中使用(因为this也需要写在方法的第一行,所以this与super不能在同一方法中使用)·父类若无无参构造方法,必须在子类构造方法中显式调用父类构造方法,否则编译报错。·默认调用无参构造方法。

2024-09-07 08:18:13 314

原创 Java中String、基本数据类型、包装类之间的转换

示例: int result = new Integer(10);(这种写法不建议,只是为了说明自动拆箱概念)这里的 Integer 对象在参与整数运算时会自动拆箱为 int 类型的 10。:Java 自动将基本数据类型转换为对应的包装类,例如在需要使用对象的地方直接使用基本数据类型,Java 会自动进行装箱操作。这里将基本数据类型 int 值 10 自动装箱为 Integer 对象。:当包装类对象在需要基本数据类型的地方使用时,Java 会自动将其转换为基本数据类型,这就是自动拆箱。

2024-09-05 17:50:52 276

原创 下面这段Java代码一共创建了多少个String对象???

String的字符串常量位于字符串常量池中,而字符串常量池在1.6的时候位于方法区,1.8之后位于堆区,而常量池在设计的时候为了减少内容,如果字符串常量已经存在,则再次使用的时候会直接引用,而如果需要的字符串常量不存在,就需要在常量池中创建出来。不管常量池中如何,只要有new就会在堆区中创建一个字符串对象,所以问创建了对少个字符串对象,需要同时考虑堆区和常量池的问题。故上述代码一共创建了7个String对象。

2024-09-05 16:45:27 154

原创 Java中StringBuffer的用法,常用方法,以及与String的相同和不同之处

如果不足,StringBuffer 会自动创建一个更大的新字符数组(通常是原来容量的一定倍数加上新添加字符的长度),然后将原字符数组中的内容复制到新数组中,再继续进行添加操作。StringBuffer 类似一个字符容器,当在其中添加或删除字符时,所操作的都是这个字符容器,因此并不会产生新的 StringBuffer 对象。在 Java 语言中,由于 String 类是final 类型的,所以使用 String 定义的字符串是一个常量,因此其内容和长度都是不可改变的。源码如下(由于类中内容过多,内容已省略)

2024-09-05 16:23:22 330

原创 Java中集合类与数组的转化

【代码】Java中集合类与数组的转化。

2024-09-05 11:25:54 109

原创 Java中如何理解二维数组

二维数组用于表示一组具有相同数据类型的元素的集合,这些元素按行列排列成一个二维表格的形式。在 Java 中,二维数组可以看作是一个特殊的一维数组,其中的每个元素又是一个一维数组。通过两个索引来访问二维数组中的元素,第一个索引表示行,第二个索引表示列。,或者动态初始化,比如先指定行数,再分别为每一行指定列数。在一些数据表格相关的程序中存储和处理多行多列的数据。表示访问第 2 行第 3 列的元素。初始化可以使用静态初始化,例如。在图形处理中用于表示像素矩阵等。

2024-09-05 11:01:38 182

原创 Java中static的使用范围

静态方法只能访问静态成员(静态属性和其他静态方法),不能直接访问实例成员。静态方法中不能直接调用非静态属性和非静态方法,可以直接调用静态属性和静态方法。非静态方法中可以直接调用静态属性、静态方法、非静态属性和非静态方法。可以修饰代码块,即静态代码块。静态代码块在类加载时执行,且只执行一次,通常用于初始化静态成员或者进行一些一次性的初始化操作,比如加载配置文件、初始化数据库连接池等。加载时机通常在相关的外部类被加载时,但具体触发其加载的操作可能因不同的运行环境和代码执行路径而有所差异。

2024-09-04 19:59:15 453 1

原创 Java中打印地址的四种方法

【代码】Java中打印地址的四种方法。

2024-09-04 19:21:16 167

原创 Java中为什么普通对象打印的是地址,而字符串打印的是内容

因为普通对象调用的是Object的toString方法,会将完整的包名+类名+@+十六进制的地址值打印在控制台上, 而String类重写了Object的toString方法,会将字符串转换为字符数组,再将字符数组输出到控制台上,所以打印的是内容。

2024-09-04 19:05:40 195

原创 Java中==和equals的区别

equals在比较内容的时候,需要将字符串转换为字符数组,然后再通过循环进行逐一比较,但是为了提高比较效率,设置的三重判断,第一重比较两个对象的地址是否相同,如果地址相同则表示是同一个对象,返回为true,如果两个对象地址不相同,则进行第二重判断,比较对象是不是String类型的,如果不是,就返回false,如果为true则进行第三重判断,第三重判断,比较两个字符串长度是否相同,如果长度不相同,则证明这是两个字符串,如果长度相同,再进行转换为字符数组,进行按位逐一比较。

2024-09-04 18:57:26 441

原创 Java-权限修饰符

修饰类的成员变量和方法时的访问范围4种权限修饰符的访问范围如表所示。:可以在同一个类中、同一个包中、派生类中不在同包下、其他包中进行访问:可以在同一个类中、同一个包中、派生类不在同包下访问:可以在同一个类中、同一个包中访问:仅在同一个类中可以访问由此可见,权限修饰符public的访问权限是最高的,private的访问权限最低,也是最安全是的。private也体现出了Java三大特性(封装、继承、多态)之一的。

2024-09-03 19:19:12 204

原创 this的三种用法

【代码】this的三种用法。

2024-09-03 16:05:19 349

原创 import java 和import javax的差异

import java和import javax的差异:答:import java 和 import javax在java编程中的差异主要体现在它们所代表的包和这些包所包含的内容有所不同。 java包:是JavaAPI中的核心包,包含了运行Java类所需的基本类和方法。这些包在Java发布之初就已经确定,是Java语言 规范的一部分。 javax包:是Java扩展的一部分,提供了更高级的API和功能,这些扩展API涵盖了各种服务和技术,如安全性、企业特性 、网络编程等。 主要差异

2024-09-03 15:32:15 288

原创 常见的排序算法

【代码】常见的排序算法。

2024-09-03 10:32:59 246

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除