![](https://img-blog.csdnimg.cn/20210729171403962.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
java
java学习笔记。
_Lyang_
Focusing...
展开
-
Java单列集合Collection和双列结合Map体系结构图
单列集合双列集合原创 2024-04-11 13:43:32 · 110 阅读 · 0 评论 -
Java正则表达式
原创 2024-03-25 10:26:27 · 118 阅读 · 0 评论 -
Java的浅克隆和深克隆
原创 2024-03-22 20:48:46 · 152 阅读 · 0 评论 -
Java中 new BigInteger 和 BigInteger.valueOf 的区别
因此,如果你确定你的值在long类型的范围内,并且你希望充分利用缓存以提高性能,那么可以使用BigInteger.valueOf方法。如果你的值不在long类型的范围内,或者你想要确保创建一个新的BigInteger对象,那么你应该使用new BigInteger方法。这个方法只接受long类型的参数,并且会先检查给定的值是否在预定义的范围内(-128 到 127)。如果给定的值在范围内,则返回一个缓存的对象;否则创建一个新的对象。每次调用都会创建一个新的对象,即使相同的值已经存在于缓存中。原创 2024-03-13 21:29:33 · 554 阅读 · 0 评论 -
Java适配器设计模式
这一节后面的内容。原创 2024-03-07 14:20:30 · 451 阅读 · 0 评论 -
Java中接口新增的方法(默认方法,静态方法,私有方法)
Java中接口新增的方法(默认方法,静态方法,私有方法)原创 2024-03-07 14:18:53 · 321 阅读 · 0 评论 -
Java抽象类简述
原创 2024-03-04 14:49:45 · 359 阅读 · 0 评论 -
Java静态代码块
最后,输出静态变量的值。在Java中,静态代码块是一个在类加载时执行的一段代码,它用于对类进行初始化操作。在上面的例子中,staticVar是一个静态变量,而static关键字标记的静态代码块会在类加载时执行,为staticVar进行初始化。执行顺序: 静态代码块在类加载时执行,优先于类的构造方法执行。即使没有显式调用类的构造方法,静态代码块也会在类加载时执行。通常情况下,静态代码块用于执行一些静态变量的初始化、静态方法的调用或者一些其他静态资源的加载。执行次数: 静态代码块只执行一次,即在类加载时执行。原创 2024-03-04 14:07:52 · 374 阅读 · 0 评论 -
Java中String类型的变量为什么是不可变的
又有小伙伴问了,虽然你被 private 修饰,但是我用 get 和 set 方法不就可以访问和设置了吗?通过源码可以看到,其实 String 类型的变量,内部是一个 byte 数组 value,也就是说“apple”这个字符串,其实内部存储的时候是这样的:[‘a’, ‘p’, ‘p’, ‘l’, ‘e’],但是由于这个 byte 数组被。但是又有小伙伴问了:final 修饰的常量的值不可变,final 修饰的引用类型的地址不可变,这个数组是引用类型,我这里不改数组地址,我只改内容不就行了?原创 2024-03-04 11:11:54 · 324 阅读 · 0 评论 -
Java中多态调用成员的特点
Java中多态调用成员的特点原创 2024-03-04 09:30:59 · 368 阅读 · 0 评论 -
Java中static的内存原理
Java中static的内存原理原创 2024-03-02 17:04:01 · 321 阅读 · 0 评论 -
Java字符串相关类的底层原理
Java字符串相关类的底层原理原创 2024-03-02 17:03:30 · 377 阅读 · 0 评论 -
Java中this的本质与内存原理
代表方法调用者的地址值。原创 2024-02-28 13:19:34 · 347 阅读 · 0 评论 -
Java构造方法总结(很清晰)
这个关键字,Java 虚拟机在创建对象时是有很多步骤的,构造方法只是其中的一步,它的作用是进行。构造方法就是为了创建对象的。解释:真正创建对象的是。原创 2024-02-28 11:03:45 · 357 阅读 · 0 评论 -
Java数组内存图
Java数组内存图原创 2024-02-27 20:47:36 · 354 阅读 · 0 评论 -
Java基本数据类型,一图搞定
定义 float 类型,后面要加 F。定义 long 类型,后面要加 L;原创 2024-02-27 13:46:24 · 324 阅读 · 0 评论 -
Java的byte,short,char运算规则
byte,short,char 三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算。原创 2024-02-27 13:20:52 · 399 阅读 · 0 评论 -
Java多态的优点和缺点
Java的优点和缺点原创 2023-10-01 14:59:25 · 123 阅读 · 0 评论 -
Java子类到底能继承父类中的哪些内容
子类到底能继承父类中的哪些内容原创 2023-09-30 15:59:30 · 121 阅读 · 0 评论 -
Java对象内存图
对象内存图原创 2023-09-24 15:19:15 · 157 阅读 · 0 评论 -
JDK、JRE、JVM 之间的关系
Java Development Kit 是用于开发 Java 应用程序的软件开发工具,包括了 Java 运行时的环境(JRE)、解释器(Java)、编译器(javac)、Java 归档(jar ——一种软件包文件格式)、文档生成器(Javadoc)等工具。Java Runtime Enviroment 提供 Java 应用程序执行时所需的环境,由 Java 虚拟机(JVM)、核心类、支持文件组成。JDK = JRE + 开发工具。JRE = JVM + 类库。原创 2023-06-08 09:10:29 · 117 阅读 · 0 评论 -
Java中使用Iterable接口和Iterator实现遍历功能
通过实现迭代器的 hasNext() 和 next() 方法,我们可以在 MyIterator 类中定义迭代器的行为,使得可以按照一定的顺序迭代集合内的元素。我们可以使用 add() 方法向 MyCollection 中添加元素,并通过实现 Iterable 接口和返回 MyIterator 的 iterator() 方法,使得我们可以使用增强型 for 循环来遍历集合内的元素。通过自定义集合类和迭代器,我们可以根据自己的需求实现特定的迭代逻辑,使集合的使用更加灵活和符合业务需求。原创 2023-05-24 14:21:42 · 1495 阅读 · 0 评论 -
Java属性(Properties)使用Properties类管理配置信息
通过 Properties 类的 load() 方法,可以将配置文件的内容加载到 Properties 对象中。在这个示例中,我们创建了一个 Properties 对象 props,并从配置文件 config.properties 中加载了属性。最后,我们将修改后的属性保存回配置文件。在 Java 中,Properties 是一个用于处理属性(键值对)的类,它继承自 Hashtable,因此它具有哈希表的特性。默认值:Properties 支持默认值,当获取属性值时,如果属性不存在,可以提供一个默认值。原创 2023-05-24 13:06:41 · 440 阅读 · 0 评论 -
Java中List和Array转换
这种函数式写法我们会在后续讲到。原创 2023-05-23 14:39:32 · 1344 阅读 · 0 评论 -
Java字符串、字符数组、其他类型之间的相互转换
这是因为通过new String(char[])创建新的String实例时,它并不会直接引用传入的char[]数组,而是会复制一份,所以,修改外部的char[]数组不会影响String实例内部的char[]数组,因为这是两个不同的数组。使用静态方法valueOf()。这是一个重载方法,编译器会根据参数自动选择合适的方法。原创 2023-05-20 10:51:41 · 767 阅读 · 0 评论 -
Java编译器如何解析类名
如果按照上面的规则还无法确定类名,则编译报错。原创 2023-05-18 16:10:07 · 113 阅读 · 0 评论 -
Java抽象类和接口
方法类型不同:抽象类可以包含抽象方法和非抽象方法,非抽象方法可以有具体的实现;接口中只能包含抽象方法和默认方法(Java 8及以后的版本),默认方法有默认的实现。抽象类和接口是面向对象编程中常用的概念,它们都用于定义类的行为和约束,但在一些方面有明显的差异。都是用于实现多态性:抽象类和接口都支持多态性,可以在不同的类中实现相同的抽象方法或接口方法,从而实现不同类的对象具有相同的行为。都不能被实例化:抽象类和接口都不能直接实例化,只能通过子类来实现抽象类的具体方法或接口的方法。原创 2023-05-18 14:47:03 · 474 阅读 · 0 评论 -
Java抽象类与面向抽象编程
如果一个class定义了方法,但没有具体执行代码,这个方法就是抽象方法,抽象方法用abstract修饰。因为无法执行抽象方法,因此这个类也必须申明为抽象类(abstract class)。这种尽量引用高层类型,避免引用实际子类型的方式,称之为面向抽象编程。使用abstract修饰的类就是抽象类。因为抽象类本身被设计成只能用于被继承,因此,抽象类可以。因此,抽象方法实际上相当于定义了“规范”。无法实例化的抽象类有什么用?原创 2023-05-18 13:44:40 · 613 阅读 · 0 评论 -
Java中的多态究竟是什么
当我们调用animal1.makeSound()时,由于animal1引用的实际类型是Dog,因此调用的是Dog类中重写的makeSound()方法,输出"Dog is barking"。同样地,当我们调用animal2.makeSound()时,由于animal2引用的实际类型是Cat,因此调用的是Cat类中重写的makeSound()方法,输出"Cat is meowing"。让我们通过一个例子来解释多态性的概念。当我们通过父类类型的引用来引用子类对象时,我们可以根据引用的类型来调用相应的方法。原创 2023-05-18 13:26:51 · 81 阅读 · 0 评论 -
Java向上转型与向下转型
在向下转型的时候,把p1转型为Student会成功,因为p1确实指向Student实例,把p2转型为Student会失败,因为p2的实际类型是Person,不能把父类变为子类,因为子类功能比父类多,多的功能无法凭空变出来。Person类型的变量,如果指向Student类型的实例,对它进行操作,是没有问题的!现在问题来了:如果Student是从Person继承下来的,那么,一个引用类型为Person的变量,能否指向Student类型的实例?和向上转型相反,如果把一个父类类型强制转型为子类类型,就是。原创 2023-05-18 12:16:30 · 673 阅读 · 0 评论 -
Java中构造方法调用规则及父类构造方法的必要性
总结起来,Java中任何类的构造方法的第一行语句必须是调用父类的构造方法,以确保父类对象的初始化工作得以完成。如果父类没有无参构造方法,就必须显式调用父类的带参数构造方法,并提供相应的参数。为了调用父类的构造方法,Java规定在子类的构造方法中的第一行语句必须是显式调用父类的构造方法。在子类的构造方法中,我们通常需要首先调用父类的构造方法,以确保父类的初始化工作得以完成。如果父类没有无参构造方法,而只有带参数的构造方法,那么在子类的构造方法中就必须显式地调用父类的带参数构造方法,并提供相应的参数。原创 2023-05-18 10:36:03 · 585 阅读 · 0 评论 -
Java参数绑定(包括按值传递和按引用传递)
在上面的示例中,modifyArray方法接受一个整数数组的形式参数array,并将数组的第一个元素修改为10。由于实际参数numbers和形式参数array引用同一个数组对象,因此对形式参数的修改会反映在实际参数中。在上面的示例中,modifyValue方法接受一个基本数据类型的形式参数value,并将其修改为20。在方法调用中,参数绑定决定了方法的形式参数(在方法声明中定义的参数)和实际参数(传递给方法的参数)之间的关系。总结来说,Java中的参数绑定是根据参数的类型决定的。原创 2023-05-17 21:28:59 · 716 阅读 · 0 评论 -
Java中Calendar类的常用方法
Java中Calendar类的常用方法原创 2022-12-29 12:41:58 · 141 阅读 · 0 评论 -
Java中SimpleDateFormat
Java中SimpleDateFormat原创 2022-12-28 19:34:00 · 94 阅读 · 0 评论 -
Java深拷贝与浅拷贝
Java深拷贝与浅拷贝原创 2022-12-25 15:10:11 · 81 阅读 · 0 评论 -
Java寻找数组最大最小值
Java寻找数组最大最小值原创 2022-12-25 13:40:40 · 111 阅读 · 0 评论 -
Java接口
Java接口原创 2022-12-19 21:29:53 · 85 阅读 · 0 评论 -
Java中的枚举类
Java中的枚举类原创 2022-12-19 17:59:30 · 90 阅读 · 0 评论 -
Java toString()方法的使用和详解
Java toString()方法的使用和详解原创 2022-12-16 14:12:27 · 153 阅读 · 0 评论 -
Java中hashCode的作用
Java中hashCode的作用原创 2022-12-16 13:03:15 · 80 阅读 · 0 评论