自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

侠之大者,为国为民

君志所向,一往无前,愈挫愈勇,再接再厉。

  • 博客(78)
  • 收藏
  • 关注

原创 BufferedReader的readLine方法阻塞的处理

BufferReader的read方法和readLine方法在任何情况下都是阻塞的。readLine方法每次读一行,相对于一个字符/字节地读取、转换、返回来说,它有一个缓冲区,读满缓冲区才返回;一般情况下,都建议使用它们把其它Reader/InputStream包起来,使得读取数据更高效;对于文件来说,经常遇到一行一行的,特别符合情景。       如果不指定buffer大小,则readLin

2016-06-15 10:46:23 34549 13

原创 抵御反射创建单例模式的对象

《Effective Java》一书中第三条经验指出:“用私有构造器或者枚举类型强化Singleton”,其中先提出了两种单例模式。1.暴露静态final字段public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis(){;;;}

2016-06-04 19:22:58 1314 1

原创 多个构造器参数考虑用Builder模式

当一个类的构造参数过多,或者将会越来越多的时候,可以使用Builder模式来创建该类。    一般工作中看到大部分人用JavaBean来作为参数解决这个问题,简单明了,但是大部分情况下这些参数可能没有关联,抽象出这么个类不优雅,可读性差。如果直接让该类提供set参数方法,将构造过程分解到调用多个set方法的过程中,在构造过程中JavaBean可能处于不一致的状态。    用Builder模

2016-06-04 10:50:18 591

原创 HashMap源码分析

基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代 collection 视图所需的时间与

2016-05-11 11:40:11 480

原创 加载依赖的jar包在命令行编译和运行java文件

在命令里编译和执行java文件,当应用程序需要需要依赖的jar包里面的class文件才能编译运行的时候,应该这样做:   1、 首先是编译过程,在命令行里面执行:    javac -classpath ClassPath Test.java    //其中ClassPath对应的是jar包的路径,这个jar包亦可以是zip包   2、然后是运行,在命令行里面执行:

2016-05-11 11:35:09 599

原创 东京爱情故事

东京爱情故事所谓恋爱,只要是参加了就有意义的即使是没有结局当你喜欢上一个人的那一刻是永远不会消失的这都将会变成你活下去的勇气而且会变成你在黑暗中的一线曙光5你要好好抓住我你的眼里只能有我不然我会跑掉的9我没有办法承受与了解她全部的想法原来她对的爱太沉重了10 就是不知道明天会发生什么事才

2016-04-14 16:55:20 588

原创 Cassandra学习笔记

CAP:CAP理论在互联网界有着广泛的知名度,知识稍微宽泛一点的工程师都会把其作为衡量系统设计的准则。大家都非常清楚地理解了CAP:任何分布式系统在可用性、一致性、分区容错性方面,不能兼得,最多只能得其二,因此,任何分布式系统的设计只是在三者中的不同取舍而已。C(一致性):所有的节点上的数据时刻保持同步。等同于所有节点访问同一份最新的数据副本A(可用性):每个请求都能接受到一个

2016-04-14 16:54:53 730

原创 Java内存模型

阻碍并发的两个障碍:1.指令重排1.1 CPU处理器指令重排(多)   CPU为了提高处理速率,导致了指令重排。现在的CPU一般采用流水线来执行指令。一个指令的执行被分成:取指、译码、访存、执行、写回和更新PC等若干个阶段。然后,多条指令可以同时存在于流水线中,同时被执行。指令流水线并不是串行的,一般来说,执行占整个过程的大部分时间,并不能因为一个耗时很长的指令在“执行”阶段呆

2016-01-15 10:55:31 436

原创 Ruby笔记

Hash:Ruby的key-value数据结构就是Hash。如 myhash = {2 => 5, "he" => "ggg"};经常要对hash排序,如metrics = {"sitea.com" => 745, "siteb.com" => 9, "sitec.com" => 10 }metrics.sort_by {|_key, value| value} # ==>

2016-01-14 18:06:13 338

转载 程序员小抄大全

