
Java basic
文章平均质量分 85
goTsHgo
这个作者很懒,什么都没留下…
展开
-
Java 中处理 XML 文件
DOM 解析适合小型 XML 文件,支持随机访问和修改操作,但内存消耗大。SAX 解析适合大型 XML 文件,内存占用小,但只支持顺序读取,无法修改或随机访问。根据实际场景选择解析方式,优化内存和性能。可以结合 DOM 和 SAX 的优点,或考虑使用 StAX 来处理复杂的 XML 文档解析需求。原创 2024-09-09 13:39:48 · 1579 阅读 · 0 评论 -
Java 8 时间日期处理
Java 8 的日期和时间 API 通过不可变性、类型安全性、线程安全性以及直观的 API 设计,解决了旧 API 中的许多问题。使用这个 API 时,需要特别注意时区的处理、日期时间的精度、格式化与解析的正确性,以及与旧版日期时间类的兼容性。在实际应用中,灵活运用PeriodDuration和等类,可以有效简化复杂的日期时间计算逻辑。原创 2024-09-09 12:21:05 · 1013 阅读 · 0 评论 -
Java 异常处理 详解
Java异常体系结构提供了丰富的工具来处理程序执行中的各种错误情境。通过理解异常的分类和处理机制,遵循标准化的处理规则,并运用适当的技巧,可以编写更加健壮、可维护的代码。特别需要注意的是,合理使用异常处理,不仅仅是为了捕获错误,更重要的是确保程序在异常情境下的正确性、可控性和用户体验。原创 2024-08-28 16:42:28 · 1209 阅读 · 0 评论 -
Java开发中的IO体系
Java IO体系提供了丰富的工具,用于处理各种类型的数据源,支持从字节级别到字符级别的数据操作。通过掌握这些概念和技巧,可以高效、安全地执行各种IO操作,特别是在处理大文件、高并发网络应用时,使用NIO可以显著提升性能。注意资源管理、字符编码、异常处理等细节,将有助于编写健壮的IO代码。原创 2024-08-28 17:22:55 · 1191 阅读 · 0 评论 -
Java final关键字的作用
目录前言一、final关键字是什么?二、finally是什么三、finalize简介1.finalize定义2. finalize的执行过程(生命周期)总结前言在面试的过程中经常会被问到:final、finally与finalize的区别,本篇就是为了解释一下此问题。一、final关键字是什么? 1、final可以用来修饰的结构:类、方法、变量 2、final用来修饰一个类:此类不能被其它类继承。当我们需要让一个类永远不被继承,此时就可以用fi..原创 2021-10-20 18:35:36 · 7612 阅读 · 0 评论 -
Integer包装类详解加部分源码
如果值为-128到127之间,则不转换成为Integer,保存在一个cache数组中。【5】包装类是对基本数据类型的封装: 对int类型封装产生了Integer。(2)自动装箱 自动拆箱 :将基本数据类型和包装类进行快速的类型转换。(1)自动装箱 自动拆箱 是从JDK1.5以后新出的特性。被final修饰,那么这个类不能有子类,不能被继承。【6】类的历史: 从JDK1.0开始。valueOf转换成为Integer。【8】构造器(发现没有空参构造器)IntValue转换成为int。原创 2023-07-26 15:14:41 · 243 阅读 · 0 评论 -
解析Java中的`Vector`类源代码
74. `public Vector(int initialCapacity, int capacityIncrement)`:构造函数,创建一个初始容量为`initialCapacity`的`Vector`,并指定每次增长容量时的增量值为`capacityIncrement`。1. `Vector`类是一个线程安全的动态数组,继承自`AbstractList`类,实现了`List`接口、`RandomAccess`接口、`Cloneable`接口和`Serializable`接口。原创 2023-07-28 08:28:29 · 183 阅读 · 0 评论 -
CopyOnWriteArrayList
CopyOnWriteArrayList` 是一个线程安全的列表,它继承自 `AbstractList` 类,实现了 `List` 接口,并且还实现了 `RandomAccess`、`Cloneable` 和 `Serializable` 接口。它的主要特点是在进行写操作时,会创建一个新的数组副本,以保证读操作的线程安全性,从而避免了读写冲突。原创 2023-07-28 08:47:24 · 158 阅读 · 0 评论 -
Java ServletRequest 类源码解析
它表示请求是通过 `REQUEST`、`INCLUDE`、`FORWARD`、`ASYNC` 或 `ERROR` 调度的。16. `Enumeration getParameterNames()`: 返回包含所有请求参数名称的 `Enumeration` 对象,以便遍历和访问请求参数。5. `long getContentLengthLong()`: 类似于 `getContentLength()` 方法,但返回类型为 `long`,用于获取请求体的长度。原创 2023-07-28 10:19:33 · 250 阅读 · 0 评论 -
HttpServletRequest类全解析
HttpServletRequest` 是 Java Servlet API 中的接口,它是 `ServletRequest` 接口的子接口,提供了更多用于访问 HTTP 请求信息的方法。7. `Enumeration getHeaders(String name)`: 返回指定请求头的所有值的 `Enumeration` 对象。15. `String getRemoteUser()`: 返回发出请求的用户的登录名(如果用户已通过身份验证),否则返回 `null`。原创 2023-07-28 10:29:49 · 434 阅读 · 0 评论 -
ServletResponse类全解析
ServletResponse` 是 Java Servlet API 中的接口,用于代表对客户端的响应。它定义了用于构建和发送响应给客户端的方法。原创 2023-07-28 10:38:34 · 415 阅读 · 0 评论 -
HttpServletResponse类全解析
HttpServletResponse` 是 Java Servlet API 中的接口,它是 `ServletResponse` 接口的子接口,专门用于处理 HTTP 响应。`HttpServletResponse` 定义了用于设置 HTTP 响应信息的方法。原创 2023-07-28 10:48:02 · 826 阅读 · 0 评论 -
线程池及其底层工作原理
1.原创 2024-07-15 14:08:28 · 2308 阅读 · 0 评论 -
Atomic 原子类介绍及其原理
简单介绍一下CAS(compareAndSwap),是一种无锁原子算法,映射到操作系统就是一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值,其实现方式是基于硬件平台的汇编指令,在intel的CPU中,使用的是cmpxchg指令,就是说CAS是靠硬件实现的,从而在硬件层面提升效率。仅当 V值等于E值时,才会将V的值设为N,如果V值和E值不同,则说明已经有其他线程完成更新,则当前线程则什么都不做,最后CAS 返回当前V的真实值。原创 2024-07-15 16:28:20 · 596 阅读 · 0 评论 -
synchronizedList 原理和应用详解
是 Java 中类提供的一种方法,用于创建线程安全的列表。原创 2024-07-29 11:48:43 · 1081 阅读 · 0 评论 -
Java中 static 关键字相关的用法
静态属性(也称为类属性)是属于类本身的变量,而不是类的某个实例的变量。这意味着,无论创建多少个类的实例,静态属性都只有一个副本,所有实例共享这一副本。静态方法是属于类而不是类实例的方法。它们只能访问静态属性和静态方法,不能访问实例属性或实例方法。静态代码块是类中的一段代码,它会在类加载时自动执行。它通常用于类的初始化工作,如静态属性的初始化。在Java中,静态类通常指的是静态嵌套类(Static Nested Class),即定义在另一个类中的静态类。静态嵌套类不持有外部类的实例引用。原创 2024-08-21 09:32:04 · 1783 阅读 · 0 评论 -
Java面向对象编程简介
定义与概念抽象是指将类或方法声明为抽象(abstract),抽象类不能实例化,抽象方法必须在子类中实现。抽象通过定义共性的行为和属性而不提供具体实现,从而构建框架或模板。使用场景抽象类用于定义一组相关类的公共行为。例如,Animal 抽象类可以定义 move() 和 makeSound() 方法,而具体动物类(如 Dog 和 Bird)提供这些方法的实现。抽象方法强制子类实现特定行为,确保子类符合某个标准或协议。原创 2024-08-20 17:00:27 · 658 阅读 · 0 评论 -
java程序编写和执行时涉及到的各个路径
在编写和执行 Java 程序的过程中,不同路径的设置和使用是非常关键的。下面我将详细解释 Java 程序开发和执行时涉及到的各个路径。原创 2024-08-16 11:37:42 · 1330 阅读 · 0 评论 -
Java中的基本类型类型转换
/ 基本类型转换为 Stringint i = 42;// "42"// "42"// "42"// String 转换为基本类型// 42// 42// true// 错误处理try {// 会抛出 NumberFormatExceptionSystem.out.println("无法将字符串转换为整数: " + e.getMessage());原创 2024-08-16 12:03:43 · 973 阅读 · 0 评论 -
Object 的 equals() 和 hashCode()
在 Java 中, 类是所有类的根类, 和 是 类中非常重要的两个方法。它们在对象比较和集合框架(如 , 等)中扮演着关键角色。理解这两个方法的作用以及如何正确地重写它们是编写健壮 Java 代码的基础。定义: 方法用于比较两个对象的“内容”是否相等。默认情况下, 类中的 方法比较的是对象的引用(即两个对象是否是同一个对象)。默认实现: 这意味着如果你不重写 方法, 的默认实现将返回 仅当两个引用指向同一个对象。重写 : 如果你希望按照对象的内容(例如属性值)来比较两个对象是否相等,则需原创 2024-08-16 12:18:16 · 595 阅读 · 0 评论 -
Java 中 String 类型的特点
在 Java 中,String是一种常用且重要的数据类型,用于表示和处理字符序列。它有一些独特的特性和用法,使得它在开发中非常灵活和高效。以下是关于String类型的一些特点、特殊性、使用技巧以及注意事项。原创 2024-08-16 14:07:28 · 1069 阅读 · 0 评论 -
Java Class和instance的概念以及之间的差别
在 Java 编程中,Class和Instance是两个核心概念,它们分别代表了类的定义和类的具体对象。理解这两个概念及其区别对于编写和理解 Java 代码非常重要。原创 2024-08-16 14:26:59 · 531 阅读 · 0 评论 -
Java Instance(实例)的创建过程
默认初始化:内存分配完成后,JVM 会将内存区域中的所有实例变量初始化为默认值,包括父类和子类的变量。实例变量的定义处初始化:在类的定义中,如果为某些实例变量赋予了初始值(在定义时赋值),这些赋值操作会在父类构造方法执行完毕并返回后执行,初始化父类的字段。然后子类构造方法中的初始化操作会继续进行,初始化子类的字段。原创 2024-08-20 12:01:39 · 1573 阅读 · 0 评论 -
Java 的访问控制修饰符
被访问,其他类(包括子类)不能访问它。字段: 被 private 修饰的字段只能在定义它的类内部被访问,其他类(包括子类)不能访问或修改它。原创 2024-08-20 16:11:23 · 1206 阅读 · 0 评论 -
Java中的==的作用以及和equals() 的区别
Java中的==众所周知: 如果是基本数据类型,==判断的是值 如果是对象类型,==判断的是对象的地址所以我们这边比较的是:基本数据类型和包装类之间的数据比较:如下double a = 2.0;double b = 2.0;Double c = 2.0;Double d = 2.0;System.out.println("a == b : " + (a == b));System.out.println("c == d: " + (c == d));System.原创 2021-08-24 21:11:35 · 405 阅读 · 0 评论