03 2020 档案

摘要:1、批量插入数据到Oracle,使用preparedStatement执行实现 2、JDBC实现批量插入数据 3、在hibernate中实现批量插入数据 4、在mybatis中<insert>标签内对插入的值采用foreach循环 阅读全文

posted @ 2020-03-22 17:28 黑子菜园 阅读(191) 评论(0) 推荐(0)

摘要:sqlserver中: Oracle MySQL: 阅读全文

posted @ 2020-03-19 17:27 黑子菜园 阅读(139) 评论(0) 推荐(0)

摘要:1、CountDownLatch 等待多线程完成 它的构造函数接收一个int参数作为计数器,想等待N个点,就传入N。 当调用CountDownLatch的countDown()方法时,N就会减1,直至减为0。 使用await()方法等待,当N的值变为0时,执行await的线程继续执行 2、Cycli 阅读全文

posted @ 2020-03-19 11:02 黑子菜园 阅读(165) 评论(0) 推荐(0)

摘要:精简表达: 通过BeanDefinition获取bean的定义信息。 调用构造函数实例化bean。 进行bean的依赖注入,例如通过setter方法或@Autowired注解。 处理实现了Aware接口的bean。 执行BeanPostProcessor的前置处理器。 调用初始化方法,如实现了Ini 阅读全文

posted @ 2020-03-19 10:19 黑子菜园 阅读(176) 评论(0) 推荐(0)

摘要:1、要排序的对象类实现Comparable<>接口,重写compareTo()方法 2、使用Comparator匿名内部类实现 1、Class Student implements Comparable<Student >{ //Student 类自己的成员变量(属性),及构造方法 @Overrid 阅读全文

posted @ 2020-03-19 10:03 黑子菜园 阅读(489) 评论(0) 推荐(0)

摘要:线程的生命周期:新建、就绪、运行、阻塞、死亡 1、实现线程是继承Thread类好,还是实现Runnable接口好? 由于类不支持多重继承,如果要继承其他类,最好是实现线程用Runnable 2、Thread类的start()方法和run()方法的区别 start被用来启动新创建的线程,内部调用了ru 阅读全文

posted @ 2020-03-16 17:23 黑子菜园 阅读(106) 评论(0) 推荐(0)

摘要:spring的线程池技术使用的是ThreadPoolTaskExecutor,当我们点进ThreadPoolTaskExecutor这个类的时候,可以看见里面是对于JDK中的ThreadPoolExecutor的封装: 1、为什么要使用线程池? 创建和销毁线程的花销是很大的,处理时间可能比处理业务的 阅读全文

posted @ 2020-03-14 16:17 黑子菜园 阅读(209) 评论(0) 推荐(0)

摘要:一、事务的四大特性:ACID 原子性:强调事务的不可分割 一致性:强调事务的执行前后,数据库完整性保持一致 隔离性:强调事务的并发访问,一个事务的执行不应该受到另一个事务的打扰 持久性:强调事务结束后,数据就永久保存在数据库中 二、事务的隔离级别:四种,读未提交、读已提交、可重复读、串行化 1、读未 阅读全文

posted @ 2020-03-12 18:37 黑子菜园 阅读(3005) 评论(0) 推荐(1)

摘要:业务场景:需要实现一个支持并发的计数功能 1、计数功能的基本实现是: public class Increment{ private int count = 0; public void add(){ count++; } } 2、以上实现在并发环境下是不安全的,故修改方案1是加锁synchroni 阅读全文

posted @ 2020-03-11 16:59 黑子菜园 阅读(832) 评论(0) 推荐(0)

导航