02 2018 档案
摘要:1 CopyOnWriteArrayList 每次修改这个ArrayList的话,会将数组重新拷贝一份进行修改。读的话,直接读即可。因此修改对读没有影响。这个适合于并发时读远大于写的场合。因为拷贝数据耗内存。 读的时候不可以修改数据。CopyOnWriteArraySet是建立在CopyOnWrit
阅读全文
摘要:17.7. Non-Atomic Treatment of double and long For the purposes of the Java programming language memory model, a single write to a non-volatile long or
阅读全文
摘要:1 list <!-- result in a setSomeList(java.util.List) call --> <property name="someList"> <list> <value>xxx</value> <ref bean="myDataSource" /> </list>
阅读全文
摘要:1 ab是什么 是一个web高并发测试工具,可以发送get、put、post请求。 2 ab -n和-c共存 -c是concurrency的缩写,即同一时间发送多个请求。 -n是指本次总共发送多少个请求。 假如-n 100 -c 10,就是说,共进行10次请求发送,每次并发10个,总共发送的请求数是
阅读全文
摘要:1 不使用spring的理由 spring太复杂,不利于调试。 spring太复杂,不利于全面掌控代码。 spring加载bean太慢。 等等。 2 对不使用spring理由的辩驳 spring ioc的原理是很清晰的,很简单的,这么成熟的框架,出错的概率很小,出错肯定是自己代码的问题,并且对spr
阅读全文
摘要:1 ioc和di ioc,inversion of control 控制转化。控制主要指的是对对象的创建的控制,本来程序按需创建对象,但是现在控制权交给第三方,即spring,程序不需要自己创建对象了,它需要对象的时候只要从spring的Bean容器中get即可,即控制权由程序转化到了第三方框架sp
阅读全文
摘要:1 parameterType 如果参数只有一个,比如一个id,即int类型的id,那么parameterType直接是int。 如果参数有多个,那么就用表中一行对应的类,默认是类的名字和表中列的名字相同的话,就进行赋值。 2 resultMap 用于告诉mabatis如何把select结果中取出的
阅读全文
摘要:1 log4j.properties配置 1.1 配置logger的输出级别 log4j.logger.[logger_name]=DEBUG 这里的logger_name就是logger所在的类的类名。因为使用log4j时,某个类的logger就设置为它的类名。
阅读全文
摘要:1 二者的区别 insert是插入一条新的数据,它会创建一条新的记录;update是更新一条已经有的数据,它不会创建新的记录。 update需要where来指示更新那条记录,否则会更新所有的记录。 2
阅读全文
摘要:1 CHAR(30) 就是该数据存放的字符个数最多是30个。 2 INT 4个字节的integer。
阅读全文
摘要:1 什么是jdbc java database connectivity 2 常用的接口 2.1 Driver com.mysql.jdbc.Driver 2.2 Connection 创建到特定数据库的连接,有了连接之后就好办事。 Connection conn = DriverManager.g
阅读全文
摘要:1 什么是连接 是一种对多个表中进行查询的方式,通过查询多个表来返回一个查询结果。 2 求取连接可以分两步 第一个步: 对于表一中的每一行,对应表二中的每一行,判断条件是否满足,如果满足,那么这两个行组成一个新的行。笛卡尔积。 第二个步: 从新的行中取出我们要select的列即可。 3 内连接和外连
阅读全文
摘要:1 使用curl命令以post方式向服务器发送xml格式的数据 echo '<?xml version …>' | curl -X POST -H 'Content-type:text/xml' -d @- http://10.206.30.32:8081/loginregistration/reg
阅读全文
摘要:1 什么是annotation annotation是java编译器支持的一种标记,它可以简化我们的代码,使得我们的代码更加方便被理解。 2 元annotation 用来编写其它注解的注解。 @Retention 保留期,有三种保留期。 RetentionPolicy.SOURCE 这样的注解只在源
阅读全文
摘要:1 轮询 就是不断的发送普通的http请求和相应的不断接收http响应,直到响应是自己想要的为止。轮询只需要客户端不断的发送请求,不需要服务器端做特殊的事情。 2 长轮询 这个需要服务器和客户端两端的支持,首先,客户端发起长轮询之后就应该等待服务器端的响应,其次服务器端收到长轮询请求之后,如果没有客
阅读全文
摘要:1 什么是trie trie是一棵多叉树,假如存放的是由26个字母(不区分大小写)构成的字符串的话,那么就是一棵26叉树。 trie树是一棵前缀树,因为每个结点只保存字符串中的一个字符,整个字符串保存在路径中。 trie树的根结点里面不保存任何字符,因为根结点是下面所有路径的前缀,如果固定为一个字符
阅读全文
摘要:1 CAS compare and swap的缩写,详见乐观锁和悲观锁。 2 ABA 就是说,我获取的旧值是A,然后被人修改成了B,但是又被人修改成了A,我就认为并没有修改,更新内存。 解决办法,给每次的修改加一个version,也就是说,再弄一个变量,这个变量表示version。我compare的
阅读全文
摘要:1 基本概念 悲观锁就是说,如果共享资源被别的线程占用了,那么其它所有的线程都得sleep等待。 乐观锁是说,弄一个死循环,假如共享资源被别的线程占用了,那么我就再试,死也不等待。 2 实现案例之一 java的AtomicInteger的 incrementAndGet() incrementAnd
阅读全文
摘要:1 nginx的路径必须是物理路径,不能是链接 2 执行下面的两个命令后重启电脑 命令
阅读全文
摘要:1 maven插件 maven是一个依赖插件的框架,maven执行的实际任务都是由插件在完成的。需要用到哪些plugin在pom.xml文件中都要指定。 每个任务对应一个插件,而每个插件都对应多个goals,比如maven-compiler-plugin的目标compile编译位于/src/main
阅读全文
摘要:1 maven pom.xml只是配置文件 构建的流程已经固化在maven中了,pom.xml只是对这个流程的配置。特别是插件,在不进行人工绑定的情况下,插件是对应固定的生命周期的,我们操作的时候是操作的生命周期,这个时候相应的插件就会被调用,那么为什么还要对插件进行配置呢?这是因为我们希望插件在这
阅读全文
摘要:1 为什么要引进lambda函数 可以简化编码,将事情更多的交给编译器,让编译器帮我们推断我们写的代码的完整形式。 2 lambda函数的语法 2.1 -> (arg1, arg2) -> {函数体} lambda表达式本质上是函数的一种简写,直接给出函数的参数和函数体即可,不用再写函数名。 记住l
阅读全文