- 博客(15)
- 收藏
- 关注
原创 Java线程中断
Java是一门原生支持多线程的语言,要开启一个线程很容易,使用如下代码 new Thread(new Runnable() { @Override public void run() { //do something } }).start(); 这是我能想到的启动线程的最简单的代码,语义明确.但是要优雅得关闭该线程通常却很难. A...
2013-11-14 16:30:42
92
Java中文编码问题
1.不可避免的编码转换. 计算机只能保存和理解二进制字节,而文字实际上是一种图形,所以要使用一种编码方法将图形转换为对应的二进制字节.在Java中这种编码为Unicode,使用16个二进制位表示一个字符,包含基本所有语言的任何字符. 在中文Windows系统中默认使用GBK,而OSX中默认使用UTF-8. 各种环境中的文字编码可能是不同的,但是每种编码最终映射到的字...
2013-10-31 13:06:35
98
原创 node.js异步编程
ajax的盛行,使javascript成为前端开发人员的宠儿.现今js已经可以通过nodejs在服务器运行.本文将通过对一段代码的逐渐改进来展示如何让程序员使用javascript快乐得进行非阻塞异步编程.nodejs和mongodb的具体安装和使用方法请参考文章最后的参考文献列表. Hello,Node ! nodejs是编程就绪的,任何功能都要通过...
2013-05-22 13:34:57
87
原创 负载均衡基础
本文翻译自http://1wt.eu/articles/2006_lb/ 鉴于本人英语水平翻译的或许令人费解,请有兴趣的读者参照原文阅读. 原文似乎写于2006年,最后一部分提到的有关keep-alive的内容或许稍显过时.现今大量越来越多的应用开始使用长连接服务,非阻塞IO和异步处理使维护连接的消耗变的很小了已经.所以还是要根据具体应用,来使用文章最后提供的调试技巧. 起初,W...
2012-05-15 22:09:23
183
Java NIO基本使用
NIO是Java提供的非阻塞I/O API. 非阻塞的意义在于可以使用一个线程对大量的数据连接进行处理,非常适用于"短数据长连接"的应用场景,例如即时通讯软件. 在一个阻塞C/S系统中,服务器要为每一个客户连接开启一个线程阻塞等待客户端发送的消息.若使用非阻塞技术,服务器可以使用一个线程对连接进行轮询,无须阻塞等待.这大大减少了内存资源的浪费,也避免了服务器在客户线程中不断切换带来的CPU消耗...
2011-11-03 11:10:15
96
Spring中Bean继承注意事项
今天在排除项目错误的时候发现,Spring的Bean继承并不是所有的属性都可以继承自parent的. depends on, autowire mode, dependency check, singleton, scope, lazy init. 上述这些属性,全部都不从parent继承,而使用child自己的设置,如果不设置将采用默认值,跟parent无关....
2011-11-01 11:30:46
132
有关WEB应用的安全性
常见的攻击方式及基本防护方法 1.cookie篡改.可以对cookie进行加密签名.应尽量避免在cookie中保存重要数据. 2.跨站脚本攻击.在接受请求或者返回生成的html页面时对内容进行转译. 3.SQL注入攻击.在程序代码中写SQL语句时使用占位符绑定的方式添加参数.决不能使用字符串连接方式生成SQL语句执行. 4.跨站点请求伪造.对于应用中的所有重要业务请求添加鉴权令牌.例如为页...
2011-09-06 09:53:28
145
编写JSP自定义标签
可以使用JSP自定义标签来实现简单的代码模板. 自定义标签可以通过传统的继承TagSupport或SimpleTagSupport并实现相关方法,然后声明使用tag描述符进行声明. 这里要说的是一种更加简单的方式,TagFiles. Tag File其实就是一个JSP页面,只是把扩展名由.jsp变成了.tag,并放置在指定的目录下. TagFile中不能使用page指令,作为替代可以...
2011-07-10 15:30:28
84
有关代码复用
重用代码的目标是什么?(我们为什么要重用代码) 答:避免重复发明轮子,有大量的已经写好的功能可以调用.这也是OO(面向对象的目标) 什么样的代码是可以复用的代码? 1.接口良好的.(利于用户阅读和使用) 1).类的接口应该展现一致的抽象层次. public class EmpolyeeContainer extends LinkedLis...
2011-06-26 01:04:54
163
原创 [转载]eclipse.ini中配置参数 -Xms,-Xmx,-PerSize(JVM内存参数说明)
1.堆(Heap)和非堆(Non-heap)内存按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,...
2011-05-16 09:22:27
99
原创 有关缓存
最近阅读了一些有关缓存的资料,主要是两个ehcache和memcached.由于都没有使用过,所以在此只是对收集的资料进行一些总结. 1.性能比较 ehcache和memcached的性能都很强.有些资料显示ehcache的性能数百倍于memcached.由于自己没有使用过,所以没有具体感受.不过memcached被很多大型网站使用,可见其性能已经相当强劲. 2.持久化 memcached...
2011-05-15 17:56:17
82
Guava学习笔记
Guava是Google的Java核心库,基于Java5+. Guava由 [code="java"]com.google.common.annotations com.google.common.base com.google.common.base.internal com.google.common.collect com.google.common.io c...
2011-05-08 17:53:07
98
原创 ApacheHttpServer+mod_perl实现防盗链
最近上司部署了个研究防盗链的任务.经过多方搜索找到使用mod_perl实现防盗链的文章,但是整个安装配置过程阻碍甚多.故作此文以为梳理. 首先是依赖模块的安装. 1.安装ApacheHttpServer2.2(这是废话) 2.安装Perl5.8.*.或Perl5.12.* 3.使用PerlPPM安装mod_perl,命令如下 对于Perl5.8 ppm install ...
2011-04-22 16:04:23
81
Hibernate many-to-many,many-to-one,inverse测试
近日工作中发现对Hibernate一些概念模糊.故望此文可以帮助我理顺思路.写了一个简单的Demo做测试.两个实体 public class Type { private int id; private String name; private Set books; //省略getter,setter等方法,下同 } ...
2011-04-17 15:19:16
126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人