SQL使用要点
内连接、外连接1231.内连接是将两张表满足关联条件的数据查询出来2.左外连接是以左表为主表拼接其他表后再根据关联条件查询出来的,左外连接只会在乎左表中的数据,不会在乎其他表是否存在对应的数据3.右外连接是以右表为主表拼接其他表后再根据关联条件查询出来的,右外连接只会在乎右表中的数据,不会在乎其他表 ...
视频转gif
1.点击打开
2.选中一个视频,点击打开
3.左右推动两个灰色小块可以限制可展示范围,拖动蓝色小块可以查看所在位置的内容
4.点击文件,再点击存储为…
5.选择合适的保存路径,修改文件名称
6.选择保存类型为GIF(*.GIF)后,点击保存
7.等待出现GIF存储选项出现后,点击确定
8.等待存储进 ...
线程并发类
通过wait,notify管理并发12341.两个方法都需要放置到synchronized的作用域中2.一旦执行wait方法,会释放synchronized所关联的锁,进入阻塞状态,无法再次主动地到可执行状态3.一旦执行notify方法,会通知因调用wait方法而等待的线程,如有多个线程等待,则会任 ...
Exception in thread "main" java.lang.OutOfMemoryError
异常信息1234Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at java.util.concurrent.ArrayBlockingQueue.<init>(ArrayBlockingQu ...
Exception in thread "main" java.util.concurrent.RejectedExecutionException
异常信息123456Exception in thread "main" java.util.concurrent.RejectedExecutionException: Task com.itpm.project.ThreadLocalTest@4aa8f0b4 rejected from jav ...
ThreadPoolExecutor线程池
为什么要使用线程池?1避免因线程切换而造成的性能损耗
构造ThreadPoolExecutor线程池的参数
1234567891011corePoolSize: 核心线程数maximumPoolSize: 最大线程数keepAliveTime: 线程空闲时间unit: keepAliveTime参数 ...
ThreadLocal线程内部存储类
ThreadLocal的使用代码展示1234567891011121314151617181920212223242526272829303132333435363738394041424344454647public class ThreadLocalTest implements Runnabl ...
线程锁
可重入锁1也叫可递归锁,当同一线程再次进入同步代码时,可以使用自己已获取到的锁;其目的是当同一线程多次获取到的是同一把锁能防止死锁的发生
代码展示12345678910111213141516171819202122232425262728293031323334353637383940414243 ...
synchronized关键字
概念1synchronized是同步锁,可重入锁
作用在不同地方的不同效果修饰代码块1修饰以{}包含的代码块,当多个并发线程到达时,只有一个线程能够执行,其他线程则被阻塞等待;synchronized作用的对象(锁定的对象)是调用代码块的实例对象
同一对象加锁
在同一个对象上加锁 ...
volatile关键字
volatile关键字的特性123451.不能保证原子性:2.能避免指令重排: 在编译和执行代码时,出于优化考虑,会重排指令;大多数场景下指令重排不会影响结果,但在多线程环境下可能会有问题3.使变量在线程间都可见: 在线程内存中,如果进行写操作,能够立即写回到主内存中,如此该值会在其他线程内存中失效 ...