- 浏览: 619724 次
- 性别:
- 来自: 杭州
最新评论
-
kongqinglong:
我艹,不好使,大骗子
基于Eclipse的FindBugs中文插件发布了 -
worket123:
误人子弟,不会就不要乱发
基于Eclipse的FindBugs中文插件发布了 -
accphc:
策略工厂实现Spring的ApplicationContext ...
Spring与策略模式 -
老凯和他的Java:
我也一直不漏的看完了,感触颇深,还是要多花花时间陪陪父母
纪念一位伟大的女性 -
IT_jingying:
认真的看完了,每一位母亲都是伟大的,她为自己的子女,家庭付出的 ...
纪念一位伟大的女性
文章列表
JDK1.5中有一个Exchanger类,可以用来完成线程间的数据交换。
类java.util.concurrent.Exchanger提供了一个同步点,在这个同步点,一对线程可以交换数据。每个线程通过exchange()方法的入口提供数据给他的伙伴线程,并接收他的伙伴线程提供的数据,并返回。当两个线程通过Exchanger交换了对象,这个交换对于两个线程来说都是安全的。
以下是例子:
public class ExgrDemo {
public static void main(String args[]) {
Exchanger<String> ...
我们知道,在MINA2中,发送和接受时两个独立的工作线程,但是可以设置一个参数,当服务端发送消息之后同步读取客户端的返回:
session.getConfig().setUseReadOperation(true);
近日,采用MINA2(RC)的同步读取方法,发现无法真的同步读取客户端的返回;
场景是:服务端发送一个消息给客户端,需要同步等待客户端的一个消息回执,然后服务端的程序继续执行;
sendSession.getConfig().setUseReadOperation(true);
WriteFuture future = sendSession.write( ...
题目:一列整型数组,从第一个开始,累加后续两个数字,得到一个新的数组,然后判断新的数组中的最大值,从而得到这个最大值是原始数组中哪三个数字累加的,输出(打印)这三个数字,并且输出(打印)出这个最大值。
如:2,5,-6,12,7,15,6,-10
结果应该是输出:12,7,15
最大值: 34
我的思路1:
1.先统计处累加的数组,数组长度是原始数组长度-2
2.计算新数组的最大值
3.根据最大值的位置输出原始数组的三个数字
4。输出最大值
思路2(如果可以打乱原始数组的次序):
1。先冒泡排序一次,从小到大排序 ...
美剧LOST--《迷失》
- 博客分类:
- 影视
迷失是美国电视连续剧,讲述的是一架飞机失事了,飞机上幸存下来的48个乘客在一个荒岛上生存发生的故事。
老美的电视剧起始都有点类似的,在这40几个人中起始就是一个小的社会,里面有亚洲人,美国人,有良好市民,有伊拉克移民,还有犯罪分子,警察(后来死掉了),由医生领导者领导这个小社会生存。当然中间会有一些摩擦什么的。
岛上有一些奇怪的事情发生,而每个人在里面都有一段故事,故事就这么展开,开始为他们的命运担心了,感觉好像自己就在其中一样。。
前天晚上更是很夸张的连续看了5集,还去网上搜索了这部电视的资料,原来这些事情都是一个试验??成科幻电视了。。。。
-------------- ...
MINA2中(MINA2 RC版本,MINA2.0正式版已经发布)服务端接受数据默认有一定长度的缓冲区(可以在启动的时候设置)。那么对于大报文,怎么处理呢?比如说超过1024,甚至更多?MINA2为了节省网络流量,提高处理效率,会将大报文自动拆分(可能是存放MINA2中的缓冲区里面):比如2048字节的报文,就会拆分成两次;那么在接受的时候,就有一个如何判断是完整报文的问题,或者说是一个拆包组包的问题。
MINA2中初始化服务的时候是可以设置输入和输出的缓冲区的:
acceptor.getSessionConfig().setReadBufferSize(1024);
...
场景:服务端开了两个SOCKET服务,分别对应两种客户端,假定分别无客户端A,客户端B。客户端A是短连接,发完消息得到反馈就结束,客户端B登陆上服务端之后就一直保持长连接。需求是:A发消息之后,进行业务处理,然后将处理的结果要发给客户端B。
目前考虑建立一起全局的ConcurrentHashMap,将客户端B的长连接中的IoSession放入ConcurrentHashMap中,客户端A处理完成之后,找到ConcurrentHashMap中的IoSession,然后调用write(msg)方法。
//sessionCurHashMap为全局变量,是一个ConcurrentHashM ...
中国银行缩短房贷年限遇到的搞笑事
- 博客分类:
- 情感
一直以来,每个月房贷还款的钱都比公积金少不少,但是没有啥时间和决心去银行办理一下缩短还款年限。我说的缩短还款年限是指更改房贷合同,比如说你原来和银行签订的是20年还款,每月2000,现在修改为10年,每月还4000。不是指普通的提前还贷而缩短还款年限。
杭州市公积金的规定是,只能取出来用于还贷的钱,意思是比如你现在每个月还款2000,但是你公积金每个月有2500,那么你只能取2000,剩余的500就躺在公积金账户上睡大觉,基本上没有啥用处了,而且很难取出来,当然你再贷款买房是可以的,不过这样的话,不在此次讨论的范围之列,能贷款买好几套房子,公积金那点钱睡觉也无所谓了。所以这样对我们普通的 ...
GAE普通用户不能上传超过3000个文件上去,我今天就遇到了这个限制。但是我去我的GAE的工程总目录下面用右键查看,只有1700个文件,很奇怪,GAE居然发现有3370个文件,这个差异确实有点大了。后来没办法,只好删除我的应用中的多个UI的皮肤组件,才顺利通过了。
我的GAE应用是 采用extjs3.3 + struts1.3 + spring2.5.6。
最近利用一些业余时间,搞了一个GAE的应用,基本用法是用GMAIL账户登录,然后记录自己的个人日常消费,很简单的一个版本。
修改了一下,相比老版本,先在的版本增加了量 ...
使用MINA2的时候,每次都要多两个slf4j的包,但是我们项目一般都是用log4j的包,虽然说MINA2支持log4j,但是多加载两个包感觉多余,于是修改了MINA2的源码,将所有的日志记录操作都修改成了log4j的。
注意:源码来自mina-2.0.0-RC1.tar。
有需要的朋友自己下吧。
不过没有测试过。
ECLIPSE 最近一段时间经常报错,看了日志,有如下错误信息:
ENTRY org.eclipse.ui 4 0 2010-08-10 09:56:43.763
!MESSAGE Unhandled event loop exception
!STACK 0
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: PermGen space)
at org.eclipse.swt.SWT.error(SWT.java:3884)
at org.eclipse.s ...
我们知道,进行SOCKET tcp/ip通信的时候,不知道每次接受的报文到底有多长?也就是是判断不了报文(消息)的边界。
一般的做法有下面几种:
1。设定固定长度的报文头,在固定的报文头上增加消息长度。每次读取的时候先读这个报文头,得到本次消息的总体长度。
2。在报文中设定特殊字符作为边界。比如:
***************************
之类的特殊符号等。
MINA2(我采用的版本是MINA2 RC1版本)中我采用第一种方式来读取消息报文。
具体代码:可以利用IoBuffer的prefixedDataAvailable方法得到消息头,可惜看了MINA2的源代码 ...
1.position
例:
position()
第一次使用返回值为当前位置:0
position(8) 返回第8个字节以后的数据(包括第8个)可以和 limit 联合使用
如:
buffer.position(3);
buffer.limit(7);
ByteBuffer slice = buffer.slice();
再次调用 position() 返回:8
2.remaining
例:
ByteBuffer byt = ByteBuffer.allocate(128,false);
第一次调用
byt.remaining(); 返回 ...
JDBC中通过MetaData来获取具体的表的相关信息。可以查询数据库中的有哪些表,表有哪些字段,字段的属性等等。MetaData中通过一系列getXXX函数,将这些信息存放到ResultSet里面,然后返回给用户。关于MetaData的说明网上也有不少,这里我只是从我自身学习的角度来记录一下简单使用JDBC以及获取数据表相关信息的方法。
首先,http://hometown.aol.com/kgb1001001/Articles/JDBCMetadata/JDBC_Metadata.htm这里有篇名字叫做《Understanding JDBC MetaData》的文章,讲解得不错。
下面就 ...
一、Java把内存划分成两种:一种是栈内存,一种是堆内存。
栈内存:
存放对象:函数中基本类型的变量和对象的引用变量、静态类方法
特点:栈有一个很重要的特殊性,就是存在栈中的数据可以共享。假设我们同时定义 ...