- 博客(11)
- 资源 (7)
- 收藏
- 关注
原创 hibernate5二级缓存配置
hibernate默认有一个一级缓存,就是默认的Session缓存,当我们做了一次查询,hibernate会把这个结果缓存起来,叫做一级缓存,当我们接着在这个Session会话里面再做一次同样条件的查询,hibernate不会再次查询数据库,而是直接在一级缓存中获取结果并返回。一级缓存是内置的,他也不能被卸载。一级缓存是指在同一个Session会话内的查询做的缓存,如果跨了Session,或者当前...
2019-06-30 19:34:52 2615
原创 MySQL数据库演示内连接左外连接右外连接的区别
sql中join的出现解决了from tableA a ,tableB b where a.id = b.id连接查询做笛卡尔积的问题,而join连接查询除了条件使用关键字on取代了where之外,他本身的连接又分为内连接,左外连接和右外连接三种,分别用inner join,left outer join,right outer join表示,因为不存在外连接、左内连接和右内连接的叫法,所以这三种...
2019-06-29 22:12:52 2354
原创 Java并发编程中如何保证原子性
原子性,可见性,有序性是并发的三大特征,所谓原子性,就是一个操作要么全部执行,要么都不执行。如下所示,在一个类中,定义一个静态变量int var=0,现在开启20个线程,每个线程都执行相同的操作,即对var实行10000次++操作,线程退出,然后打印var的值。package com.xxx.cas;public class PlusPlusOP { public static i...
2019-06-29 18:08:26 6654 2
原创 线程依次交替执行解决办法
在面试题中,我们经常会遇到这样的题目,线程依次交替执行,比如有三个线程,第一个线程打印1-2-3,第二个线程接着打印4-5-6,第三个线程打印7-8-9,再更换到线程一运行打印10-11-12,依此类推。或者只有两个线程,他们直接交替执行。我们知道,默认情况下,多线程运行,资源是共享的,也就是说他们是竞争关系,谁得到cpu资源,谁就运行,其他线程等待,当运行完毕,接下来由谁运行,是不确定的,有...
2019-06-29 09:45:11 1762
原创 一个实例理解线程池工作原理
线程池初始化成功之后,当任务提交上来,线程池中的线程是如何构建的。下面给出构建线程池的三个重要参数:核心线程数:corePoolSize最大线程数:maximumPoolSize队列大小:workQueueSize线程池中的线程,开始是没有的,当任务提交上来之后,会开始创建,当达到核心线程数之后,进入队列,如果队列已经满了,那么开始创建新的线程,直到达到最大线程数,这时候,如果没有...
2019-06-23 22:44:38 334
原创 剑指Offer名企面试题17:合并两个排序的链表(Java实现)
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是按照递增排序的。这道题普通的做法就是:创建一个新的链表,链表的数据分别来自两个排好序的链表,均从链表头部开始遍历,哪个数据小,哪个加入新的链表,当一个表遍历完成,另一个表还有数据,就把另一个表的数据全部加入到新的链表中。这种做法需要判断边界条件,就是当一个链表遍历完成的时候,如何处理。这里给出这种算法的代码:p...
2019-06-22 19:45:05 246
原创 数据结构:二叉树构建与遍历(Java实现)
如下所示,是一个二叉树,从根节点开始,每个节点最多有两个子节点。树是一种常见的数据结构,而二叉树又是一种特殊的树结构,这里介绍二叉树特点:每个节点最多有两个子节点 节点的左子节点中的数据小于节点中的数据 节点的右子节点中的数据大于节点中的数据这里给出一个由Java实现的二叉树:package com.xxx.algorithm.tree;public class BST...
2019-06-22 09:30:01 368
原创 剑指Offer名企面试题14:调整数组顺序使奇数位于偶数前面
题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。解题思路是:维护两个指针,一个指向数组第一个元素start,另一个指向数组最后一个元素end,分别相向移动两个指针,当start++指针指向偶数,end--指针指向奇数,并且start<end条件,将他们位置上的数据交换,直到start和end指针产生碰撞,即st...
2019-06-21 23:08:54 167
原创 Thread:主线程等待子线程执行完毕再执行解决办法
线程从启动到执行完毕,一般会有一些耗时操作,并不能像一般的程序语句,就能立马结束。如下代码:package com.xxx.async;public class WaitThreadDone { public static void main(String[] args) { Thread t1 = new Thread(new Runnable() { @Override...
2019-06-20 11:20:54 26285 5
原创 redis连接池使用连接不释放的问题
一般来说,通过JedisPool获取连接Jedis,使用完了需要关闭,这样,后续的应用需要连接的时候就会正常获取到连接,在一般的开发中也不会出现问题,但是今天遇到了一个问题,就是当连接不关闭,连接池中的连接耗尽,那么程序获取连接就会出现异常。默认,JedisPoolConfig中设置的最大连接数是8,这里为了测试连接不释放的问题,我们修改将它配置为4。public static Jedi...
2019-06-17 18:48:50 18292
原创 线程实现方式继承Thread与实现Runnable的区别
我们知道实现线程的方式有两种:继承Thread,重写run方法,或者实现Runnable接口,覆盖run方法。实际编程过程中,我们通常是喜欢使用实现Runnable接口的方式,那么这两种方式到底有什么区别呢?有人从共享变量和多重继承的角度分析他们的区别,其实多少显得有些牵强和穿凿附会,如果非要说他们的区别,那就是使用实现Runnable接口的方式更能体现面向对象的编程思想。我们知道new ...
2019-06-17 11:32:58 1856
Monaco-font.zip
2019-10-23
linux下rustup安装可执行文件
2018-03-23
mysql主从复制环境搭建(Fedora20)
2016-08-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人