Java合集
文章平均质量分 74
在学习Java过程中分享所学知识
达芬奇要当程序员
坚持学习每一天
展开
-
Java开发规范(简洁明了)
本篇规范基于阿里巴巴开发手册,总结了一些主要的开发规范,希望对大家有帮助。原创 2023-11-29 11:09:11 · 3672 阅读 · 0 评论 -
一篇博客带你认识泛型
Java 中的泛型是一种编程机制,允许你编写可以与多种数据类型一起工作的代码,同时提供编译时类型检查以确保类型的安全性。泛型的主要目的是提高代码的可重用性、类型安全性和程序的整体性能。原创 2023-11-26 10:15:46 · 2658 阅读 · 0 评论 -
针对String、StringBuffer、Stringbuilder区别及使用场景
如果你的代码在单线程环境下运行并且需要频繁地修改字符串,使用 `StringBuilder` 是一个不错的选择。如果在多线程环境下,或者需要线程安全的字符串操作,可以选择使用 `StringBuffer`。在其他情况下,如果字符串不需要被修改,使用 `String` 是更安全的选择。原创 2023-11-25 17:06:56 · 2756 阅读 · 0 评论 -
浅析jdk8所包含的主要特性
至今Java 8仍然是许多开发者首选的JDK版本,Java 8的生态系统非常成熟,许多库和框架都已经适配了Java 8。迁移到新的Java版本可能需要重新评估和调整现有的依赖关系,这对于一些大型项目可能是一个挑战。那么Java 8有哪些特性让多数开发者钟爱呢?原创 2023-11-23 16:36:21 · 2768 阅读 · 0 评论 -
为什么说重写equals时要重写hashcode
hashCode 是 Java 中 Object 类的一个方法,用于返回对象的哈希码。哈希码是一个32位的整数,它代表了对象的内存地址经过哈希算法生成的值。每个对象都有一个对应的哈希码。哈希码的主要作用是在集合类中,比如HashMap和HashSet等,用于快速定位对象的位置。原创 2023-11-23 14:14:16 · 2635 阅读 · 0 评论 -
类加载过程
Java类加载过程包括加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)五个阶段。这些阶段是按照顺序逐步执行的。这五个阶段共同构成了Java类加载的过程。需要注意的是,类加载过程是动态的,可以在运行时通过反射等机制动态加载类。类的生命周期是在加载类之后进行使用再卸载。原创 2023-11-23 11:03:52 · 1011 阅读 · 0 评论 -
如何理解IOC中的反射操作
在IoC容器中,反射(Reflection)是一种机制,用于在运行时获取类型信息、创建对象实例以及访问或修改类的属性、方法等。它允许在运行时获取和操作类型信息,使得IoC容器能够更加智能地管理组件之间的关系,减少硬编码,提高代码的可维护性和可扩展性。反射使得容器可以通过读取配置文件或者扫描程序集,动态地了解类的信息,从而正确地配置和管理这些类。实例化对象,而在IoC容器中,你只需提供对象的类型,IoC容器就能使用反射来创建对象的实例。现在,我们使用反射来实现这个简化的IoC容器。假设有一个简单的服务类。原创 2023-11-18 21:02:54 · 2331 阅读 · 0 评论 -
如何理解Java是按值传递
对于对象引用,传递的是引用的副本,即对象在内存中的地址的副本。在方法内部,对对象属性的修改会影响原始对象,但如果在方法内改变了引用指向一个新的对象,原始对象不会受到影响。我们发现输出结果并没有交换,这是因为我们在方法内改变了引用指向一个新的对象,这样的结果就是新对象对应的值跟原对象的值产生交换效果,而原对象没有发生改变。函数内部进行了属性交换,但由于Java是按值传递的,实际上传递的是对象引用的副本,所以在函数外部仍然能够访问交换后的属性值。但是,当我们在方法内部对对象属性的修改是会影响原始对象。原创 2023-11-16 16:31:03 · 2047 阅读 · 0 评论 -
什么是Integer128陷阱
在Java中,对于范围在-128到127之间的整数,自动装箱时会使用缓存的对象,以提高性能和节省内存。这是因为Java认为这些值是常用的,因此通过缓存这些常用的。对象时,因为对于超出-128到127范围的值,相等性比较使用的是对象的引用比较,而不是数值比较。然而,当超出这个范围时,每次自动装箱都会创建一个新的。对象,而不是使用缓存中的对象。这可能导致意外的行为,特别是在比较。对象,可以减少对象的创建和提高性能。的值相同,但由于超出了缓存范围,它们实际上是两个不同的。为了避免这个陷阱,最好使用。原创 2023-11-16 10:01:17 · 2011 阅读 · 0 评论 -
乐观锁与悲观锁
乐观锁是一种并发控制的机制,其核心思想是假设多个事务之间的冲突是不太可能发生的,因此在事务处理之前不会加锁,而是在事务提交的时候再检查是否有冲突。如果发现冲突,就会回滚事务,重新尝试。悲观锁是一种并发控制的机制,它的核心思想是在操作数据之前,悲观地认为会有并发操作的冲突,因此先进行加锁,确保每个时刻只有一个事务可以访问或修改共享资源。原创 2023-11-15 11:50:11 · 1323 阅读 · 0 评论 -
Java读取文件内容写入新文件
以上就是读写文件的操作过程,在我们使用时要确保替换。为实际的文件路径,并且在使用完流后自动关闭它们。要实现读写文件这个过程我们需要导入以下的包。用于逐行读取源文件的内容,用于逐行写入目标文件。原创 2023-11-14 23:00:55 · 2751 阅读 · 0 评论 -
Java 中表示整数的包装类Integer(详解)
在Java中,Integer是一个类,它封装了一个int类型的值,使得int类型的值可以被当做对象来处理。Integer类提供了许多方法来操作整数值,包括将字符串转换为整数、将整数转换为字符串、比较两个整数值等。Integer类也提供了常量MAX_VALUE和MIN_VALUE,它们表示int类型的最大值和最小值,以及常量TYPE,它表示Integer类所封装的整数类型。在Java中,整数类型包括int、short、byte和long,其中int类型是最常用的整数类型。是 Java 中的一个类,属于。原创 2023-11-13 22:21:13 · 2411 阅读 · 0 评论 -
什么是Java序列化,它有哪些重要性
Java 序列化是一种将对象转换为字节流的过程,以便将其保存到文件、数据库或通过网络传输。反序列化则是将字节流重新转换为对象的过程。Java 提供了接口,实现该接口的类可以被序列化。序列化主要通过进行,而反序列化通过实现。原创 2023-11-12 18:27:00 · 1942 阅读 · 0 评论 -
HashMap的使用,以及内置方法
HashMap是 Java 中常用的集合类之一,它实现了Map接口,基于哈希表实现。HashMap允许存储键值对,其中键和值都可以是任意类型的对象。原创 2023-11-11 22:14:04 · 2095 阅读 · 0 评论 -
什么是Java中的反射(Reflection),如何使用它
Java中的反射(Reflection)是指在运行时动态获取一个类的信息,包括类名称、属性、方法等。通过反射,程序可以在运行时动态地创建对象、调用方法、修改属性等,而不需要在编译时确定这些信息。原创 2023-11-09 11:39:15 · 1607 阅读 · 0 评论 -
不同访问修饰符的访问数据权限的区别
在Java中,有四种访问修饰符:public、private、protected和默认修饰符。它们的作用是控制类、变量和方法的可见性,也就是说它们控制了哪些代码可以访问某个类、变量或方法的数据成员。原创 2023-11-09 10:47:09 · 1547 阅读 · 0 评论 -
Java中的面向对象编程特性(封装、继承、多态)
封装指的是将数据和方法包装在一个类中,并控制对其访问的权限。封装可以提高代码的安全性和可维护性,避免了外部程序直接访问和修改对象的属性或方法,从而减少了代码出错的可能性。原创 2023-11-09 10:26:08 · 1538 阅读 · 0 评论 -
Java中的自动装箱和拆箱
自动装箱(Autoboxing)和拆箱(Unboxing)是与Java编程语言中的基本数据类型(如int、double、char等)和对应的包装类型(如Integer、Double、Character等)之间的转换相关的概念。这些转换功能是Java编程语言的特性,旨在简化开发人员的编码工作。自动装箱和拆箱可以简化代码编写,使代码更具可读性,但在一些情况下也可能引发性能问题,因为它们会引入额外的对象创建和销毁操作。,编译器在需要时会自动完成这个操作。编译器在需要时会自动完成这个操作。原创 2023-11-08 17:15:47 · 1603 阅读 · 0 评论 -
创建线程的三种方式:继承Thread、Runnable 接口、Callable 接口
无论你是选择实现Runnable接口还是继承Thread类,都需要明确指定线程要执行的任务,并在run方法中编写相应的代码。通常情况下,使用Runnable接口是更灵活和推荐的方式,因为它允许你将相同的任务传递给多个线程,而继承Thread类可能会导致类的单继承限制问题。这是Java中创建线程的推荐方式,因为它允许你分离线程的任务(run 方法)与线程的执行。这是另一种创建线程的方式,但通常不被推荐,因为它将线程的任务和线程本身耦合在一起。这将创建一个新的线程并执行run方法中定义的任务。原创 2023-11-08 09:00:00 · 2073 阅读 · 0 评论 -
什么是Java虚拟机(JVM),它的作用是什么?
Java虚拟机(Java Virtual Machine,JVM)是Java平台的关键组成部分,它是一种在不同操作系统上运行Java程序的虚拟计算机。JVM的作用是执行Java字节码(Java bytecode),它是由Java编译器生成的中间代码,而不是直接执行源代码。原创 2023-11-07 20:44:26 · 1762 阅读 · 0 评论