原文链接:http://coolshell.cn/?p=1561 (酷壳)你是否会经常忘记一些CSS中的函数名或是一些属性名,那个时候,你一定觉得,如果手边有一个“小抄”(Cheat Sheet)就好了。当然,这个“小抄”不是给你作弊用的,这个“小纸条”就是可以让你马上知道那个你最想知道的东西。这个“小抄”上也不需要有所有的东西,就需要那些经常用的就行了。现在,网上有很多这样的“小抄”,它

2015-10-12 10:22:12 425

转载 VIM的使用

(一)常用的状态切换按键1、Normal Mode -> Insert Modei 小写字母i,在光标位置插入a 小写字母a,在光标的下一个位置插入I 大写字母I,在光标所在行的第一个非空格处插入A 大写字母A,在光标所在行的最后一个字符处插入o 小写字母o,在光标所在行的下一行处插入新行O 大写字母O,在光标所在

2015-10-11 22:43:20 406

原创 fiddler的基本使用

如果手机一直连不上fiddler,先确定手机WiFi网络,然后确定连接的IP和端口是否正确,最后需要检测fiddler是否设置允许远程连接!      fiddler script端口跳转:    if (oSession.hostname=="210.61.161.51") {            oSession.port="8002";        }

2015-10-10 11:19:26 389

原创 启动fiddler8888被占用

新写了一期活动,准备用线上环境测试一下,本想启动fiddler跳转,但是报提示:port 8888 is in use by process python:2888.如图:如果选择一个随机的端口也是可以的,但是后面会很麻烦。如果点击是,那么因为给的是一个随机端口,fiddler并不能捕捉你发起的请求。可以下载chrome的一个插件switchysharp,设置代理端口,但是每次开启的时

2015-10-09 19:43:58 7647

原创 Ruby对excel读写操作

0.读取本地文件两个方法: file = open(path) lines = file.readlines lines.each do |line| p line #" BOOST = self.new(1, '觉醒之书')\n" end file = File.open(filePath, "r") file.each_line do |line|

2015-09-14 10:56:19 3157

原创 Ruby遍历文件夹

