java
文章平均质量分 91
asfdasdfasdfasd
这个作者很懒,什么都没留下…
展开
-
深入理解 Java 类加载器
类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java Applet 需要从远程下载 Java 类文件到浏览器中并执行。现在类加载器在 Web 容器和 OSGi 中得到了广泛的使用。一般来说,Java...原创 2013-05-12 21:09:48 · 70 阅读 · 0 评论 -
jdk代理,cgib代理和spring后处理bean的关系
最近项目中使用InstantiationAwareBeanPostProcessorAdapter后处理bean的方式发布springbean到osgi容器,但是这里有个方法@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName)第一个参数是Object这个参数可能是目...2013-08-18 14:11:54 · 142 阅读 · 0 评论 -
新浪微博授权过程
[b]1.你的网站首先要去新浪去认证审核,这样对应新浪微博开发平台来说你是合法的,认证后你会得到client_ID,client_SERCRET这两个东西2.如果用户登录你的网站 你需要引导用户去https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YO...2013-08-18 22:00:33 · 106 阅读 · 0 评论 -
文本和二进制
摘自Serv-U网站:When using ASCII mode, files are actually changed, depending on the server. ASCII mode is used to translate ASCII text files between the server and client. For example when uploading to a...2013-09-02 16:39:28 · 99 阅读 · 0 评论 -
NIO+reactor模式的网络服务器设计方案
1、前言 在前一篇文章中,介绍了基于 BlockingIO +thread-per-connection 的方案,由于该方案为每一个连接分配一个线程,而线程里的大部分操作都是阻塞式的,所以在高并发的情况下,会导致产生大量的线程,线程间的上下文切换会浪费大量的 CPU 时间,而且每个线程是需要占用堆栈空间的,所以服务器能分配的线程数量也是有限的,当客户端的并发访问量达到一定的数量...原创 2013-09-30 13:55:13 · 100 阅读 · 0 评论 -
NIO 终结者
传统IO请求等待主要在1.等待数据就绪 2.将数据从内核缓冲区到用户进程缓冲区互相拷贝过程 传统一连接一线程 请求多的时候服务端需要开辟很多线程消耗资源 最主要的这些消耗并不是都消耗在业务逻辑的执行上面 好多在io等待上面 (通过visualvm监控服务后台可以看出很多都是wait状态) 这个等待的过程是阻塞的,直到完成为止。那么是不是可以将这些等待利用起来 让一个线程去等呢?如果...2013-09-30 16:03:15 · 106 阅读 · 0 评论 -
java 日志发展
日志使用http://www.iteye.com/topic/378077补充 如何定义日志句柄:private static Logger logger = LoggerFactory.getLogger("cons");private static Logger logger = LoggerFactory.getLogger("file"); log4j.propert...原创 2013-10-13 21:32:45 · 92 阅读 · 0 评论 -
maven学习
1.使用archetype生成简单项目架子 mvn archetype:create -DgroupId=com.fs -DartifactId=test -DpackageName=com.fs.wwy -Dversion=1.0.02.mvn install3.运行 java -cp target/test-1.0-SNAPSHOT.jar com.fs.wwy.tes...2013-10-13 21:40:17 · 97 阅读 · 0 评论 -
thift 服务端模型之TThreadedSelectorServer分析-server层
线程模型: 参数: public static class Args extends AbstractNonblockingServerArgs<Args> { //selector线程数 selector线程负责1.事件注册 2.读写IO轮询 3.将数据读取或者写入到transport public int selectorThreads = 2;...2013-10-20 12:50:26 · 490 阅读 · 0 评论 -
thift-transport层
TTransport=>TIOStreamTransport=>TSocket重要参数设置: socket_.setSoLinger(false, 0);socket_.setTcpNoDelay(true);socket_.setSoTimeout(timeout_);//客户端读取超时时间socket_.connect(new InetSocketAdd...2013-10-20 13:46:37 · 152 阅读 · 0 评论 -
thift-tropocol层
asdf2013-10-20 13:47:33 · 148 阅读 · 0 评论 -
thift-tprocessor
thift 服务端模型之TThreadedSelectorServer分析-tprocessor2013-10-20 13:48:08 · 142 阅读 · 0 评论 -
基于事件的 NIO 多线程服务器 附件为高性能网络通讯
基于事件的 NIO 多线程服务器 简介: JDK1.4 提供的无阻塞 I/O(NIO)有效解决了多线程服务器存在的线程开销问题,但在使用上略显得复杂一些。许多基于 NIO 的多线程服务器程序往往直接基于选择器(Selector)的 Reactor 模式实现。这种简单的事件机制对于较复杂的服务器应用,显然缺乏扩展性和可维护性, 而且缺乏直观清晰的结构层次。本文将通过一个...2013-07-28 14:53:31 · 94 阅读 · 0 评论 -
压力测试
压力测试条件1.并发用户数2.总请求数(也有按照连续请求时间)3.请求资源描述(一个简单查询,复杂业务操作等) 最大并发数:服务器和用户双方的最大收益,服务器需要支持高并发数和及高吞吐率,用户需要较少的时间得到响应。 文件描述符:标明每一个被进程所打开的文件和socket数目ulimit -n //获取1024ulimit - n 2048 //设置 ...原创 2013-07-28 14:02:03 · 132 阅读 · 0 评论 -
NoSuchMethodError
NoSuchMethodError 字面意思没有找到类中的方法,但是一般在项目中都通过定位都能找到对应的方法。很难排查出问题所在。但是这个问题确实是方法找不到抛出的。一般都是因为JVM全盘委托机制 类加载器加载了一个低版本的jar包,然后却使用了高版本jar包的方法,在程序允许的时候抛出了这样的异常。所以遇到这样的异常首先排查jar包是否冲突。 如果类路径比较多杂...2013-05-12 21:23:27 · 124 阅读 · 0 评论 -
ThreadLocal误用导致问题
ThreadLocal为每一个线程维护变量的副本,如果不删除 下次请求还能访问到上一次的值。测试时候tomcat只有一个工作线程。 发送四次请求:获取到值:0 设置的值:1399605191 获取到值:1399605191 设置的值:-1861096812 获取到值:-1861096812 设置的值:598344505 获取到值...原创 2013-05-14 10:26:35 · 148 阅读 · 0 评论 -
双重检查锁定及单例模式
单例创建模式是一个通用的编程习语。和多线程一起使用时,必需使用某种类型的同步。在努力创建更有效的代码时,Java 程序员们创建了双重检查锁定习语,将其和单例创建模式一起使用,从而限制同步代码量。然而,由于一些不太常见的 Java 内存模型细节的原因,并不能保证这个双重检查锁定习语有效。它偶尔会失败,而不是总失败。此外,它失败的原因并不明显,还包含 Java 内存模型的一些隐秘细节。这些事实将导...原创 2013-05-15 10:39:50 · 89 阅读 · 0 评论 -
异步长连接 实现方案(转)
转自:http://blog.163.com/tsing_hua/blog/static/13962222420128195741354/由于Dubbo底层采用Socket进行通信,自己对通信理理论也不是很清楚,所以顺便把通信的知识也学习一下。n 通信理论计算机与外界的信息交换称为通信。基本的通信方法有并行通信和串行通信两种。1.一组信息(通常是字节)的各位数据被同时传送的通...原创 2013-05-30 22:16:39 · 930 阅读 · 0 评论 -
java中文乱码终结者(转)
转自:http://blog.csdn.net/kt400_hhx/article/details/1641586说明:本文为作者原创,作者联系地址为:josserchai@yahoo.com。由于Java编程中的中文问题是一个老生常谈的问题,在阅读了许多关于Java中文问题解决方法之后,结合作者的编程实践,我发现过去谈的许多方法都不能清晰地说明问题及解决问题,尤其是跨平台时的中文问题。于...原创 2013-05-31 19:04:19 · 109 阅读 · 0 评论 -
HashMap&ConcurrentHashMap 深度分析(转)
java.util.HashMap是很常见的类,前段时间公司系统由于对HashMap使用不当,导致cpu百分之百,在并发环境下使用HashMap 而没有做同步,可能会引起死循环,关于这一点,sun的官方网站上已有阐述,这并非是bug。HashMap的数据结构 HashMap主要是用数组来存储数据的,我们都知道它会对key进行哈希运算,哈系运算会有重复的哈希值,对于哈希值的冲突,...原创 2013-05-31 20:45:27 · 69 阅读 · 0 评论 -
application/x-www-form-urlencoded和multipart/form-data
关于application/x-www-form-urlencoded等字符编码的解释说明 在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型。 下边是说明: application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。 multipart/form-dat...原创 2013-05-31 22:06:51 · 565 阅读 · 0 评论 -
java 进阶技术方向的好书
1.java分布式应用基础和实践 http://www.blogjava.net/bluedavy/ 牛逼的技术博客 2. 深入理解 Java 虚拟机 (JVM 高级特性与最佳实践)3.构建高性能web站点4.spring3.x企业级开发 很基础5.how tomcat work中文 早期tomcat代码 并发 设计模式 基本都有很好的应用 比看书效果好很多...原创 2013-06-11 11:51:56 · 133 阅读 · 0 评论 -
IO - 同步,异步,阻塞,非阻塞 转
当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link 。写完之后发现很多人都很喜欢,我还是非常开心的,也说明这个问题确实困扰了很多人。随着学习的深入,渐渐的感觉原来的理解有些偏差,但是还是没引起自己的重视,觉着都是一些小错误,无伤大雅。直到有...原创 2013-07-11 20:45:50 · 83 阅读 · 0 评论 -
Java版的各种Thrift server实现的比较
Thrift Java Servers ComparedThis article talks only about Java servers. See this page if you are interested in C++ servers.本文仅讨论Java版的Thrift server.如果你对C++版的感兴趣,请参考 这个 页面。Thrift is a cross-language s...原创 2013-07-14 08:53:42 · 95 阅读 · 0 评论 -
dbcp&commons-pool
DBCP主要是为jdbc提供连接池服务。 2.实现2.1 Jakarta Commons PoolDBCP利用了Jakarta Commons Pool来实现连接池管理。下面回顾一下Commons Pool的基本概念PoolableObjectFactory: 用于管理被池化的对象的产生、激活、挂起、校验和销毁; ObjectPool: 用于管理要被池化的对象的借出和归还...原创 2013-07-25 15:31:00 · 173 阅读 · 0 评论 -
thrift-client/asynclient
thrift-client/asynclient2013-10-20 14:02:38 · 150 阅读 · 0 评论