随笔分类 -  java

摘要:架构概述 下面将介绍Joda-time的主要组成部分,这里将介绍instant、interval、duration、period、chronology和timezones的概念,这些接口在库的设计中与普通的有所不同。最后我们将会介绍一下包的结构。Instant的用法示例将推迟到本指南的以下部分。有关 阅读全文
posted @ 2022-04-18 22:54 锤子布 阅读(1087) 评论(0) 推荐(0)
摘要:HashMap源码解析 1. 什么是HashMap HashMap是一个利用Hash表原理来存储元素的集合。遇到冲突的时候,HashMap采用的链地址法来解决。 hash表经常伴随着冲突问题,解决冲突问题通常有两种做法: 开放地址法:当发生冲突的时候,可以简单的将冲突的字段放在下一个位置。这种方法可 阅读全文
posted @ 2021-09-30 11:50 锤子布 阅读(79) 评论(0) 推荐(0)
摘要:ArrayList源码解析 arrayList就是动态数组,可以动态的添加和减少元组,实现了ICollection和Ilist接口以及灵活的设置数组的大小。 5. 遍历集合 通过ArrayList的接口实现树,可以看到ArrayList实现了Iterable接口。 public interface 阅读全文
posted @ 2021-09-27 12:04 锤子布 阅读(67) 评论(0) 推荐(0)
摘要:ArrayList源码解析 arrayList就是动态数组,可以动态的添加和减少元组,实现了ICollection和Ilist接口以及灵活的设置数组的大小。 4. 增删改查 4.1 添加元素 通过先前的字段的分析,可以得出ArrayList集合的底层是通过数组实现的,那么向ArrayList中添加元 阅读全文
posted @ 2021-09-26 14:36 锤子布 阅读(217) 评论(0) 推荐(0)
摘要:ArrayList源码解析 arrayList就是动态数组,可以动态的添加和减少元组,实现了ICollection和Ilist接口以及灵活的设置数组的大小。 2. ArraysList的字段属性 private static final long serialVersionUID = 8683452 阅读全文
posted @ 2021-09-24 11:56 锤子布 阅读(78) 评论(0) 推荐(0)
摘要:ArrayList源码解析 arrayList就是动态数组,可以动态的添加和减少元组,实现了ICollection和Ilist接口以及灵活的设置数组的大小。 1. ArrayList的定义 ArrayList是一个使用数组实现的集合,支持随机访问,元素有序且可以重复 在源码中定义如下: public 阅读全文
posted @ 2021-09-19 11:43 锤子布 阅读(231) 评论(0) 推荐(0)
摘要:在多线程环境中的单例模式 目前有三种实现单例模式的方式: 饿汉模式 懒汉模式 静态内部类 1、饿汉模式 class Singleton{ // 第一步 构造器私有化 private Singleton(){} // 第二步 自行对外提供实例 private static final Singleto 阅读全文
posted @ 2021-09-18 20:18 锤子布 阅读(320) 评论(0) 推荐(0)
摘要:![image](https://img2020.cnblogs.com/blog/2410405/202109/2410405-20210902162518155-148379597.png) ![image](https://img2020.cnblogs.com/blog/2410405/202109/2410405-20210902162812361-286690793.png) ![im 阅读全文
posted @ 2021-09-02 16:24 锤子布 阅读(56) 评论(0) 推荐(0)
摘要:字段的作用域(public,private,protected) 是类级变量还是实例级变量(static) 可变性(final) 并发可见性(volatile) 可否序列化(trainsient) 字段数据类型(基本类型,对象,数组) 字段名称 阅读全文
posted @ 2021-07-29 10:38 锤子布 阅读(126) 评论(0) 推荐(0)
摘要:一,java内存区域与对应的内存溢出异常 java与C++之间有一堵由内存分配和垃圾收集技术所围成的墙,墙外面的人想进去,墙里面的人却想出来 对于学习C++的程序员,拥有每一个对象的所有权,又需要担负着每一个对象生命开始到终结的责任。 对于java程序员,在虚拟机内存管理机制的帮助下,不再需要为每一 阅读全文
posted @ 2021-07-27 18:23 锤子布 阅读(105) 评论(0) 推荐(0)
摘要:重新认识Java 1. java的优点是什么? java是面向对象语言 通过java虚拟机,可以一次编写到处运行 java具有相对安全的内存管理和访问机制,避免了大部分内存泄露和指针越界的问题。 通过热点代码检测和运行时编译优化,java应用可以随着运行时间的增加而获得更高的性能。 Java具有多样 阅读全文
posted @ 2021-07-24 21:51 锤子布 阅读(55) 评论(0) 推荐(0)
摘要:深入浅出谈索引(下)笔记 由于查询结果所需要的数据只在主键索引上有,所以不得不回表。可以通过一些优化的方法来避免回表的过程。 覆盖索引 1. 什么是覆盖索引 在查询时,尽量只查询树上包含的字段。例如通过二级索引查询主键等行为,当某些查询频率较高,可以尝试建立联合索引通过覆盖索引的手段,提高查询效率 阅读全文
posted @ 2021-07-11 12:23 锤子布 阅读(60) 评论(0) 推荐(0)
摘要:分支合并框架 复杂任务分拆给线程,大事化小,最后把拆分结果合并 原理 Fork and Join 相关类 ForkJoinPool 分支合并池 ForkJoinTesk 分支合并任务 RecursiveTask 递归任务 package main.java; import java.util.con 阅读全文
posted @ 2021-07-07 11:18 锤子布 阅读(66) 评论(0) 推荐(0)
摘要:ThreadPoll线程池 为什么要用线程池 线程池做的工作主要是控制运行的数量,处理过程中将任务放到队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等到其他线程执行完毕,再从队列中取出任务来执行。 主要特点:线程复用,控制最大并发数,管理线程 优势: 降低资 阅读全文
posted @ 2021-07-07 10:53 锤子布 阅读(210) 评论(0) 推荐(0)
摘要:BlockingQueue阻塞队列 ​ 生产者消费者问题,在多线程领域,所谓阻塞就是再某些情况下会挂起线程,一但条件满足,被挂起的线程就又会自动唤醒。 常用的实现类: ArrayBlockingQueue:由数组结构组成的有界阻塞队列 LinkedBlockingQueue:由链表结构组成的有界阻塞 阅读全文
posted @ 2021-07-07 09:26 锤子布 阅读(34) 评论(0) 推荐(0)
摘要:ReentranReadWriteLock读写锁 一些锁的概念 共享锁(S锁)又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S 锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。 排他锁(X锁)又 阅读全文
posted @ 2021-07-06 16:55 锤子布 阅读(108) 评论(0) 推荐(0)
摘要:JUC 常用辅助类 CountDownLatch减少计数 public class CountDemo { public static void main(String[] args) throws InterruptedException { CountDownLatch cd = new Cou 阅读全文
posted @ 2021-07-06 16:23 锤子布 阅读(55) 评论(0) 推荐(0)
摘要:Callable 实现多线程的方法 继承thread类 实现runnable接口 实现callable接口 java的线程池获得 callable与runnable的区别 class MyThread implements Runnable{ @Override public void run() 阅读全文
posted @ 2021-07-06 14:58 锤子布 阅读(114) 评论(0) 推荐(0)
摘要:请求与响应 1. 请求:客户端向服务器 代表了客户端向服务器发送请求报文,该对象由服务器(web容器,servlet容器)创建同时发送给service()方法,发送给service(),service()再发送给doGet()或doPost() 作用: 获取请求参数 String username 阅读全文
posted @ 2021-06-09 10:18 锤子布 阅读(284) 评论(0) 推荐(0)
摘要:java中的Date,DateFormat,Calendar 1. Date java.util包提供了两个构造函数来封装日期与时间。 Date();//使用当前的日期时间来构造对象 Date(long millisec);//利用从1970年1月1日起的毫秒数来构造对象 Date对象的相关方法主要 阅读全文
posted @ 2021-06-04 10:34 锤子布 阅读(204) 评论(0) 推荐(0)