- 浏览: 62798 次
- 性别:
- 来自: 杭州
最新评论
-
xiaofanac66:
NIO是需要移除监听key的吧 否则一直都会返回TRUE
Java NIO 的数据发送空循环导致的CPU暴涨 -
xsbird:
貌似不注册写,也可以任意写。
Java NIO 的数据发送空循环导致的CPU暴涨 -
itboy2009:
高,这是在是高
Maven 导入本地jar包 -
xiaojxiao:
LZ的广告展示数量好高,可惜ecpm低了点,不然收入能上一个数 ...
Tangram Puzzle游戏开发总结 -
coralsea:
试试HTML5的canvas吧,现成的可以用Flot:http ...
JFreeChart 实现全图tooptip
文章列表
考虑到性能问题,采用Java NIO作为数据通道。
却发现CPU达 50%,原因是key.isWritable() 基本为ture,导致空循环。
目前还没有想到解决方法。 难到要有数据要写的时候才能注册 Write 事件?
代码摘要如下:
while (!close)
{
// 必须有超时,否者一直锁定,就无法添加、删除连接
selector.select(500);
Iterator<SelectionKey> iter = selector.selected ...
1 何为线程
可以把一个线程想象成流水线,多线程就是为了多个流水线同时工作(同时下载多个文件),也可以不把不同的事务分发到不同的流水线上(一边下载(到缓存),一边保存(缓存保存到磁盘))。
以下载文件为例,
l 单线程下载三个文件如下图,必须文件1下载完成后才能下载文件2。
自定义Popup window.
- 博客分类:
- Swing
基类:采用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", 没有记录失败原因。 级别错误:这个问题没有上面几个严重,但是会造成工作效率下降。
...
- 2009-09-19 12:51
- 浏览 1693
- 评论(0)