- 博客(21)
- 收藏
- 关注
原创 Java关于Excel模板下载乱码
File file = new File(filePath);response.setCharacterEncoding(System.getProperties().getProperty("file.encoding"));
2020-08-03 13:49:33
1054
原创 NIO
CountDownLatch,允许一个或多个线程等待某些操作完成。CyclicBarrier,一种辅助性的同步结构,允许多个线程等待到达某个屏障。Semaphore,Java 版本的信号量实现。如果要读 Buffer 中的值,需要切换模式,从写入模式切换到读出模式。注意,通常在说 NIO 的读操作的时候,我们说的是从 Channel中读数据到 Buffer 中,对应的是对 Buffer 的写入操作,初学者需要理清楚这个。...
2020-07-31 15:29:08
93
原创 锁
偏斜锁会延缓 JIT 预热的进程,所以很多性能测试中会显式地关闭偏斜锁,命令如下:-XX:-UseBiasedLockingfast_enter 是我们熟悉的完整锁获取路径,slow_enter 则是绕过偏斜锁,直接进入轻量级锁获取逻辑。fast_enter 是如何实现的呢?1、biasedLocking定义了偏斜锁相关操作,revoke_and_rebias是获取偏斜锁的入口方法,revoke_at_safepoint 则定义了当检测到安全点时的处理逻辑。2、如果获取偏斜锁失败,则进入
2020-07-30 11:30:59
200
原创 IOC模块
IOC主要实现策略服务定位模式依赖注入上下文的一个依赖查询通用职责依赖处理依赖查找依赖注入生命周期管理容器托管的资源(Java Beans或其他资源)配置容器外部化配置托管的资源(Java Beans或其他资源)什么是IOC简单地说,IOC是反转控制,类似于好莱坞原则,主要有依赖查找和依赖注入实现依赖查找和依赖注入的区别依赖查找是主动或手动的依赖查找方式,通常需要依赖容器或标准API实现。而依赖注入则是手动或自动依赖绑定的方式,无需依赖特定的容器和
2020-07-12 15:27:24
355
转载 迭代特性
小马哥 Spring编程思想笔记文章目录小马哥 Spring编程思想笔记Spring Framework1. 课前准备2. Spring 特性总览3. Spri...
2020-07-11 21:21:46
478
原创 MyBatis
BatchExecutor:批处理执行器只针对修改操作批处理操作必须手动刷新executor.doFlushstatements(isRollback: false);ReuseExecutor:可重用执行器,避免相同语句执行多次预编译MyBatis一级缓存命中条件:1.必须是同一个会话(会话级缓存)2.方法名必须一样,类名也必须一样(statement ID必须一样)3.RowBounds行范围必须一样4.sql语句参数命中条件:操作配置1没有手动清空 -clearCache
2020-06-22 15:49:39
97
原创 递归动态规划问题
斐波那契问题F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.public int f1(int n){ if (n<1) return 0; if (n==1||n==2) return 1; int res = 1,pre = 1,temp=0; for (int i = 3; i <= n ; i++) { temp = res
2020-06-14 22:12:53
337
原创 AbstractQueuedSynchronizer学习
有两种队列同步队列(FIFO队列)条件队列都共用了节点ADT参数 //表示共享 static final Node SHARED = new Node(); //表示独占 static final Node EXCLUSIVE = null; //当前节点线程被取消 static final int CANCELLED = 1; //当前节点的后继节点的线程在等待锁 static final int SIG
2020-06-12 20:53:35
96
原创 CAS学习
定义CAS操作包含三个操作数-内存位置(V)、期望值(A)和新值(B)如果内存位置的值与期望值匹配,那么处理器会自动将该位置值更新为新值。否则,处理器不作任何操作。无论哪种情况,它都会在CAS指令之前返回该位置的值。(CAS在一些特殊情况下仅返回CAS是否成功,而不提取当前值)CAS有效的说明了“我认为位置V应该包含值A:如果包含该值,则将B放到这个位置;否则,不要更改该位置的值,只告诉我这个位置现在的值即可。”写一个简易CAS锁package concurrent;import java.
2020-06-11 21:21:32
154
原创 FutureTask源码学习
FutureTask作用:将Runable和Callable封装为FutureTask提交submit进线程池ExecutorService pool = Executors.newFixedThreadPool(5);Future future = threadPool.submit(new Runnable实现类);<T> Future<T> submit(Runnable task,T result)Future<?> submit(Runnable t
2020-06-11 12:04:20
113
原创 HashMap
参数//缺省table大小static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16//最大table长度static final int MAXIMUM_CAPACITY = 1 << 30;//缺省负载因子大小static final float DEFAULT_LOAD_FACTOR = 0.75f;//树化阈值static final int TREEIFY_THRESHOLD = 8;
2020-06-09 23:04:36
114
原创 链表的荷兰国旗
解法一:利用一个数组存储node节点,快排思想进行swap操作public Node listPartition(Node head,int pivot){ if (head==null) return null; Node cur = head; int i = 0; //计算节点个数 while (cur!=null){ i ++; cur = cur.next;
2020-06-09 09:55:02
136
原创 链表回文问题
//方法一,利用一个栈 public boolean isPalindrome(Node head){ Stack<Node> stack = new Stack<>(); Node cur = head; while (cur!=null){ stack.push(cur); cur = cur.next; } while (head!=null)
2020-06-09 08:52:46
135
原创 链表翻转
单链表翻转public ListNode reverseList(ListNode head) { ListNode pre = null; while (head!=null){ ListNode next = head.next; head.next = pre; pre = head; head = next; } return pre;
2020-06-08 17:19:52
98
原创 链表问题
链表中倒数第k个节点public ListNode getKthFromEnd(ListNode head, int k) { ListNode fast = head, slow = head; for (int i = 0; i < k; i++) fast = fast.next; while (fast!=null){ fast = fast.next; slow = slow.next;
2020-06-08 15:58:38
193
原创 记录一个list转数组
List<int[]> list = new ArrayList<>();list.toArray(new int[list.size()][]);
2020-06-05 16:24:37
105
原创 字符串的一个测试
字符串的一个测试int a = 5-‘0’;int b = 5+‘0’;int c = ‘0’;char d = (char)( 5+‘0’);int e = d-‘0’;System.out.println(“a:”+a); //a:-43System.out.println(“b:”+b); //b:53System.out.println(“c:”+c); //c:48System.out.println(“d:”+d); //d:5System.o
2020-06-03 07:57:01
140
转载 JVM小结
转自:https://www.jianshu.com/p/9e6841a895b4 注意:我们平时说的栈是指的Java栈,native method stack 里面装的都是native方法。见下文 注意:方法区并不是存放方法的区域,其是存放类的描述信息(模板)的地方 Class loader只是负责class文件的加载,相当于快递员,这个“快递员”并不是...
2020-03-15 09:06:09
119
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人