- 博客(12)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 通过反射构造内部类对象
今天折腾了好一阵子,终于明白怎么通过反射来构造内部类对象了。这里头名堂不少,只能一一道来。首先在 javalang 包下写一个包含内部类的类:package javalang;public class Outer { public static class Inner1{}}注意这个类是 public static,后面我们慢慢把这些修饰符去掉。要想通过反射来创建 Inner1 对象,首先要
2009-02-27 19:18:00 5532
原创 关于 static 块是否是同步的
要理解 synchronized 关键字,可以先看看这篇文章: http://www.learndiary.com/archives/diaries/2910.htm 本文是对该文的补充。 作者在最后对类中的 static 块是否是同步的抱有疑惑。其实想鉴定也不难。通过编译代码我们就知道,synchronized static {} 这样写是不允许的。为什么呢?因为 sta
2009-02-27 17:03:00 1827
原创 Java 小例子:图书馆课程设计
用 Java 模拟一个图书馆。包括创建图书、创建读者、借书、还书、列出所有图书、列出所有读者、列出已借出的图书、列出过期未还的图书等功能。每个读者最多只能借 3 本书,每个书最多只能借 3 个星期,超过就算过期。 下面是一个命令行下的实现。这个例子的主要目的是向初学者展示内部类的好处。
2009-02-26 19:30:00 7564 19
原创 工作时该不该听音乐
不是每个公司都允许程序员工作的时候带耳塞听音乐。其实听音乐不是为了享受,而是为了清静。为什么呢?因为音乐屏蔽了周围的声音,像击键声、点鼠标声、讨论的声音。 特别是人的说话声。人的大脑处理说话声跟其他声音不一样,是有特别的区域的。它首先将说话声翻译成语言,然后交给大脑处理。这一过程是在潜意识里进行的,所以我们听到别人用自己听得懂的语言说话,就明白他/她的意思。 如果我在工作的时候,别
2009-02-22 10:11:00 3350 1
原创 介绍 Java 自带的线程池(2)
续前文:java.util.concurrent.ThreadPoolExecutor 类提供了丰富的可扩展性。你可以通过创建它的子类来自定义它的行为。例如,我希望当每个任务结束之后打印一条消息,但我又无法修改任务对象,那么我可以这样写:ThreadPoolExecutor executor = new ThreadPoolExecutor(size, maxSize, 1,
2009-02-15 11:26:00 1837
原创 Java 小例子:创建一个可拖拽图片的面板
今天在论坛上看到帖子希望能在 Swing 中实现像拖地图一样拖拽图片。这里是一个最简单的实现,提供了一个基本思路。import javax.swing.*;import javax.swing.filechooser.FileNameExtensionFilter;import java.awt.*;import java.awt.event.MouseEvent;import
2009-02-14 17:29:00 5197 2
原创 介绍 Java 自带的线程池(1)
从 Java 5 开始,Java 提供了自己的线程池。线程池就是一个线程的容器,每次只执行额定数量的线程。 java.util.concurrent.ThreadPoolExecutor 就是这样的线程池。它很灵活,但使用起来也比较复杂,本文就对其做一个介绍。首先是构造函数。以最简单的构造函数为例:public ThreadPoolExecutor( int
2009-02-14 12:58:00 3142 1
原创 面子驱动编程
面子驱动编程?这当然是玩笑话。在经历了文档驱动、进度驱动之后,我又遇上了“面子驱动编程”。首先声明我其实很喜欢我们公司,否则的话不会从毕业到现在一直呆了四年。但世上没有完美的公司,项目中碰到问题是很自然的。什么是面子驱动?我也是昨天开会后悟出来的。当时小组长(不怕你笑话,我还在干程序员)问我,我负责的模块,权限方面如何设计的。我说根据用户岗位来判断权限。他问,有没有使用现有的权限数据库表(包含角色
2009-02-10 10:16:00 908 1
原创 《实现模式》到手,炫耀一下
今天快递公司终于把《实现模式》送来了。在这里抄几段:本书的目的是帮助你通过代码表达自己的意图。首先,必须在编程时保持清醒。……迈向沟通的第一步就是让自己慢下来,弄明白自己究竟想了些什么,不再假装自己是在凭本能编程。第二步是承认他人的重要性。……必须学会相信其他人也和我一样重要,然后才能写出能与他人沟通的代码。我早已发现,在那种没有模式可以应用,或是两个相互排斥的模式可以同等应用
2009-02-09 16:29:00 1185 2
原创 classpath 简介
本文的目的是向初学者介绍什么是 classpath,以及如何在项目中组织 classpath。熟悉 classpath 是熟练使用 java/javac 命令的前提。虽然类似的文章非常多,但本文力求做到简单易读。一、基本用法classpath 是 Java 最重要的基础概念之一。它是一个编译和运行时都要用到的参数。当没有这个参数时,java 和 javac 命令会取环境变量 CLASS
2009-02-07 12:26:00 1558
原创 一个方法不超过 5 行有多难?
之前发的文章 给初学者一点建议:学习设计之前 不管是论坛上还是 Blog 上都得到不少回复(相对而言啦)。大家对我的想法都是肯定的,然而同时不少人也说:“所谓一个方法5行程序仅仅是一种很夸张的说法。” 这里先更正一下,5 行不是准确的说法,应该说 5 句比较恰当。一个方法不超过 5 句。 出现这样的回复,是个问题。因为这是写给初学者看的,如果你看完后相信的是回复里的说法,那我这文章
2009-02-05 19:57:00 5567 38
原创 给初学者一点建议:学习设计之前
这是写给初学者看的,虽然有点吹牛,但高人面前不敢班门弄斧,我写的都是来自我的切身经验。) 初学者学习设计模式之类的东西之前,如果能打好基础,将来必能事半功倍。 初学者不太讲究的一个地方,就是不考虑将来要修改代码的可能性。一个计算器写出来,就觉得“好,我会了”,马上丢到一边。 高水平的程序员,写出来的代码都是易于修改的。但是初学者很难有这种机会要修改自己的程序,怎么办呢? 就
2009-02-05 08:21:00 5945 36
在 Windows 下运行的 Redis 服务,版本 5.0.14.1,下载 1 积分
2023-04-05
wxWidgets API 文档(chm)
2008-12-09
ONGL 语言指南(官方,英文,pdf)
2008-12-09
请帮我分析一下公司将来的走向
2009-05-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人