Java
AldisZhan
We are the heroes of our time.
But we're dancing with the demons in our minds.
展开
-
Java 单态模式
java 单态模式1、 构造方法私有。2 在类里面创建私有,静态(static),final的该对象的实例。3 创建公有,静态方法以获得实例。4 应用场合:避免频繁读取属性文件,构造一个单例模式进行一次读取class Single { private final static Single single = new Single(); private原创 2009-09-12 16:29:00 · 644 阅读 · 0 评论 -
Apache Commons 项目运用 - toString篇
对象的字符串表示Object 的 toString 方法的默认实现返回对象的完全限定名称,后面跟上一个 @ 字符,然后是对象的散列码的值。您可能早就明白,这对于区分不同的对象帮助不大。Commons Lang 有一个方便的 ToStringBuilder 类,这个类可帮助构建可读性更强的 toString 结果。构建 toString您可能已经不止一次编写过 toString 方法 — 我就原创 2012-03-29 21:31:39 · 2270 阅读 · 0 评论 -
Apache Commons 项目运用 - Comparable篇
相对的 comparable另一个有趣的方法也有一个相当正式的契约,那就是 Comparable 接口的 compareTo 方法。如果要控制特定的对象如何排序,那么这个接口非常重要。在本节中,您将学习如何利用 Commons Lang 的 CompareToBuilder。排序输出在过去的 Java 编程中您可能已经注意到,对于对象如何按一定的顺序排序有默认的机制,例如 Collectio原创 2012-03-30 20:46:58 · 1515 阅读 · 0 评论 -
Servlet 3.0 入门
Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布。该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化 Web 应用的开发和部署。其中有几项特性的引入让开发者感到非常兴奋,同时也获得了 Java 社区的一片赞誉之声:异步处理支持:有了该特性,Servlet 线程不再需要一直阻塞,直到业务处理完毕才能再输出响应,最后才结原创 2012-04-25 20:17:22 · 1452 阅读 · 0 评论 -
Maven 小结I
Maven 是为 Java 开发人员提供的一个极为优秀的构建工具,您也可以使用它来管理您的项目生命周期。作为一个生命周期管理工具,Maven 是基于阶段操作的,而不像 Ant 是基于 “任务” 构建的。Maven 完成项目生命周期的所有阶段,包括验证、代码生成、编译、测试、打包、集成测试、安装、部署、以及项目网站创建和部署。为了更好地理解 Maven 和传统构建工具的不同,我们来看看构建一个 J原创 2012-05-29 23:10:55 · 2471 阅读 · 0 评论 -
深入理解 Java Collections API (I)
对于很多 Java 开发人员来说,Java Collections API 是标准 Java 数组及其所有缺点的一个非常需要的替代品。将 Collections 主要与 ArrayList 联系到一起本身没有错,但是对于那些有探索精神的人来说,这只是 Collections 的冰山一角。1. Collections 比数组好刚接触 Java 技术的开发人员可能不知道,Java 语言最初包括数原创 2012-05-13 00:44:01 · 989 阅读 · 0 评论 -
深入理解 Java Collections API (II)
java.util 中的 Collections 类旨在通过取代数组提高 Java 性能。如您在 第 I 部分 中了解到的,它们也是多变的,能够以各种方式定制和扩展,帮助实现优质、简洁的代码。Collections 非常强大,但是很多变:使用它们要小心,滥用它们会带来风险。1. List 不同于数组Java 开发人员常常错误地认为 ArrayList 就是 Java 数组的替代品。Colle原创 2012-05-16 00:19:12 · 1193 阅读 · 0 评论 -
Spring工具类详解
Spring 不但提供了一个功能全面的应用开发框架,本身还拥有众多可以在程序编写时直接使用的工具类,您不但可以在 Spring 应用中使用这些工具类,也可以在其它的应用中使用,这些工具类中的大部分是可以在脱离 Spring 框架时使用的。了解 Spring 中有哪些好用的工具类并在程序编写时适当使用,将有助于提高开发效率、增强代码质量。文件资源操作文件资源的操作是应用程序中常见的功能,如当上传原创 2012-05-17 00:28:58 · 3562 阅读 · 0 评论 -
深入理解JAR包
对于大多数 Java 开发人员来说,JAR 文件及其 “近亲” WAR 和 EAR 都只不过是漫长的 Ant 或 Maven 流程的最终结果。标准步骤是将一个 JAR 复制到服务器(或者,少数情况下是用户机)中的合适位置,然后忘记它。事实上,JAR 能做的不止是存储源代码,您应该了解 JAR 还能做什么,以及如何进行。在这一期的 5 件事 系列中,将向您展示如何最大限度地利用 Java Arch原创 2012-05-26 01:47:25 · 2554 阅读 · 0 评论 -
五子棋的棋盘Android版
五子棋的棋盘Android版实现,具体上下文可以参考上一篇的五子棋AI实现中的代码import java.util.ArrayList;import java.util.List;import android.content.Context;import android.content.res.Resources;import android.graphics.Bitmap;impor原创 2012-09-28 14:52:17 · 2825 阅读 · 1 评论 -
五子棋AI算法 Java实现
五子棋AI算法 也算是一个典型的游戏AI算法,一些棋类的AI算法都可以参考实现,下面是Java实现代码棋盘抽象接口import java.util.List;public interface IChessboard { //取得棋盘最大横坐标 public int getMaxX(); //最大纵坐标 public int getMaxY(); //取得当前所有空白点,原创 2012-09-18 23:03:46 · 16920 阅读 · 7 评论 -
Robocode Tank AI 实例
最近公司流行玩Robocode,这是一个坦克机器人战斗仿真引擎,里面可以写一些自己的Tank来互相战斗。主要是使用了躲避子弹和避墙的思想package azrael;import robocode.*;//import java.awt.Color;// API help : http://robocode.sourceforge.net/docs/robocode/roboco原创 2013-01-31 23:51:55 · 3637 阅读 · 0 评论 -
JDK 6 目录结构介绍以及JDK中的工具研究
[code="java"]要想深入了解Java必须对JDK的组成, 本文对JDK6里的目录做了基本的介绍,主要还是讲解了下JDK里的各种可执行程序或工具的用途Java(TM) 有两个平台 JRE 运行平台,包括Java虚拟机,运行类库,java应用程序装载器。JRE不是开发环境,所以不包括编译器,调试器,有需要这些请安装JDK(TM) //说明 :环境为Windows...原创 2012-02-18 22:20:09 · 127 阅读 · 0 评论 -
Apache Commons 项目运用 - equals篇
Commons Lang 是 Apache Commons 的一个组件,后者是一个宏大的项目,其中的很多子项目涉及到 Java? 语言软件开发的不同的方面。Commons Lang 扩展了标准 java.lang API,增加了字符串操作方法、基本数值方法、对象反射、创建和串行化以及System 属性。它还包含一个可继承的 enum 类型、对多种嵌套的 Exception 类型的支持、对 java原创 2012-03-27 00:28:37 · 2291 阅读 · 0 评论 -
Apache Commons 项目运用 - hashCode篇
对象的散列实现一个适当的 equals 方法后别忘了还要覆盖 hashCode。本节展示如何操作。构建 hashCodehashCode 方法也有一个契约,但是不像 equals 的契约那样正式。然而,重要的是要理解它。和 equals 一样,结果必须一致。对于对象 foo 和 bar,如果 foo.equals(bar) 返回 true,那么 foo 和 bar 的 hashCode 方法原创 2012-03-28 22:03:29 · 1397 阅读 · 0 评论 -
Derby数据库
Derby数据库是一个纯用Java实现的内存数据库,属于Apache的一个开源项目。由于是用Java实现的,所以可以在任何平台上运行;另外一个特点是体积小,免安装,只需要几个小jar包就可以运行了。Derby是一个非常轻量级的关系数据库引擎,却有着包括崩溃恢复、事务回滚和提交、行/表级锁、视图、主键/外键约束、触发器、子查询表达式等特性。1.设置环境变量 DERBY_INSTALL=%J原创 2012-02-19 23:19:01 · 2270 阅读 · 0 评论 -
java中set map list的区别
都是集合接口简要说明 set --其中的值不允许重复,无序的数据结构 list --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构,健值必须具有唯一性(键不能同,否则值替换) List按对象进入的顺序保存对象,不做排序或编辑操作。Set对每个对象只接受一次,并使用自己内部的排序方法(通常,你只关心某个元素是否属于Set,而不关原创 2009-09-18 22:46:00 · 1780 阅读 · 0 评论 -
什么是面向对象
Alan Kay 大牛 总结过“纯粹”的面向对象程序设计方法是什么样的:(1) 所有东西都是对象。可将对象想象成一种新型变量;它保存着数据,但可要求它对自身进行操作。理论上讲,可从要解决的问题身上提出所有概念性的组件,然后在程序中将其表达为一个对象。(2) 程序是一大堆对象的组合;通过消息传递,各对象知道自己该做些什么。为了向对象发出请求,需向那个对象“发送一条消息”。更具体地讲,可将消息想象原创 2009-09-21 22:04:00 · 1633 阅读 · 0 评论 -
JVM的Property个字段含义
Properties props=System.getProperties(); //系统属性 System.out.println("Java的运行环境版本:"+props.getProperty("java.version")); System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor"));转载 2009-09-25 14:13:00 · 1822 阅读 · 1 评论 -
Java String 内存机制与常量池
String s1 = "JavaString";String s2 = "JavaString"; 上述的代码创建String 实例步骤1.查看常量池中是否存在内容为 “JavaString” 的相同字符串对象2.若没有,就在常量池中创建一个包含该内容的字符串对象,并让引用变量指向该对象3若已经存在,则让字符串引用直接指向常量池中对象这时可以用 == 来判断 字符串是否相原创 2009-10-03 15:46:00 · 4131 阅读 · 3 评论 -
记载关于火柴棒数字变换算法,参照学习
import java.util.*;/** transformation是一个Map,存放每一种字符对应的变换. * char[][]是一个长度为3的二维数组,char[0]是自身变换,char[1]是减一根火柴的变换,char[2]是加一根火柴对就的变换. * 比如对于6,对应的char[][]是{ {0,9}, {5}, {8}},表示自身可以变为0,转载 2009-10-01 10:30:00 · 3224 阅读 · 0 评论 -
关于垃圾回收的机制与机理之孤岛垃圾
对象成为垃圾的条件 1.对于非线程对象来说 当所有的活动线程都不可能访问到这对象时,变成垃圾 2.对于线程对象来说 除了上一条之外,还要求吃线程本身已经死亡或者还处于新建状态,才是垃圾,才能被回收 千万不要片面的认为“没有引用指向的对象就是垃圾,有引用指向的就不是垃圾”是对的孤岛垃圾就是个反驳的例子class Island{ public Island brother;原创 2009-10-03 14:01:00 · 2093 阅读 · 2 评论 -
集合框架----Java管理对象神奇之Object类的equals和hashcode
Java具有强大的对象的管理器关于所有类的超类 Object类具有toString,equals,hashcode等重要的原始方法对于自己定义的类 重写toString是一个很好的编程习惯,让别人调用你的的toString函数时不会出项不可估计的错误 关于equals方法重写与hashcode方法重写有讲究的:equals方法必须具有的性质:1.自反性2.对称性原创 2009-10-05 12:03:00 · 2735 阅读 · 3 评论 -
Java中4种引用的简要解释
在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如果物品已经被扔到垃圾箱,想再 把它捡回来使用就不可能了。 但有时候情况并不这么简单,你可能会遇到类似鸡肋一样的物品,食之无味,弃之可惜。原创 2009-10-08 01:40:00 · 1200 阅读 · 0 评论 -
Ubuntu Linux JDK 安装
1, 下载JDK bin 版本例如 jdk-6u30-linux-i586.bin,放到/usr/java下2, 增加执行权限chmod +x jdk-6u30-linux-i586.bin3. ./jdk-6u30-linux-i586.bin4.vi编辑环境变量vi /etc/profile文件最后增加JAVA_HOME=/usr/java/jdk1.6.0_30CLASSPA原创 2012-02-05 20:35:17 · 1296 阅读 · 0 评论 -
Spring多数据源配置
在大型的应用中,为了提高数据库的水平伸缩性,对多个数据库实例进行管理,需要配置多数据源。在Spring框架被广泛运用的今天,可以很简单的运用Spring中的特性配置动态多数据。 1. 首先配置一个基于c3p0.ComboPooledDataSource的数据源A,数据源B.daoContext.xml原创 2012-02-22 23:47:39 · 11743 阅读 · 8 评论 -
JDK 6 目录结构介绍以及JDK中的工具研究
要想深入了解Java必须对JDK的组成, 本文对JDK6里的目录做了基本的介绍,主要还是讲解了下JDK里的各种可执行程序或工具的用途Java(TM) 有两个平台 JRE 运行平台,包括Java虚拟机,运行类库,java应用程序装载器。JRE不是开发环境,所以不包括编译器,调试器,有需要这些请安装JDK(TM) //说明 :环境为Windows XP SP3 下 的JDK为1.60版原创 2012-02-18 21:59:35 · 6923 阅读 · 0 评论 -
Linux 下编译自己的 OpenJDK7 包括JVM和JDK API
1.首先去 这里 http://download.java.net/openjdk/jdk7/ 下载OpenJDK7的源码zip包2. 简要介绍下OpenJDK7中的目录 hotspot: 放有OpenJDK Hotspot Virtual Machine 的源代码和make文件 langtools: 放有OpenJDK 的javac 等工具的源代码和make文件 co原创 2012-02-18 22:38:23 · 12722 阅读 · 9 评论 -
Linux 下编译 OpenJDK7 包括JVM和JDK API
[code="java"]1.首先去 这里 http://download.java.net/openjdk/jdk7/ 下载OpenJDK7的源码zip包2. 简要介绍下OpenJDK7中的目录 hotspot: 放有OpenJDK Hotspot Virtual Machine 的源代码和make文件 langtools: 放有OpenJDK 的javac 等工...2012-02-19 22:32:14 · 160 阅读 · 0 评论