原先需要自己手写一个递归算法:def traverse_dir(file_path) if File.directory? file_path Dir.foreach(file_path) do |file| if file !="." and file !=".." traverse_dir(file_path+

2015-09-11 19:05:48 6162

转载 JavaScript奇技淫巧45招

本文是一篇翻译文章,原文信息如下:原文:45 Useful JavaScript Tips, Tricks and Best Practices作者:Saad Mousliki译文链接:点击打开链接JavaScript是一个绝冠全球的编程语言,可用于Web开发、移动应用开发(PhoneGap、Appcelerator)、服务器端开发(Node.js和Wakanda)等等。Jav

2015-09-07 14:17:12 334

原创 MySQL执行SQL文件乱码

登陆测试数据库的服务器,进入MySQL后,执行source update_units.sql命令,在测试服务器用命令查看没有乱码,但是在本地客户端连接测试数据库查看为乱码,一开始排除文件编码问题,Linux下用file update_units.sql查看编码。也查看数据库的编码类型,最后定位为执行source命令出现了问题。mysql -u root -p --default-charact

2015-08-19 17:53:07 1397 2

原创 MySQL备份

mysqldump -ubackup -p123456 -h 192.168.1.2 backup_test > D:\bak\bakcup.sql 在这段命令中: mysqldump 是myqldump的程序名了; -u 是数据库的用户名,后面紧跟着用户名backup; -p 是数据库的密码,后面同样紧跟着密码,注意是-p和密码之间不能有空格; -h 是数

2015-08-18 19:25:43 363

原创 Ruby正则中文汉字

1.puts /[一-龥]+/.match("this is 中文")                 =>中文2.str2="123中文"puts /\p{Han}+/u.match(str2)           # /u是utf-8/a/.encoding # US-ASCII/a/u.encoding # UTF-8Ruby 和部分语言可以直接 #{Han

2015-08-17 14:25:49 1893

原创 Mac安装JDK

因为需要学习Cassandra,以前安装的JDK1.6配置低了,卸载,打算安装JDK1.8   前往sun或者oracle官网下载JDK,不是jre,一路点击安装,最后打开zsh输入java -version,发现木有配置JAVA_HOME,这时候有个小诀窍,输入/usr/libexec/java_home可以知道安装文件在哪里,默认是/Library/Java/JavaVirtualMach

2015-08-03 16:56:11 389

原创 python抓取新浪微博配图

看着女神微博,总觉得女神微博的哪一张照片都好看,于是想用脚本把她微博相册中的微博配图全部抓下来。  一开始打开微博配图网页,打开开发者工具,查看网页源代码。其后,我直接右键查看网页源代码,发现网页源代码和开发者工具下看见的不一样,其中应该是浏览器加载了js,开发者工具看到了更多。因为爬虫的话,首选移动端,于是我打开移动端网页查看,这里面两者就是一样的。但是移动版照片好小,但是通过和网页版的比较

2015-08-02 18:42:11 5434 2

原创 Redis学习指南

虽然去年在优酷土豆实习的时候就接触了Redis,但是捏个时候一直以为是一门很高深的学问,以致后来都没花时间去学习。导致后面的面试面试的很失败,虽然我没有写我了解Redis。但是Redis起码是NoSQL系列的初恋,对她的感情还是挺深的,喜欢她的纯粹,“Keep It Simple AndStupid”.       Redis作者在Redis宣言中写的很有意思:       Cod

2015-07-27 11:38:35 440

转载 HTTP长连接与短连接

1. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。 2. 如何理解HTTP协议

2015-07-03 17:59:15 328

原创 MySQL不插入重复记录

想插入一条记录,如果有则不插入,无则插入。表示由一个自增长id主键和其他几个记录: t_version(id,package_name, first,SECOND,third,forth)原先想用insert   ignore  into,但是发现没有用,因为它把id也看做不同。于是我找了网上的另外一种方法  insert … select … where not exist。insert

2015-04-16 19:03:17 801

原创 Unsupported major.minor version 51.0

在windows下运行项目不会报错,但是在Linux下报错。网上搜索一下,是jdk版本的问题。但是两个系统的jdk都是一样的版本,怎么会不同捏,开始用在maven编译的时候指定1.6暂时缓解问题。后来发现Linux自带jdk,在tomcat下指定了jdk版本和所在,不会报错。String.split()方法,其实利用的是正则表达式,其中要注意换行等特殊字符串。用“      ”不会分割

2015-04-13 18:46:54 436

原创 解决jsp地址栏中文乱码

地址栏传参数容易乱码,特殊字符会转义,解决问题的思想应该是将中文转换成不会乱码的字符,然后在后台转换回来。这是一个一一映射的关系。迂回之术。 window.location.href= "showEnvironment.do?environmentName=" + encodeURI(encodeURI(“哈哈哈”));environmentName = java.net.URLDecod

2015-03-30 10:46:34 990 1

原创 Java集合总结

自从接触ConcurrentHashMap后,对java集合越来越有兴趣。今天上午在宿舍楼道上看了一上午thinking in java,晚上做下笔记以便以后翻阅。其中有些继承关系图片上没有完全给出。比方LinkedList实现了双队列Deque,而Deque extends Queue。Java容器现在已经很完全了,那些抽象类可以不用记忆。队列Java SE5中,

2015-03-14 23:02:39 384

原创 jQuery基础

jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关获取一组radio被选中项的值var item = $('input[@name=items][@checked]').val();获取select被选中项的文本var item = $("select[@name=items] option[@se

2015-03-13 19:13:38 337

原创 CMD命令小结

1.查看某个命令:比方copy命令,输入  copy  /?2.查看某个目录下的所有文件和文件夹:dir3.删除:rd /s /q  参数强行删除,不用问我yes or no

2015-03-13 19:11:37 401

原创 Java转Json:org/apache/commons/lang/exception/NestableRuntimeException

一开始以为jar包缺少,最后发现是jar包版本不对。我用了commons-lang-3.1.jar,更换成commons-lang-2.4.jar即可。hate it.附上下载的链接:点击打开链接

2015-03-10 14:59:41 550

原创 jstl遍历Map和List

今天写的代码主要是表示层,controlller、js、jQuery、json、jstl、Ajax。各种技术都摸了一把,遇到很多问题,也学到很多。人逼自己一把,就不知道自己可以有多牛逼。遇到的问题:1.Java对象转成json。我现在对它的理解是可以看做特殊格式的字符串。如果格式要求不严的话,不用json格式,我想自己用某种方式拼接解析,比方以分号分隔,然后用字符串的split(";")方

2015-03-05 18:30:19 1406 1

原创 MyBatis的in操作

学习一个基础的技术,最好去官网。因为官网详细,最重要的是准确,不用在其他网站上浪费时间。       1.in操作只传一个参数时:MyBatis官网的in操作用动态SQL foreach:动态 SQL 的另外一个常用的必要操作是需要对一个集合进行遍历,通常是在构建 IN 条件语句的时候。比如: SELECT * FROM POST P WHERE I

2015-03-04 17:05:09 541

转载 Use gitk to understand git – merge and rebase

This is the second part of my Use gitk to understand git post.In my initial overview, I demonstrated creating a branch, making a couple commits to that branch, and then merging them back into ma

2015-02-11 17:52:23 660

转载 Use gitk to understand git

Moving from subversion to git can be a struggle, trying to understand what terms like checkout, commit, branch, remote, rebase all mean in the git world. I learned by experimenting in a demo repositor

2015-02-11 17:50:15 735

原创 LeetCode | Customers Who Never Order

Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQL query to find all customers who never order anything.Table: Customers.+----+-------+| Id | Na

2015-02-08 11:26:03 487

原创 The method getDispatcherType() is undefined for the type HttpServletRequest的解决方法

很有可能是使用了tomcat8,把tomcat的lib包下面的jsp-api.jar换成tomcat7的。亲测,it works!

2015-02-05 10:50:00 3543 1

原创 svnkit的使用

由于需要用Java代码控制SVN,比方下载SVN的代码,网上找到了大牛直接徒手写的代码,但是后来发现了svnkit这么个东西,直接进入官网可以看到它的例子,由于我得需求比较简单,只需要下载SVN的代码,所以我就直接借鉴了网上现成的代码,加上svnkit的jar包就可以执行了,注意用户名和密码要正确。package svnkit;import java.io.File;import or

2015-02-04 18:43:35 3180

原创 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3. 1

执行mvn compile编译的时候,报了这个错误,网上很多方法都试了试,先把MyEclipse依赖的jre改成了自己装的jdk的jre,但是还是不行。最后在stackoverflow上看到一个方法,fixed it!方法是删除仓库所有,repo目录下的全部删除,The next time I built the project I had to download all the depe

2015-02-02 18:05:58 1377

原创 Maven入门

以前用过一下Maven,只不过是糊里糊涂用的那么几个命令而已,最近想重新系统学下,起码入个门,满足基本操作。简单说,Maven可以对项目编译、发布,管理项目的生命周期。有个重要的文件pom.xml,这里面写好了要用的jar包第三方库什么的,以前我们可以用javac编译,但是它有个很麻烦的问题,就是当依赖jar包第三方库还有依赖注入配置等各种复杂情况的话,不太好处理(尽管可以用javac cla

2015-02-02 17:27:30 512 2

原创 开始Linux之路

大一下学期玩过一下Ubuntu,不过那是没办法,谁叫我买的笔记本初始系统是她呢,不过没玩几天就被我换了windows,因为学校的联网客户端exe文件无法在Ubuntu下运行,没网不是要人家命嘛。    实习后准备学习Linux,可是都是在网站上虚拟操作,连安装虚拟机都失败了,今天早上终于装了个双系统,开始在真实环境摸索了。    安装后连接wifi,第一件事就是找类似cmd的那个东西,终端

2015-01-31 16:54:27 569 6

空空如也

空空如也

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

TA关注的人

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