java
文章平均质量分 86
LittleFogCat
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【kotlin 】内联类(value class / inline class)
内联类相当于一个包装类,但是在编译时会自动进行拆包使用内部数据类型。在实际使用中,和普通包装类相同。内联类最大的优点在于对于基本类型的包装不会消耗额外的性能。原创 2024-12-05 11:23:02 · 993 阅读 · 0 评论 -
【Java】ConcurrentHashMap/CopyOnWriteArrayList简析
ConcurrentHashMap和CopyOnWriteArrayList都是java.util.concurrent包下的类,分别解决了HashMap和ArrayList的线程安全问题。本文以对这两个类进行简析,并不作详尽分析。相关文章【Java】HashMap原理及相关面试题【Java】ArrayList、LinkedList原理及相关面试题本文源码版本为Java14。一、ConcurrentHashMapConcurrentHashMap的数据结构大部分与HashMap相同,依旧是数组原创 2022-01-28 09:17:08 · 452 阅读 · 0 评论 -
【Java】ArrayList、LinkedList原理及相关面试题
文章目录一、数据结构二、增删改查1. ArrayListArrayList 增ArrayList 删ArrayList 改ArrayList 查2. LinkedListLinkedList 增LinkedList 删LinkedList 改LinkedList 查5. 小结三、相关面试题1. ArrayList添加元素和删除元素的效率如何?时间复杂度是多少?ArrayList和LinkedList如何选择?2. ArrayList线程安全吗?为什么?如何解决多线程问题?3. ArrayList与Vecto原创 2022-01-09 19:21:16 · 2130 阅读 · 0 评论 -
ThreadLocal
一、ThreadLocal1. 用法一个类可以通过 ThreadLocal 在当前线程内部创建一个独一无二的副本。通过threadLocal.get()和threadLocal.set(inst)可以获取和设置当前线程中这个副本。换句话说,一个ThreadLocal<T>对象可以实现不同的线程对应不同的T类型对象。如下例: ThreadLocal<Integer> threadLocal = new ThreadLocal<>();原创 2022-01-04 01:01:19 · 997 阅读 · 0 评论 -
【Java】HashMap原理及相关面试题
HashMap与Hashtable两个类都是通过Key-Value对存储的数据结构。根据官方的说法,二者唯二的区别是HashMap线程不安全而Hashtable线程安全,并且HashMap允许null值而Hashtable不允许。Hashtable实现线程安全的方式是使用synchronized修饰方法,所以二者基本一致。由于Hashtable效率较低,所以Java官方不建议使用这个类了;单线程的情况下使用HashMap,多线程的时候使用ConcurrentHashMap。一、数据结构1. 结构H原创 2022-01-03 13:30:02 · 1705 阅读 · 0 评论 -
【Java】String是不可变的,真的如此吗?从原理深度剖析
学Java的人或多或少都会得到这么一个信息:String是不可变的。那么果真如此吗?本文前置知识:反射,Java内存模型。一、如何改变一个String打开String的源码,赫然可以看见,其实String对象的数据储存在它的value数组中。在早起版本的Java中,这是一个char[]类型的数组,较晚版本中替换为byte[]类型。public final class String { private final byte[] value; // ……}那么,如果利用反射把这个原创 2022-01-02 01:15:11 · 365 阅读 · 0 评论 -
Java/Android中的线程池,看这一篇就够了!(超详细)
文章目录一、为何要使用线程池二、线程池简介1. 什么是线程池2. 线程池的使用3. 线程池的分类三、线程池的工作流程1. 典型的线程池使用方式2. 线程池工作流程四、线程池中的一些重要概念五、通过源码详细分析线程池1. ctl2. execute(runnable)方法3. workQueue / Worker4. addWorker(runnable, boolean)方法5. runWorker(Worker)方法六、总结一、为何要使用线程池在Java中,要使用多线程,除了使用new Thread(原创 2020-05-27 00:54:05 · 2023 阅读 · 0 评论 -
Toolkit.getDefaultToolkit().getScreenSize()导致的crash
大概是这样## A fatal error has been detected by the Java Runtime Environment:## EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffe38dc7837, pid=203556, tid=0x0000000000031d54## JRE version: Op...原创 2020-01-08 17:25:49 · 824 阅读 · 0 评论 -
Java枚举 enum
1、基本用法:public enum Sex{ man, woman}public enum Sex{ man("男"), woman("女"); private String sex; public Sex(String sex){ this.sex = sex; } public Strin原创 2018-01-11 12:42:40 · 557 阅读 · 0 评论 -
Java随笔(各种坑)
1、遍历字符串str,使用for(char c: str.toCharArray()){ System.out.println(c);}而不是for(int i =0; i str.length(); i++){ System.out.println(str.charAt(i));}效率会有大幅提升。 当要遍历大量字符串的时候尤其有效。2、Fil原创 2017-12-20 01:04:09 · 316 阅读 · 0 评论 -
【LeetCode】 53. Maximum Subarray 最大子序列和
原题Find the contiguous subarray within an array (containing at least one number) which has the largest sum.For example, given the array[-2,1,-3,4,-1,2,1,-5,4],the contiguous subarray[4,-1,2,1...原创 2017-06-04 16:51:32 · 459 阅读 · 0 评论 -
java获得当前格式化时间
最简单的方式:DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");Date date = new Date();System.out.println(df.format(date));以上打印出的结果:2017-03-01 18:09:12如果要获得其他格式,就将SimpleDateFormat方法的参原创 2017-03-01 18:19:23 · 378 阅读 · 0 评论
分享