自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JohnShen的博客

要么旅行,要么读书,身体和灵魂必需有一个在路上...

  • 博客(34)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java内存溢出和内存泄露

内存溢出(out of memory): 程序在申请内存时,申请的内存不足以存相应的值。比如:声明一个Integer的变量,存一个Long类型才能存下的数值,就发生了内存溢出。 内存泄漏(memory leak): 程序申请的内存,无法被释放,最终导致内存资源耗尽。内存泄漏说明程序逻辑有问题,最简单的例子就是死循环。在Java中,内存的分配是由程序完成的,而内存的释放是由垃圾回收器(Gabag

2015-05-05 22:15:09 305

原创 HTTP返回码总结

HTTP协议状态码表示的意思主要分为5大类: 1xx:保留 2xx:表示请求成功地接收 3xx:为完成请求,客户需要进一步细化请求 4xx:客户错误 5xx:服务器错误200 OK: 客户端的请求成功收到,解析,接受。 301 Moved Permanently: 请求的资源已经被赋予了一个新的URI。比如请求“www.sun.com”时,返回301,跳转到“www.oracle.c

2015-05-05 22:02:10 304

原创 session和cookie的区别与联系

1.cookie是一种在客户端保存状态的方案,session是在服务器端保存状态的方案; 2.cookie根据过期时间分为2种: 未设置过期时间的称为会话cookie,关闭浏览器就销毁; 设置了过期时间的称为持久cookie,其在到达过期时间的时候销毁。 3.session默认存在服务器的文件里,session的运行依赖于session id,而session id通常保存在

2015-05-05 21:52:40 355

原创 数据库并发机制及事务隔离机制

数据并发的问题: 1.脏读:A事务读取B事务尚未提交的更改数据,并在这个数据的基础上操作。 2.不可重复读:A事务读取了B事务已经提交的更改数据。 3.幻读:A事务读取B事务提交的新增数据。 4.第一类丢失更新:A事务撤销时,把已经提交的B事务的更新数据覆盖了。 5.第二类丢失更新:A事务覆盖B事务已经提交的数据,造成B事务所做操作丢失。

2015-05-05 21:37:39 288

原创 MySQL的存储引擎

1.MyISAM:MySQL最早提供的引擎,分为:静态MyISAM、动态MyISAM和压缩MyISAM三种。 MyISAM引擎不支持事务,行级锁和外键约束的功能。 2.InnoDB:提供了事务、行级锁机制和外键约束的功能。 3.memory(heap):只存在于内存中。使用散列索引,所以存取速度非常快,常用于临时表。 4.archive:只支持select和insert语句,不支持索引。常用

2015-05-05 21:16:24 230

原创 Java类访问修饰符

类访问修饰符:

2015-05-05 21:08:06 284

原创 使用Ajax异步上传文件

HTML表单结构:<form id="myForm" enctype="multipart/form-data"> <input type="file" name="myFile" /> <input type="submit" value="提交"></form>通过异步的方式提交表单中的myFile,需要引入“jquery.form.js”:<script src="http:

2015-05-04 15:48:12 250

原创 Java读取Excel

程序默认跳过表头,从第二行数据开始读: public List<String> readMobilesFromExcel(InputStream inputStream) throws Exception { List<String> result = new ArrayList<String>(); POIFSFileSystem inputPoifsFile

2015-04-29 17:01:23 389

原创 校验文件名后缀是否合法

/** * 校验上传的文件类型是否合法 * @param file * @return * @author John * @Date 2015年4月13日 */ private boolean isValidFileExt(MultipartFile file){ String[] extArray = {"doc"

2015-04-29 16:32:36 892

原创 Apache HttpClient 使用

public Map<String,String> post(String url, List<NameValuePair> formParams, String requestEncoding, String responseEncoding) throws Exception{ //返回状态 String httpStatusCode = "";

2015-04-28 10:49:55 351

原创 对象的比较--Comparable接口和Comparator接口的使用

实现对象之间的比较通常有两种办法: 1.实现Comparable接口,这种方法比较简单。因为Comparable接口中只定义了一个方法:compareTo() 使需要比较的对象实现Comparable接口并覆盖compareTo()方法:public class User implements Comparable @Override public int compareTo(Ob

2015-04-27 21:52:48 237

原创 Java简单验证码的生成思路

1.生成四位随机数 2.使用awt中的组件,生成四位数的图像 3.加入一些干扰噪点、干扰线 4.设置content-type为image,将图片以流的方式写入到HttpServletResponse对象中 response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"

2015-04-27 08:43:09 415

原创 HashMap详解

HashMap是一种存储键/值关联的数据结构。 它有3个构造方法:public HashMap(int initialCapacity, float loadFactor) { if (initialCapacity < 0) throw new IllegalArgumentException("Illegal initial capacity: " + initialC

2015-04-26 01:12:19 280

原创 ArrayList, Vector和LinkedList详解

1.ArrayList, Vector,LinkedList ArrayList和Vector的API基本相同,区别在于ArrayList是非线程安全的,而Vector是线程安全的,而Vector的效率低于ArrayList,因此在不考虑多线程的时候,应当使用ArrayList。 ArrayList是一种可以动态增长和所见的索引序列。其实现是基于动态对象数组,因此,其中的元素之间的物理存储是连续

2015-04-25 23:51:15 527

转载 单例模式在Java中的7种实现

参考文章链接: http://www.blogjava.net/kenzhh/archive/2011/09/02/357824.html1.懒汉模式-非线程安全/** * 懒汉-非线程安全 * * @author John * */public class Singleton1 { //声明静态的实例 private static Singleton1 instan

2015-04-25 16:41:02 338

原创 SQL行列转换实例

1.准备表和测试数据create table trandata ( id int primary key auto_increment, flow_merc_id varchar(255), tran_type varchar(255), tran_amount int);create table trantype ( id int primary key auto_increme

2015-04-24 16:34:11 316

原创 Object类中的方法

为了便于验证,定义一个User实体类如下:public class User { private int id; private String name; private int age; public User(int id, String name, int age) { super(); this.id = id;

2015-04-21 09:05:00 552

原创 通过HttpServletResponse对象,实现图片的流方式显示和文件的流方式下载

1.图片的流方式显示,在controller中创建以下方法:public void showImage(HttpServletRequest request, HttpServletResponse response) throws Exception { response.setContentType("image/jpeg"); // 获取图片 File file =

2015-04-20 11:05:54 6081

原创 使用Spring MVC 完成文件的上传

1.表单的结构:<form method="post" action="save.ht" enctype="multipart/form-data"> <input type="file" name="files" /> <input type="file" name="files" /> <input type="file" name="files" /></form>2

2015-04-13 21:26:14 547

原创 Linux命令

1.mv 命令:移动文件或目录 mv ROOT /home/backup(将ROOT目录移动到/home/backup目录下)2.rm 命令:删除文件或目录 rm -rf ROOT* (删除当前目录下,以ROOT开头的文件和目录)3.tail -f logs/catalina.out:查看tomcat的输出日志

2015-04-10 10:02:13 226

原创 解决Redhat默认无法使用sbin目录下命令的问题

新装了RedHat5.8,进入后发现无法使用ifconfig命令。而该命令在/sbin目录下存在。在终端使用/sbin/ifconfig命令能够正常。若要在任何路径都能使用该目录下的命令,则需要启用ROOT权限,把该目录下的命令加入到系统的环境变量里,步骤如下:1.获取ROOT权限,编辑/etc/profile文件。 2.在文件的末尾追加”export PATH=$PATH:/sbin”,然后

2015-04-10 09:56:25 399

原创 查看Linux的发行版及版本号

终端运行命令:   lsb_release -a 运行结果:

2015-04-10 09:53:12 217

原创 Linux 客户机操作系统中安装 VMware Tools

要使用 RPM 在 Linux 客户机操作系统中安装 VMware Tools,请执行以下操作:   1. 确保 Linux 虚拟机已开启。   2. 如果您运行 GUI 界面,则打开一个命令 shell。   3. 在虚拟机菜单中单击 VM,然后单击客户机 > 安装/升级 VMware Tools,然后单击确定。   4. 要创建一个装载点,请运行以下命令:     mkdir /mnt

2015-04-10 09:52:38 2375

原创 解决centos虚拟机无法获取ipv4地址的问题

虚拟机用的vmware,开了两台centos虚拟机,联网方式选的bridge。 使用ifconfig命令查看ip地址时,发现只显示了ipv6的地址,没有ipv4的地址。解决办法: 由于我用的笔记本,我怀疑是由于桥接了有线物理网卡导致的,于是在网络连接中将所有的其它虚拟或物理网卡全部禁用,只留下了一个无线网卡。 重启centos虚拟机,发现已经能正常获取ipv4的地址了:

2015-04-10 09:50:52 8768

原创 Centos安装JDK7和Tomcat

一、安装JDK7 1.从Oracle下载JDK7到Centos桌面:jdk-7u71-linux-x64.rpm 2.将其拷贝到/usr目录下:   cp ‘/home/shenzhun/Desktop/jdk-7u71-linux-x64.rpm’ /usr/ 3.进入/usr目录,赋予其权限,运行安装:   cd /usr   chmod 777 jdk-7u71-linux-x64

2015-04-10 09:48:56 271

原创 JAVA校验字符串中的每个字符是否都在GB2312字符集中

需要在服务器端校验前台表单中传来的字符串,是否符合GB2312编码(所有字符都在GB2312字符集)。import java.io.UnsupportedEncodingException;public class EncodingValidationUtil { /** * 校验目标字符串中的字符是否均在GB2312字符集 * @param str * @re

2015-04-10 09:39:47 564

原创 jQuery的each方法中实现continue和break的流控制

// i 对应下标,n对应当前循环的元素$(p).each(function(i,n){  //相当于continue  if(i==0) return true;  //相当于break    if(i==1) return false;});

2015-04-10 09:38:50 231

原创 RedHat使其终端支持中文

RedHat使其终端支持中文,以便创建中文目录或文件。 在/etc/profile文件中追加:   export LC_ALL=”zh_CN.GB18030” 运行:source /etc/profile使其生效

2015-04-10 09:38:39 344

原创 Linux Shell 替换

for l in `find /disk/mercInfoPicUpload/*/*_6_*.jpg`;do mv $l `echo $l |sed s/_6_/_5_/g`;done将/disk/mercInfoPicUpload及子目录下形如”_6_.jpg”的文件,并将”6“替换为”5“。

2015-04-10 09:37:33 235

原创 使用HTML5的<vedio>标签插入视频,兼容主流浏览器

1.在头部引入js文件如下:<script src="http://api.html5media.info/1.1.4/html5media.min.js"></script>注意:只把js下载到本地服务器目录,然后修改为本地服务器的引用路径是不行的,因为该js文件中还引用了远程服务器上的其它资源。2.在正文里引入如下标签:<video id="video_1" src="video/qrcode.

2015-04-03 09:54:04 856

原创 Calendar类的使用,待完善

使用Calendar类可以很方便的定位到历史或将来的某个日期: 简单演示如下: String startDate = ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); //在

2015-04-01 17:49:12 240

原创 sitemesh的使用步骤

sitemesh的使用步骤: 1.添加 Library File:将sitemesh-xxxx.jar导入到WEB-INF/lib中。 2.添加 SiteMesh Filter:配置WEB-INF/web.xml文件,将下面的配置加入到web.xml文件中的web-app标签中。<filter> <filter-name>sitemesh</filter-name> <filter-cl

2015-03-28 18:42:46 230

原创 slf4j与log4j的配置和使用

使用maven管理项目时,在pom.xml中加入slf4j和log4j的jar包依赖: <!-- Logging configuration: start --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId>

2015-03-28 18:13:44 338

原创 Eclipse中创建基于Maven管理的web项目

在eclipse中创建新的maven project;模版选择“maven-archetype-webapp“; 配置build path,删除miss的项, 并重新创建src package如下: 配置Build Path中各个src文件夹的output目录: 在项目上右键点击properties,选择项目对应的JDK版本: 在项目上点右键,Maven–>Update projects

2015-03-28 17:56:39 196

空空如也

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

TA关注的人

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