`
稻-草
  • 浏览: 61877 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
考虑到性能问题,采用Java NIO作为数据通道。   却发现CPU达 50%,原因是key.isWritable() 基本为ture,导致空循环。   目前还没有想到解决方法。 难到要有数据要写的时候才能注册 Write 事件?   代码摘要如下: while (!close) { // 必须有超时,否者一直锁定,就无法添加、删除连接 selector.select(500); Iterator<SelectionKey> iter = selector.selected ...
  1 何为线程 可以把一个线程想象成流水线,多线程就是为了多个流水线同时工作(同时下载多个文件),也可以不把不同的事务分发到不同的流水线上(一边下载(到缓存),一边保存(缓存保存到磁盘))。   以下载文件为例, l 单线程下载三个文件如下图,必须文件1下载完成后才能下载文件2。

自定义Popup window.

基类:采用JFrame + setUndecorated(true);   import java.awt.Graphics; import java.awt.event.WindowEvent; import java.awt.event.WindowFocusListener; import javax.swing.JFrame; import javax.swing.SwingUtilities; public class PopupWindow extends JFrame { public PopupWindow() { ...

Maven 导入本地jar包

    博客分类:
  • Java
    背景: 项目采用了开源的Jacob组件,实际Java 访问 COM接口。 但是最新版本的Jacob没有发布成Maven。     Step 1: 将jacob.jar 放到项目的 lib 目录下。   Step2: 配置pom.xml 增加依赖。 <dependency> <groupId>com.jacob</groupId> <artifactId>com-jacob</artifactId> <version& ...
package reflect; import java.io.IOException; import java.io.InputStream; import java.nio.ByteBuffer; import java.util.jar.JarEntry; import java.util.jar.JarFile; public class TestClassLoader extends ClassLoader { @Override protected Class<?> findClass(String name) th ...
我所做的最最坚持的事情就是写了Tangram Puzzle这个游戏。我最大的理想是不用工作;其次是自由职业者,一边旅行一边工作(野导游?哈哈)。大概在09年8月份的时候开始写的,断断续续的写,到10年3月15号凌晨1点多,正式在M ...
Sql语句用的不多,一直记不住,今天就总结列下,以后就不用查来查去了。   假设有表格 tbl_A    id              ip           port       description    0 127.0.0.1 23 1 192.0.0.1 80 2 localhost 8080               查询 查询一张表格所有数据: select * from tbl_A   查询一张表格特定列数据: select ip, port from ...
最近看了这篇文章,je上搜了下还好几篇博客。 编写高效的Android代码:http://lcs353732057.iteye.com/blog/458511 避免建立对象 使用本地方法 使用实类比接口好 用静态方法比虚方法好         // 难道要直接用面向过程的方法实现 不用getter和setter           // 封装性也不管了 将成员变量缓存到本地 避免使用枚举 .... 避免使用浮点数               // 不精确也不管? 真的要这么斤斤计较吗? 个人认为真的没有必要,大家说呢
    本文使用的JavaScript多语言实现,请参考:http://dcao.iteye.com/blog/513944     总体效果如下图:   Step 1 指定输入框的类型和输入的范围。       字符串通过realType指定类型为字符串、option表示是否可选、minlength最小长度为2和 maxlength指定最大长度为20。 <input name="user" id="user" type="text" realType="string" option ...
      首先澄清下多语言不等于国际化。国际化包含了更多的内容,如时间格式的显示、货币符号等。这里只讲解多语言的实现。       这里的多语言只是JavaScript的多语言实现,而不是Java(JSP、Servlet)的多语言实现。         Step 1 编写多语言资源文件       将中英文资源分别写到两个Js脚本中,如     zh_CN.js var ip_invalid = "如: 192.168.0.1"; var can_not_empty = "必填"; var must_be_int = "必须是整 ...
技术能力的核心是有一颗追求高质量代码的心.如果没有这颗心,所有的规范、思想、模式都是花架子。   总结下工作中开发人员需要的能力,分为技术能力、业务能力、沟通协调能力。   (一)技术能力 1 代码实践、代码编写规范 2 面向对象思想 3 设计模式 4 单元测试(Junit、CppUnit) 5 特定的技术知识如Swing、Struts、Spring等   为什么把单元测试放到最后呢? 虽然Junit、CppUnit的使用方法学习起来很容易掌握,但是要写出可测试性很强的代码却需要更高级的设计能力做支撑。 PS:单元测试的对象不是方法为单元,而是类为单元。   (二) ...
之前也没有接触过JFreeChart,如有错误或更简单的实现恳请指出, 谢谢。   JFreeChart的默认只有鼠标在数据点上的时候才显示tooltip;两点之间的数据就不能显示tooptip,如果数据是滚动变化的就更难使用。 所以决定干脆鼠标放哪,就显示鼠标点的数据。 最终效果如下图:     查了下Api,JFreeChart好像没有这样的功能,只好自己实现了.   JFreeChart中画图的面板是ChartPanel, tooltip的文字内容也是由这个类产生的.只要继承ChartPanel并重载getToolTipText方法就行了。下面是代码实现: packag ...
     最近看到Java项目的代码中看到这样的语句, if (null == model) { ... }      我问开发这段代码的同事问什么这么写,同事说是编程规范规定的。        但是在Java项目中,不需要这样写,也不应该这样写。        if 的判断语句倒着写,这种写法是从C\C++语言开始的,(获取其它语言更早就有了 :-) )      在C\C++语言中,数字等于0表示false, 不等于0表示true, 下面的两个if判断代码都是合法的,但是含义却南辕北辙 // 1 赋值 + 判断 int count = -1; if (c ...
项目开发就像打持久仗 问题就像敌人,一直存在于战争的始末。 每攻克一座城池,就需要修灭更多的敌人。问题虽然一直存在,但是帝国在变强大,这一点一定要告诉战士以激励士气。 每个特性就是一座城池,同时开发的特性太多、战线拉的太开就会把自己搞死。 有的城池是一定要攻取得,有的城池是可以放弃的,不同城池的重要性是不一样的,特性也是一样。 发展初期,只需要精兵强将,只有在帝国壮大(团队文化、软件架构)后才需要更多普通的士兵。
讲解Log4j等日志工具应用的文章很多, 但是如何打好日志,什么时候打什么日志确实更高深的学问。 好的运行日志可以有效帮助问题定位,提高工作效率。 典型的不好的日志              日志泛滥:日志太多导致有用信息淹没其中              日志过少:不能帮助问题的定位,典型的就是异常路径没有记录日志                           缺少信息:虽然记录了日志,描述含糊或没有加上必要的定位信息;如"Can't add role", 没有记录失败原因。              级别错误:这个问题没有上面几个严重,但是会造成工作效率下降。   ...
Global site tag (gtag.js) - Google Analytics