- 博客(26)
- 收藏
- 关注

原创 guava学习目录
guava新集合类型[guava新集合类型——MultiMap](http://blog.youkuaiyun.com/nazir2513/article/details/51178016) guava新集合类型——MultiSetguava新集合类型——BiMap guava新集合类型——Table guava字符串处理:分割,连接,填充guava字符串处理——连接器[Joiner]guava字符串处
2016-04-18 14:28:10
496
转载 VIM常用命令
文件命令vim file 打开(若没有则创建)名为file的文件vim file1 file2 file3 … 同时打开多个文件:open file 在vim窗口中打开一个新文件:split file 在新窗口中打开文件:bn 切换到下一个文件:bp 切换到上一个文件:args 查看当前打开的文件列表,当前正在编辑的文件会用[]括起来。打开远程文件,比如ftp或者share folder :e f
2017-06-08 11:14:35
418
原创 nginx 重启
突然一次断电导致服务器异常关闭,nginx也随之挂了。 后来用./nginx -s reload报错:nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (13: Permission denied)2017/06/02 09:37:23 [notice] 36
2017-06-02 10:06:05
600
原创 nginx做转发时,带'_'的header内容丢失
nginx做转发时,带’_’的header内容丢失原本在测试环境测试通过的APP,今天准备切到线上环境做最后测试,结果发现了错误。查看日志发现是APP端发送的http请求中的header内容丢失了。那么代码没有改动,怎么平白无故会丢失头信息? 于是想到两个环境的不同之处在于线上是通过nginx做的代理转发,会不会是nginx搞的鬼?于是搜索“nginx request header 丢失”,果不其
2017-04-28 11:00:21
5783
原创 Nginx反向代理实现跨域请求
如今,RestFul接口服务比较流行,应用通过一套Http的API,并用json或者xml作为交互的数据格式来提供服务。这么做有效地实现了web项目,前后端的分离。从而使得架构更加开放,这套API可以同时给多套前端项目提供服务,包括web端和APP端。什么是跨域?跨域问题的由来是浏览器的同源策略。 所谓同源是指,域名,协议,端口相同。浏览器执行javascript脚本时,会检查这个脚本属于那个页面
2016-09-30 15:07:25
4541
原创 SpringMVC统一异常处理
Spring MVC异常处理方式主要有: 1、直接使用框架提供的简单异常处理器SimpleMappingExceptionResolver; 2、自定义异常处理器,实现HandlerExceptionResolver接口; 3、使用注解的方式实现一个专门用于处理异常的Controller——ExceptionHandler。其实第一种SimpleMappingExceptionResolver
2016-06-27 14:20:53
976
原创 mysql索引
近期遇到一个索引的问题,先看现象:EXPLAIN SELECT * FROM schedule_detailWHERE schedule_date = CURDATE(); 如上,这句sql没有用到索引EXPLAIN SELECT * FROM schedule_detailWHERE schedule_date = DATE_FORMAT(NOW(), '%Y-%m-%d'); 而第二句用
2016-06-13 10:49:16
416
原创 guava字符串处理——连接器[Joiner]
String字符串代码中出现的频率是相当高的,涉及字符串的知识点也是很多很多,比如String、StringBuilder、StringBuffer三者的区别,性能的比较,是否线程安全等等。 字符串的拼接也是每个程序员都常常要做的。今天介绍一种新的拼接处理方法guava-Joiner,可以大大简化代码。例如原先我们拼接字符串是这样处理的:private static String normal(L
2016-04-18 19:51:06
5746
原创 guava新集合类型——Multimap
guava的大名其实是早有耳闻,但直到前段时间才真正用到了,也切实感受到了为什么那么多开发者都推崇guava。 第一个用到guava的是它的一个集合类型:Multimap。 我们有时候会碰到一些比较复杂的数据结构,诸如:Map<K, List<V>>。这样的结构无论是拼装还是读取都会觉得比较烦。如果是调用第三方服务,对方给你返回的是这种结构的话,你还得遍历出来,然后进行数据的转换之后再重新拼装。
2016-04-18 11:01:18
2624
原创 List遍历:for,foreach还是Iterator?
先说结论: 如果是ArrayList,用三种方式遍历的速度是for>Iterator>foreach,但基本上属于同一个速度级别; 如果是LinkedList,则三种方式遍历的差距很大了,用for遍历的效率远远落后于foreach和Iterator,相差几十倍,Iterator>foreach>>>for; 模拟50000条数据,放入ArrayList和LinkedList,对两个List分别
2016-04-16 15:27:09
5213
原创 java类加载和初始化顺序
下面这是一道携程java工程师的面试题,求输出public class Base{ private String baseName = "base"; public Base() { callName(); } public void callName() { System. out. println(baseName)
2016-02-18 14:54:00
490
原创 通过三目运算符来看JAVA的自动拆箱和装箱
近期碰到一个比较常见的错误: Exception in thread “main” java.lang.NullPointerException 错误代码类似于这样的:public class Test { public static void main(String args[]) { House house = new House(); int door
2015-12-04 15:40:36
1602
原创 桶、冒泡、快速排序
今天抽空又自己写了基本排序算法的实现,虽然都是很简单的,但还是挺好玩的,当做是锻炼下逻辑思维。import java.util.Random;public class Sort { private final static int arraySize = 10; private final static int max = 100; private static Integer[]
2015-12-01 17:07:17
435
原创 Caused by: java.lang.SecurityException: Jurisdiction policy files are not signed by trusted signers!
最近开发项目时,把jdk环境从1.6切到1.7之后,项目正常启动,但是当进行业务处理时,就报这个错:Caused by: java.lang.SecurityException: Jurisdiction policy files are not signed by trusted signers!之前从没遇到过这个问题,于是上网谷歌百度,知道这个问题涉及到了JCE,JCE可能大家都不怎么熟悉。
2015-11-24 17:02:12
3027
转载 Java单例模式
在GoF的23种设计模式中,单例模式是比较简单的一种。然而,有时候越是简单的东西越容易出现问题。下面就单例设计模式详细的探讨一下。所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在。就像是Java Web中的application,也就是提供了一个全局变量,用处相当广泛,比如保存全局数据,实现全局性的操作等。1. 最简单的实现首先,能够想到的最简单的实现是,把类的构造函数写成priva
2015-09-11 14:14:07
413
转载 linux命令——cat
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。 1.命令格式:cat [选项] [文件]…2.命令功能:cat主要有三大功能: 1.一次显示整个文件:cat filename 2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件. 3.将几个文件合并为
2015-09-10 16:51:58
437
转载 String为什么是不可变的?
什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。区分对象和对象的引用对于Java初学者, 对于Strin
2015-09-10 15:35:37
602
原创 Spring获取ApplicationContext
第一类:主动获取1. FileSystemXmlApplicationContext此方法根据配置文件的文件系统路径进行加载,它的起始路径是项目路径,所以可以直接这样写WebRoot/WEB-INF,如果前边加了file:则说明后边的路径就要写全路径了,就是绝对路径。例如:ApplicationContext context = new FileSystemXmlApplicationContext
2015-08-20 11:24:42
509
原创 HashMap遍历:entrySet和keySet的比较
使用例子:entrySet():Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey();
2015-06-02 16:19:12
880
转载 遍历数组和集合的三种基本方式
遍历数组和集合的三种常用方式:for、foreach、iterator三者的比较:1.形式差别 for的形式是 for(int i=0;iforeach的形式是 for(int i:arr){...} iterator的形式是 Iterator it = arr.iterat
2015-06-02 16:12:32
361
转载 Spring的IoC介绍
1. IoC理论的背景我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。图1:软件系统中耦合的对象如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确的时间。图1中描述的就是这样的一个齿轮组,它拥有多个独立的齿轮,这些齿轮
2015-03-13 17:02:26
470
转载 Spring事务配置的五种方式
Spring事务配置的五种方式 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。 总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理
2015-03-13 11:49:53
544
原创 maven项目jar包版本错误:'dependencies.dependency.version' for xxx:jar is missing. @ line xx, column xx
[ERROR] The project XXX (/home/×××/pom.xml) has 1 error[ERROR] 'dependencies.dependency.version' for xxx:jar is missing. @ line xx, column xxmaven项目中父项目的pom.xml通过 XXX
2015-03-13 10:36:10
25665
1
原创 org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletCon
严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].St
2015-03-05 15:39:35
16881
10
转载 servlet的一些细节
1、由于客户端是通过URL地址访问web服务器中的资源,所以servlet程序若想被外界访问,必须映射到一个URL地址上,这个工作在web.xml文件中使用两个元素完成。2、元素用于注册servlet,它包括两个主要的子元素:,分别用于设置servlet的注册名和servlet的完整类名。3、一个元素用于映射一个已经注册的servlet的一个对外访问路径,它包含了两个子元素:,分别用于指定
2015-02-25 16:59:07
698
原创 Git常用指令集合
常用命令显示区别git diff # 比较当前文件和暂存区文件差异git diff # 比较两次提交之间的差异git diff .. # 在两个分支之间比较 git diff --staged # 比较暂存区和版本库差异git diff --cached # 比较暂存区和版
2015-02-25 15:18:05
738
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人