- 浏览: 51106 次
- 性别:
- 来自: 北京
最新评论
-
NanguoCoffee:
javantsky 写道楼主为什么要自己实现分离锁呢?
ja ...
知道为啥HashMap里面的数组size必须是2的次幂? -
javantsky:
楼主为什么要自己实现分离锁呢?java.util.concur ...
知道为啥HashMap里面的数组size必须是2的次幂? -
obullxl:
LZ分析有道理,最后的&操作,(LOCK_NUM - ...
知道为啥HashMap里面的数组size必须是2的次幂? -
NanguoCoffee:
sniffer123 写道LZ你自己的写法有问题啊。。跟HAS ...
知道为啥HashMap里面的数组size必须是2的次幂? -
sniffer123:
LZ你自己的写法有问题啊。。跟HASH是不是 2的幂一点关系也 ...
知道为啥HashMap里面的数组size必须是2的次幂?
文章列表
最近在写一个简易的分离锁的类:
要求:对不同的Key进行hash得到一个Lock,并要求对锁映射的概率差不多。比如,160个Key,分布到16个锁上,大概有10个Key是映射到同一个锁上的,只要这样并发效率才会高。
public class SplitReentrantLock {
private Lock[] locks;
private int LOCK_NUM;
public SplitReentrantLock(int lockNum) {
super();
LOCK_NUM = lockNum;
locks = new Lock ...
在Http上传中,Apache common fileupload 的文件上传组件要求传入Inputstream对象。
而Netty中数据是按块(HttpChunk)来传送数据,没有直接的流。
因此要想在Netty中使用Apache Common Fileupload,则必须将httpchunk适配成InputStream。
实现Apache FileUpload
/**
* 用Netty来实现上传
*/
public class NettyFileUpload extends FileUpload {
private NettyRequestCo ...
本文转自:http://java.sun.com/developer/technicalArticles/Intl/Supplementary/index_zh_CN.html
Article
Java 平台中的增补字符
PS: 转自http://www.iteye.com/topic/311583
Java与Unicode:
Java的class文件采用utf8的编码方式,JVM运行时采用utf16。
Java的字符串是unicode编码的。
总之,Java采用了unicode字符集,使之易于国际化。
Java支持哪些字符集:
即Java能识别哪些字符集并对它进行正确地处理?
作者: 阮一峰
日期: 2007年10月28日
今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。
结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。
下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。
1. ASCII码
我们知道,在计算机内部,所有的信息最终都表示
PS:本文转自http://www.blogjava.net/orangelizq/archive/2008/07/20/216228.html
在剖析该问题前请看如下代码public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i < b.length; i++) { String hex = Integer.toHexString(b[ i ] & 0xF ...
ImageMagick常见问题
- 博客分类:
- 其他
1:安装ImageMagick
安装: 下载源码包->./configure -> make -> make install
卸载: make uninstall -> make clean
2: 问题:
Q&A 安装过程中出现的问题一般为需要的一些库没有安装 或者 版本比较低。
Q: 出现convert: no decode delegate for this image format 的问题?
A: identify -list format
判断有支持几种图片格式,没有的则需要安装对应的格式库
Q:单线 ...
分析Netty工作流程:
下面以Netty中Echo的例子进行流程跟踪,并简要的
服务器启动->客户端连接-> 服务器处理连接-> 服务器处理客户端数据<-> 客户端处理服务器数据
1:客户端连接:
我们直接看这行代码:
bootstrap.connect(new InetSocketAddress(host, port));
通过帮助类ClientBootstrap来连接服务器。
Debug源码进去发现最后是某个Channel类进行connect操作。
而这个Channel是如何来的呢?其实是从前面的 ChannelF ...
linux下的运行脚本,支持start,stop,restart
使用说明;
1:
run.sh start
run.sh stop
run.sh restart
2:
修改最大内存memlimit=512
项目名称:projectname=processServer
启动的类名:com.ifeng.ipicture.ProcessServer
run.sh
#!/bin/sh
#memory limit
memlimit=512M
projectname=processServer
ulimit -SHn 51200
dir=`d ...
本文优化JavaMail发送性能的原则: 一个连接发送多个邮件
Session mailSession = Session.getDefaultInstance(props);
Transport transport = mailSession.getTransport("smtp");
transport.connect("192.168.15.85", "webmaster", "password");
for(int i=0;i<1000;i++){
message ...
表空间自动拓展
1: 查看表空间:
SELECT * FROM dba_data_files WHERE tablespace_name = 'TABLESPACE';
2: 查看表空间大小:
SELECT tablespace_name, SUM(bytes/1024/1024) FROM dba_segments GROUP BY
tablespace_name;
3: 构造 修改表空间自动拓展的 sql
SELECT
'alter database datafile '''||
file_name||
...
优化原则:
1: 在能应付当前性能需求的情况下,不建议进行性能优化。
2: 仅仅优化性能瓶颈
3: 编码时必须进行压力测试
4: 优化时,考虑现实生活中遇到的问题,现实如何处理,代码也如何处理。
5: 优化的唯一方法:去掉没有必要的操作 和 高效的算法。可以看到所有的优化方法都离不开这条原则,而最常用、也最容易发现的方案就是去掉没必要的操作。
代码优化
代码优化的唯一目的: 减少执行时间。
两种优化方法: 减少没必要的内存分配;减少没必要的计算。
当然这两种方法一般都会同时出现,如分配没必要的内存,分配这个操作就 ...
候选项:
Jetty + Apache FileUpload
JDK自带的HttpServer + 自行解析
Simple
Jetty + Jetty MultiPartFilter
备注:tomcat过于臃肿,不考虑。
我们经常有对图片进行处理的需求。本文就从最简单的要求到比较复杂的要求描述面向对象的抽象方式
下面假设调用方按照以下的协议进行调用:
ImageManager -src image_src_path -resize 100x200 -rorate 90 -...
-src表示来源图片
-resize 表示缩放
....需求1:对图片进行缩放后存到指定的位置
解决方法:
很简单,只需要两个功能:缩放和存储图片的功能
代码1:
public void processImage(String imageSrc,int newWidth, int newHeigh ...
概念篇
1: 为什么需要多线程
在程序处理多任务时,在单线程下,如果其中一个任务被阻塞了(比如IO操作),那么所有的任务都无法前进,知道被阻塞的任务进行前进,将浪费很大的系统资源。
那么解决方 ...