java
文章平均质量分 63
锐湃
这个作者很懒,什么都没留下…
展开
-
用final声明的局部变量,能提升性能吗
因为当方法执行结束时,方法内的参数和局部变量会跟着方法一起结束,都会被回收,而内部类的生命周期可能比方法长(例如:线程)。如果允许修改外部局部变量,而外部方法已经结束,变量可能已经被回收,这会导致数据不一致和不可预测的结果。由于匿名内部类可能会在不同的线程中被执行,如果允许修改外部局部变量,可能会引发线程安全问题。的局部变量编译后的 Class 文件都是一样的,因此访问效率都是一样的。,可以确保在匿名内部类中使用的变量值在其创建时就被固定下来,不会在后续发生变化。的局部变量通常不会直接带来显著的性能提升。转载 2024-08-13 10:01:23 · 25 阅读 · 0 评论 -
基础-WeakReference
这四种状态只是一种说明,实际上Reference对象并没有任何的status字段,不过作为队列中的节点,它有一个next字段,当状态为Active时,其next为null,而当其为其它状态时,next一定不为null,而是指向队列中的下一个引用,如果其本身就是队列中的最后一个元素,则next指向其自身。可见,referent属性存储了其所引用的对象,而queue这个字段是可选的,前面说到,queue的作用保存对象将被回收的引用,由垃圾回收器负责往里面添加,但如果不提供,则没有这一过程。转载 2024-06-20 09:59:56 · 99 阅读 · 0 评论 -
Java 数据结构之队列(Queue)详解
通过enqueue()方法将元素入队,dequeue()方法将元素出队,peek()方法返回队列头部元素,size()方法返回队列当前元素个数,isEmpty()方法和isFull()方法检查队列是否为空或已满。但需要注意的是,由于数组的容量是固定的,当队列已满时,无法再添加新的元素,除非进行元素的出队操作。Queue接口是Java集合框架中定义的一个接口,它代表了一个先进先出(FIFO)的队列。它是Queue接口的扩展,可以方便地实现队列、栈和双向队列的功能,并提供了丰富的方法来操作和访问队列中的元素。转载 2024-06-05 13:42:01 · 2294 阅读 · 0 评论 -
Java时区处理 TimeZone.getTimeZone(“UTC“)
通用协调时(UTC, Universal Time Coordinated),格林尼治平均时(GMT, Greenwich Mean Time) 由于历史原因,这两个时间是一样的。北京时区是东八区,领先UTC八个小时,在电子邮件信头的Date域记为+0800。UTC + 时区差 = 本地时间。转载 2024-04-24 17:47:24 · 322 阅读 · 0 评论 -
Java时间处理(UTC时间和本地时间转换)TimeZone.getTimeZone(“UTC“)
协调世界时,又称世界标准时间或世界协调时间,简称UTC(从英文“Coordinated Universal Time”/法文“TempsUniversel Coordonné”而来),是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治标准时间。本文主要对UTC、GMT、CST等时间概念做简单的介绍,比较实用的在于本文最后一个小知识点:带时区格式的时间和本地时间格式两者之间的转换方法,再次只是对简单情况做处理,如果需要处理复杂的时间转换,可以百度找一下jar包。3 CST(北京时间)转载 2024-04-24 17:45:42 · 1036 阅读 · 0 评论 -
-UTC时间及时区获取
可以采用多种方法获取,这里只简单介绍两种:直接获取零时区时间、根据本地时间计算得出。UTC时间:世界统一时间,世界标准时间又称格林尼治平时或格林尼治时间。PS:UTC时间+时区差=本地时间。转载 2024-04-24 17:32:57 · 283 阅读 · 0 评论 -
时区TimeZone.getTimeZone(“GMT-8:00“)和TimeZone.getTimeZone(“America/Los_Angeles“)的区别
2)进一步测试发现,两个时区对同一个时间进行解析获取到UTC 时间戳是不一样的,进入夏令时时后者比前者少了3600000毫秒(夏令时的值),不进入夏令时时两者则相等。版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。从上面的结果可以看到"GMT-8:00"获取不到夏令时偏移,但是"America/Los_Angeles"可以获取到夏令时偏移量。这说明java,在获取时间戳时,会根据时区里的夏令时偏移自动减去多余的偏移量,获取到正确的UTC时间戳。转载 2024-04-24 17:29:41 · 376 阅读 · 0 评论 -
ART虚拟机内存分配原理浅析
简单总结了一下art虚拟机内存分配的原理,通过这些点我们可以对安卓里这些java对象如何分配有一个简单的认知,对排查内存相关问题,研究一些内存性能优化方案建立一个基础。ART虚拟机内存分配原理浅析。转载 2024-04-10 11:13:40 · 72 阅读 · 0 评论 -
java的finalize方法
我们通常用构造器来创建对象,而Finalize正好相反,构造方法执行对象的初始化操作,finalize方法执行对象的销毁操作.那我们什么时候需要使用finalize方法呢,我们都知道Java里垃圾回收器可以回收对象使用的内存空间,但是对象可能会持有很多资源比如Socket、文件句柄等,垃圾收集器无法回收这些资源,因此你需要使用finalize方法帮助GC回收这些资源,比如关闭打开的文件或者网元资源,删除临时文件等.转载 2024-04-10 11:05:41 · 48 阅读 · 0 评论 -
File.createTempFile创建临时文件
总结:临时文件能够使用默认路径,可以避免存在创建文件是因为路径错误导致创建文件失败的问题。如果需求中需要创建一个临时文件,这个临时文件可能作为存储使用,但在程序运行结束后需要删除文件,可以使用deleteOnExit方法。createTempFile() 方法,在指定的目录下创建一个temp文件,directory 类型为File ,如果路径不存在,则创建失败。可以得知,createNewFile() 方法,根据抽象路径创建一个新的空文件,当抽象路径指定的文件存在时,创建失败。返回值为 boolean;转载 2024-02-27 19:44:26 · 1002 阅读 · 0 评论 -
使用Gson库将List转换为JSON字符串
以上是三种不同的实现方法,用于将List转换为JSON字符串。方法一手动遍历List并添加引号和分隔符,方法二使用Gson库的toJson方法,方法三适用于泛型List,使用TypeToken来处理。根据实际需求选择合适的方法使用。方法三:使用Gson库的TypeToken将List转换为JSON字符串(适用于泛型List)方法二:使用Gson库的toJson方法将List转换为JSON字符串。方法一:手动遍历List并转换为JSON字符串。转载 2024-02-22 20:01:53 · 1826 阅读 · 0 评论 -
Gson字符串数组转成List对象(包括泛型操作)
通常情况下,Server端返回的json数据应该可以一次性完全解析,但是要是遇到server返回的json里又包含json字符串就得自己再手动解析一次了。我们知道json字符串解析成模型类型很简单,但是如果要把json数组字符串解析List对象,应该怎么办呢?现在开始着手解析这个json数组字符串。转载 2024-02-22 20:00:03 · 1371 阅读 · 0 评论 -
合并两个List并去重
【代码】合并两个List并去重。转载 2024-02-18 14:40:50 · 2378 阅读 · 0 评论 -
JDK对Http协议的Keep-Alive的支持,以JDK8为例
但后来客户端的主机突然出故障。 JDK自带的HttpURLConnection,默认启用keepAlive,支持HTTP / 1.1和HTTP / 1.0持久连接, 使用后的HttpURLConnection会放入缓存中供以后的同host:port的请求重用,底层的socket在keepAlive超时之前不会关闭。 Http协议对keep-alive的支持是基于TCP连接的成功建立,而TCP协议是对Http透明的,即TCP协议的Keep-Alive与Http的Keep-Alive是无关的。转载 2024-01-24 15:09:49 · 135 阅读 · 0 评论 -
java获取文件大小的方法
通过流式方法又有两种,分别是旧的java.io.*中FileInputStream的available()方法和新的java..nio.*中的FileChannel。本以为是文件类型的原因,于是又试了大小差不多的不同类型文件,结果发现绝大多数情况下只有300M以上的文件才能获取最准确的文件大小,300M以下的都会有一定的误差!通过这种方法获取的文件大小是2147483647,很明显,这是int类型所能表示的最大值2^31-1,究其原因是因为文件的大小超过了int所能表示的最大值!转载 2024-01-09 16:27:00 · 1848 阅读 · 0 评论 -
ThreadLocal:你不知道的优化技巧,Android开发者都在用
变量的生命周期与线程的生命周期是一致的。这意味着,如果一个线程一直不结束,那么它所持有的。是一个强大的工具,它可以使得每个线程都拥有自己独立的变量副本,从而避免了线程安全问题。开发中,多线程是一个常见的话题。适用于需要在线程间传递的局部变量,但不适合作为全局变量的替代品。的原理和使用技巧,希望这些知识能够帮助你更好地理解和使用它。方法来设置和获取线程的局部变量。原理及其使用技巧, 帮助你更好的理解和使用。的原理是基于每个线程都有一个独立的。方法时,会将值存储到当前线程的。方法时,会从当前线程的。转载 2024-01-02 13:57:42 · 44 阅读 · 0 评论 -
Map集合类型排序java实现
在Java中,集合是一种常用的数据结构,用于存储和组织数据。其中,Map是一种常用的集合类型,它提供了键值对的存储方式,可以根据键快速查找对应的值。然而,Map默认是无序的,如果需要按照特定的排序规则对Map进行排序,就需要使用一些特定的技巧和方法。本文将介绍在Java中如何对Map进行排序,并提供代码示例进行说明。转载 2023-12-25 17:26:07 · 848 阅读 · 0 评论 -
Java——LRUCache
我们的链表使用的是双向带头带尾链表,因此在定义时需要定义prev和next,并且其中存储的是键值对,因此需要定义key和val@Override'}';转载 2023-12-25 17:20:37 · 25 阅读 · 0 评论 -
把String类型的小数点格式化为保留小数点后两位 String.format
把String类型的小数点格式化为保留小数点后两位 String.format转载 2023-12-08 20:25:14 · 2299 阅读 · 0 评论 -
Cannot inline bytecode built with JVM target 11 into bytecode that is being built with JVM target 1.
解决Cannot inline bytecode built with JVM target 11 into bytecode that is being built with JVM target 1.8. Please specify proper '-jvm-target' option原创 2023-11-27 17:38:34 · 876 阅读 · 0 评论 -
判断字符串里是否有数字
本文介绍了两种判断字符串中是否包含数字的方法,分别是使用正则表达式和循环遍历。其中,使用正则表达式可以更简洁地实现判断逻辑。根据实际需求,选择合适的方法来判断字符串是否包含数字。©著作权归作者所有:来自51CTO博客作者mob64ca12eea322的原创作品java 如何判断字符串里是否有数字。转载 2023-10-31 14:43:53 · 1553 阅读 · 0 评论 -
5种方法实现Java判断字符串是否为数字
但是,需要注意的是,由于 Double.parseDouble() 方法可以将诸如 "3.14" 这样的字符串解析为有效的浮点数,因此,该方法可能对于严格意义上的“数字”定义有些宽松。[\d]*$"]开始的字符串,这个正则表达式表示字符串的开始可以是正负号,后面跟随任意数量的数字。但是,它认为像"123 "这样的字符串是整数,而实际上" "不是数字的一部分。这种方法非常简洁,但也非常严格,它将认为像"123 "这样的字符串不是数字,尽管" "是数字的一部分。转换失败,说明字符串不是数字,返回false。转载 2023-10-31 14:38:57 · 11347 阅读 · 0 评论 -
Java中利用数组随机生成复杂字符串当作密码
Java中利用数组随机生成复杂字符串当作密码转载 2023-10-30 20:18:44 · 126 阅读 · 0 评论 -
HashSet和TreeSet如何实现去重
比如你不传入匿名对象,添加的值为String类型,就会用String中的compareTo()方法来比较两个String值是否相同,不同则添加。首先,hashSet底层是数组+链表+红黑树,在添加时,通过hashCode(),得到一个hash值,通过hash值能得到对应的索引,即在数组中的位置,如果发现table索引所在的位置没有数据,直接存放进去,如果当前索引已有数据,就进行euqals比较【遍历比较】,若比较后都不相同,就加入在后边,否则不加入。转载 2023-10-23 14:56:36 · 172 阅读 · 0 评论 -
Apache Commons IO概述
Apache Commons IO库为File IO的常见操作提供了各种实用程序类,涵盖了广泛的用例。它有助于避免编写样板代码。Apache Commons IO库提供以下类别的类 -包下的这些类提供文件和字符串比较。以下是一些例子。- 提供用于读取,写入和复制文件的实用程序方法。这些方法适用于InputStream,OutputStream,Reader和Writer。- 提供在不使用文件对象的情况下处理文件名的方法。它以类似的方式在不同的操作系统上运行。转载 2023-10-07 17:11:18 · 614 阅读 · 0 评论 -
FileUtils文件工具类详解
FileUtils是Apache Commons IO工具库的一部分,提供了许多封装好的静态方法来操作文件和文件夹,减少了我们手动实现的复杂度。通过使用FileUtils,我们可以方便地复制、移动、删除、重命名文件,以及追加/替换文件内容等操作。通过本篇文章的介绍,我们了解了FileUtils的概述,安装步骤以及常用方法的使用。使用FileUtils,我们可以方便地处理文件和目录操作,减少了手动实现的复杂度,使得编程变得更加高效、简单。FileUtils文件工具类详解_笔记大全_设计学院。转载 2023-10-07 17:08:17 · 3595 阅读 · 0 评论 -
apache commons-io
commons-io 是 Java 文件 IO『第一库』是公认的,它的功能和代码质量都是极佳的,它好到没有人想到再写一个竞品与之竞争,这么干完全是费力不讨好的做法。转载 2023-10-07 16:24:52 · 863 阅读 · 0 评论 -
使用FILEUTILS读写文件,apache commons-io FileUtils
FILEUTILS补足了JAVA读写文件的弱势转载 2023-10-07 16:20:45 · 297 阅读 · 0 评论 -
java两个日期字符串相减计算天数,java日期运算
在Java中,我们可以通过使用java.time.LocalDate类来处理日期。要计算两个日期字符串之间的天数差异,我们需要按照以下步骤进行操作:将日期字符串解析为LocalDate对象;使用ChronoUnit类的between方法计算两个LocalDate对象之间的差异;获取差异的天数。在本文中,我们学习了如何使用Java计算两个日期字符串之间的天数差异。我们按照以下步骤进行操作:将日期字符串解析为LocalDate对象;计算两个LocalDate对象之间的差异;转载 2023-10-05 15:18:23 · 1618 阅读 · 0 评论 -
java利用反射为接口实例化对象并调用
java利用反射为接口实例化对象并调用转载 2023-09-28 18:01:17 · 300 阅读 · 0 评论 -
JAVA通过HTTP协议下载网络文件
分享一个通过原生的Java代码下载网络资源文件方法,使用URL类连接上网络服务器通过多线程使用I/O流的方式下载文件。原文链接:https://blog.csdn.net/m0_60499221/article/details/128531947。版权声明:本文为CSDN博主「邻家小妹妹」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。下载线程与服务器建立连接,获取到对应的I/O流,将传入的字节写入到下载的本地文件中。启动下载任务线程,传入线程号等参数。转载 2023-09-19 19:26:55 · 1748 阅读 · 0 评论 -
java通过http下载文件示例
【代码】java通过http下载文件示例。原创 2023-09-19 18:03:28 · 243 阅读 · 0 评论 -
List 与 数组 相互转换
注意该方法的返回值是java.util.Arrays类中一个私有静态内部类java.util.Arrays.ArrayList,原文链接:https://blog.csdn.net/Gc_680/article/details/122568085。java.util.Arrays.ArrayList类具有set(),get(),contains()等方法,也就是说,此种方法残缺:重新得到的 list 不能 add( ) 或者 remove( );输出指定类型的数组,输出的数组类型与括号中参数类型一致;转载 2023-09-13 16:45:35 · 5459 阅读 · 0 评论 -
Java反射到底慢在哪
有朋友在我前两天写的一篇文章底下留言,问反射具体是怎么影响性能的?这引起了我的反思。是啊,在阐述某个观点时确实有必要说明原因,并且证明这个观点是对的,虽然反射影响性能人尽皆知,我曾经也真的研究过反射是否存在性能问题,但并没有在写文章的时候详细说明。这让我想到网上很多信息只会告诉你结论,并不会说明原因,导致很多学到的东西都是死记硬背,而不是真正掌握,别人一问或者自己亲身遇到同样的问题时,傻眼了。转载 2023-09-04 10:00:09 · 66 阅读 · 0 评论 -
Java 远程连接 SQLite 数据库
Java 可以使用 JDBC API 来连接 SQLite 数据库。但是,SQLite 不支持远程连接,因为它是一种文件数据库,需要直接访问数据库文件。如果您需要从远程位置访问 SQLite 数据库,可以将 SQLite 数据库文件放在共享文件夹中,并将该文件夹映射到本地计算机上。然后,您可以在本地计算机上使用 JDBC API 连接 SQLite 数据库。转载 2023-08-28 13:57:49 · 900 阅读 · 0 评论 -
APT 系列 (三):APT 技术探究
很高兴遇见你~在本系列的上一篇文章中,我们对注解进行了讲解,还没有看过上一篇文章的朋友,建议先去阅读Android APT 系列 (二):APT 筑基之注解。至此,关于 Apt 基础部分我们都讲完了,接下来就正式进入 APT 技术的学习Github Demo 地址, 大家可以看 Demo 跟随我的思路一起分析APT 全称,翻译过来即注解处理器。APT 是一种处理注释的工具, 它对源代码文件进行检测找出其中的注解,并使用注解进行额外的处理。/*** 编写生成 Java 类的相关逻辑。转载 2023-08-03 17:05:42 · 419 阅读 · 0 评论 -
Moshi Vs Gson Vs Kotlin Serialisation性能PK
• GsonGson 是一个Java序列化/反序列化库,用于将Java对象转换为JSON格式,以及将JSON格式转换回Java对象。• MoshiMoshi 是一个现代化的JSON库,适用于Android和Java。它使得将JSON解析为Java对象以及将Java对象转换回JSON变得简单。• Kotlin序列化Kotlin序列化是一种以Kotlin为主导的、在编译时类型安全、无反射且完全跨平台准备的序列化机制,用于将Kotlin对象转换为JSON或Protobuf等数据格式,反之亦然。转载 2023-07-24 09:59:48 · 681 阅读 · 0 评论 -
exe4j下载和使用(超详细)
【代码】exe4j下载和使用(超详细)转载 2023-07-13 20:09:22 · 1062 阅读 · 0 评论 -
一些Java 代码技巧
Java 是一个大体系,今天讨论并未涉及框架和架构相关知识,只是讨论如何写好代码。本文从写 Java 程序的小方面一直写到大方面,来阐述了如何才能写好 Java 程序,并告诉读者们如何才能提高自身的编码水平。你见过哪些目瞪口呆的 Java 代码技巧?转载 2023-06-28 13:25:34 · 463 阅读 · 0 评论 -
JDK8新特性(Stream流)
一、Stream流的概念Stream 是Java8中处理集合的关键抽象概念,它可以对集合进行非常复杂的查找、过滤、筛选等操作,在新版的JPA【连接数据库】中,也已经加入了Stream。二、为什么要使用Stream流?每当我们需要对集合中的元素进行操作的时候,总是需要进行循环、循环、再循环。这是理所当然的么?不是。循环 是做事情的方式,而不是目的。每个需求都要循环一次,还要搞一个新集合来装数据,如果希望再次遍历,只能再使 用另一个循环从头开始。转载 2023-06-27 19:44:49 · 1359 阅读 · 0 评论