自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 四种线程池类型

ExecutorService threadPool = Executors.newFixedThreadPool(5);ExecutorService threadPool4 = Executors.newSingleThreadExecutor();ExecutorService threadPool2 = Executors.newCachedThreadPool();Executo...

2019-04-24 11:49:44 2356

原创 生产者消费者模式

//wait 和 notifypublic class ProducerConsumerWithWaitNofity { public static void main(String[] args) { Resource resource = new Resource(); //生产者线程 ProducerThread p1 = new ...

2019-04-24 11:48:19 186

原创 ThreadPoolExecutor讲解

public static void main(String[] args) { final ExecutorService threadPool = new ThreadPoolExecutor( 3, 10, 60L, ...

2019-04-24 10:48:42 190

原创 java多线程并发系列之闭锁(Latch)和栅栏(CyclicBarrier)

闭锁(Latch):一种同步方法,可以延迟线程的进度直到线程到达某个终点状态。通俗的讲就是,一个闭锁相当于一扇大门,在大门打开之前所有线程都被阻断,一旦大门打开所有线程都将通过,但是一旦大门打开,所有线程都通过了,那么这个闭锁的状态就失效了,门的状态也就不能变了,只能是打开状态。也就是说闭锁的状态是一次性的,它确保在闭锁打开之前所有特定的活动都需要在闭锁打开之后才能完成栅栏(Cycl...

2019-04-23 12:27:17 194

转载 RocketMQ命令整理

http://jameswxx.iteye.com/blog/2091971

2017-06-20 09:42:38 257

原创 mybatis多数据源配置

1:配置多个数据源

2017-06-01 09:53:22 241

转载 maven导出依赖的jar包

https://my.oschina.net/cloudcoder/blog/212648

2017-05-15 13:57:22 230

翻译 sql语句中各子部分的执行顺序

红色序号给出了执行的顺序:(1)from:对Table1和Table2执行笛卡尔积,也就是两个表的行的各种组合,共5*5=25行,生成虚拟表VT1(2)on:选择VT1中的那些Table1.id=Table2.id的所有行,生成虚拟表VT2。(3)inner join:这里是内部连接,直接就是VT2,如果是outer join,如left join、right join、full jo

2017-05-11 15:32:21 2201

原创 子查询和连接查询性能比较

初步实践证明:连接查询的性能优于子查询,所以能用连接查询的地方尽量少用子查询

2017-05-11 15:18:11 18756 1

原创 Spring编程式事务

Spring编程式事务:spring 的org.springframework.transaction.support.TransactionTemplate可以实现编程式事务:TransactionTemplate transactionTemplate = new TransactionTemplate();transactionTemplate.execute(new Tran

2017-05-09 12:25:37 240

原创 Spring Property配置

Spring 的Property配置针对的是类里的setter方法,例如: 此段配置是对mybatis的事务隔离级别进行配置,isolationLevelName在org.springframework.transaction.support.TransactionTemplate有其相应的org.springframework.transac

2017-05-08 15:20:26 561

原创 Mybatis #和$的区别

#会进行预编译,其实现是通过JDBC的PreparedStatement类,mybatis启用了预编译功能,在sql执行前,会先将上面的sql发送给数据库进行编译,执行时,直接使用编译好的sql,替换占位符“?”就可以了。因为sql注入只能对编译过程起作用,所以这样的方式就很好地避免了sql注入的问题,在mybatis中,”${xxx}”这样格式的参数会直接参与sql编译,从而不能避免注入攻击。但

2017-04-18 15:19:45 239

原创 java中方法的形参产生的是对象的副本

class SubTest{int a;String b;public SubTest(int a, String b){this.a = a;this.b = b;}}public class MyTest {private static void change(SubTest test){test.a = 100;test = new

2017-03-20 12:54:03 442

转载 Java GC组合方式

2017-03-15 20:01:41 632

原创 java gc触发

由于对象进行了分代处理,因此垃圾回收区域、时间也不一样。GC有两种类型:Scavenge GC和Full GC。Scavenge GC一般情况下,当新对象生成,并且在Eden申请空间失败时,就会触发Scavenge GC,对Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到Survivor区。然后整理Survivor的两个区。这种方式的GC是对年轻代的Eden

2017-03-15 19:40:06 1429

原创 java 字符串的intern方法

String a = new String("java").intern();    String b = new String("java").intern();    System.out.println(a.equals(b));    System.out.println(a == b);输出结果:truetrueequals比较的对象的值,==比较的对象的地址

2017-03-15 19:13:05 302

原创 最大子串和的问题,java实现

public class MyTest {    public static void main(String[] args) {    int[] a = {-1,2,3,50,-16,1,20,-12};    int maxSum = 0;    int first = 0;    int last = 0;    for(int i=0; i    for(

2017-03-15 15:00:15 697

原创 并发和并行

并发:指系统或CPU的单位时间处理能力,如单核CPU的并发是通过在单位时间内再对时间分片,将线程在时间片内交替执行,而网站系统的并发指系统对连接或请求数的处理能力。并行:指同一时间点多个任务同时执行,如多核CPU在同一个时间点可以执行多个线程,这些线程之间是同时进行,无交替现象。

2017-01-18 18:04:04 187

原创 Java hashTable和hashMap的区别

1.官方推荐使用HashMap;2.HashTable线程安全,HashMap非线程安全,但效率较高;3.遍历方法上略有不同;4.HashTable的键和值都不能存NUll,HashMap可以;5.HashTable的默认初始hash数组的长度是11,之后会以oldsize*2+1的大小增加,HashMap的默认大小是16,之后会以oldsize*2的倍数增加

2017-01-09 14:09:47 284

原创 java生产者消费者

写了一个生产者消费者模式,但好像有数据不一致的问题,先记录下:package com.itrip.rp.openapi;import java.util.ArrayList;import java.util.List;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;

2016-12-28 16:23:32 211

转载 JDBC连接【转载】

public class MysqlDemo { public static void main(String[] args) throws Exception { Connection conn = null; String sql; // MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参

2016-12-28 15:19:56 165

原创 java中静态代码块,构造代码块,静态代码块的区别

执行顺序:(优先级从高到低。)静态代码块>main方法>构造代码块>构造方法普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”构造块:直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造代码块在创建对象(new)时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造

2016-12-28 15:01:18 345

原创 Java中int,Integer,equals,==的区别

public class TestClass {public static void main(String[] args) {Integer a= new Integer(5);Integer b= new Integer(5);Integer c=127;Integer d = 127;Integer e = 128;Integer f = 128;in

2016-12-26 20:04:15 3706

原创 程序变量为什么不能以数字开头,也不能用关键字和保留字

词法分析基本上分三步,第一步把词法单元分割出来,第二步判断词性,是数字,是普通变量,是关键字,还是是类型变量...第三步确定其符合本词性所限定的语法规则,然后进行下一步的处理如果第一个字符就能判断词性的话,接下来就是把这个词交给相应词性的正则表达式匹配器来判断是否通过如果数字能做普通变量的开头,那么就要先匹配数字,直到遇到特定字符串再

2016-12-15 16:23:04 2539

原创 Mysql使用注意事项

1.mysql中int(m)的m是显示长度,实际保存长度是2的32方,即4个字节。2.varchar(100) not nulldefault'***',当insert语句中没有name字段时以default的值为准,当insert中有name字段,但值为null时会报错。3.mysql的timestamp字段如果不设置默认值,那么当进行更新操作时,此类字段会自动更新时间

2016-12-15 16:20:55 421

原创 Java replace和replaceAll的区别

replace和replaceAll都是替换全部,区别是前者是字符替换,后者是正则表达式替换,replace("aa$bb","#")的结果是“aa#bb”,replaceAll的结果是aa$bb#,因为在replaceAll中$符是正则表达式结尾符的意思

2016-12-15 16:16:53 672

原创 Spring InitializingBean接口的作用

Spirng的InitializingBean为bean提供了定义初始化方法的方式。InitializingBean是一个接口,它仅仅包含一个方法:afterPropertiesSet()。凡是继承该接口的类在初始化bean时都会执行afterPropertiesSet方法。@Component 用于将此类加入到容器中,这样启动时spring加载此类,就会执行afterProperties

2016-12-15 16:12:56 288

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除