欢迎访问 水平网    今天是:2017年11月22日 注册 | 登录 | 订阅 | 收藏
推荐文章
热点文章
专题
JQuery框架
Prototype.js
HTML5

在Java中展开glob(通配符)

编程中使用正则表达式越来越多,而glob表达式则越来越少。但不管怎样,Jakarta Original Reusable Objects (ORO)包含了一个GlobCompiler类来处理glob表达式。Globbing这个名字古怪而著名,它指的是在DOS/UNIX上用通配符如*号来代表若干个文件。例如,d*.bat代表所有以d开头的批处理文件,又如*virus.exe代表所有名字以virus.exe结尾的可执行文件。Jakarta ORO通过把glob语言翻译成正则表达式来实现globbing功能,所以在ORO中使用globbing系统和使用正则表达式是一样的。下面是例子:import org.apache.oro.text.*;import org.apache.oro.text.regex.*;public class GlobTest {static public void main(String[] args)...
类别:C/S程序开发 - JAVA,阅读:568,更新:2014-05-16

命名你的线程和查看系统

虽然集成开发环境(IDE)可以为图形化应用程序提供很好的调试设置,但是它不允许你调试多线程的Java服务器程序。幸运的是,有几个工具可以做到,例如日志应用程序接口(API)和Java调试器。开发人员也可以获得系统的线程转储,它可以在任何时间显示出系统状态。为了得到系统线程转储,运行服务器程序并键入[Ctrl] []。这会输出所有正在执行的线程。例如:^Full thread dump:Thread-1" prio=5 tid=0x87fe0 nid=0x800013b8 waiting on monitor [0..0xbfffe9f8]"Thread-0" prio=5 tid=0xafde0 nid=0x72a00 runnable [0x173f000..0x173fb48]at java.net.PlainSocketImpl.socketAccept(Native Method)at java.net.Plain...
类别:C/S程序开发 - JAVA,阅读:460,更新:2014-05-16

学会如何处理数据库中的null

Java数据库连接(JDBC)结果集类掩盖了一个微小的bug,如果你忘记了使用wasNull方法的话。关系数据库中的NULL值的概念和Java中null的值的概念相似,前者任何类型都可以为null,但是在Java中,基本数据类型不能为null。当要读取一个数据库域赋值给一个基本类型的时候(例如resultSet.getInt(1)),可能会造成问题。这样的例子已经让JDBC规范的制订者开始研究如何解决。当一个值通过如getInt、getLong、getFloat这样的getXxx方法从数据库中得到后,开发者可以调用wasNull()方法来找出其值是否为null。如果wasNull返回true,那么可以让开发者为基本类型选择使用合适的null值。GetXxx方法获得的值与JDBC的驱动紧密相关。例...
类别:C/S程序开发 - JAVA,阅读:386,更新:2014-05-16

用JAI扩展Java的图像处理能力

Java的图像处理能力不断地在增长,但是将一个如PNG或者JPEG格式的文件写入磁盘或从磁盘读取这样的操作仍然是一种巫术。解决方案是使用Java Advanced Imaging(JAI)API。JAI可以在Sun的Java网站下载,在JDK1.4的javax.imageio包里已经包括了它。 有针对Windows平台的exe格式的JAI安装文件可以下载, 但是没有针对UNIX和Linux的安装文件。尽管JAI可以在纯Java模式下运行,但它也为Windows、Linux、UNIX提供了本地库,使用它们可以提高运行速度。下面的例子是安装在Apple机的OS X系统上的,因此我们选择了纯Java模式。为了安装JAI,你需要一个jai tar.gz文件。把三个重要的jar文件mlibwrapper_j...
类别:C/S程序开发 - JAVA,阅读:381,更新:2014-05-16

命令行下的Java开发

开发者长久以来可以分为Mac/Windows操作系统下的点击用户或者UNIX操作系统下的命令行用户。随着Mac机上OS X软件的出现以及Windows平台下Cygwin程序的存在,Mac或者Wiindows用户现在可以在享受Mac/Windows的点击方便界面的同时,使用强大的UNIX命令行界面。 现在有许多命令行环境,当前用的最多的是bash、tcsh和zsh。我们将在我们的例子中使用bash命令行(shell)。首要的是让编辑变得简单。下面的一段代码是来自于命令行:jikes com/generationjava/example/FirstClass.java与其要输入java com.generatioinjava.examples.FirstClass来测试这段代码,不如使用javad函数以及!:1语法。javad !:1其中,!:1告诉系统重复上一个命...
类别:C/S程序开发 - JAVA,阅读:406,更新:2014-05-16

短路运算符:提高性能和简化代码

NullPointerException大概是最常见的RuntimeException。大量的开发工作花在尝试发现对象是否被赋值上,仅仅是为了检查它是否是null的。要解决这个问题,可以用一个if-null块来保护你的代码。例如: if(obj != null) {str = obj.toString( );} 但是,当被保护的块象下面这样的时候,是有问题的:if(obj.equals(newobj)){....} 加上保护用的if-null块会变成这样:if(obj != null) {if(obj.equals(newobj)) {....}} 当嵌套if块来处理null保护时显得很凌乱,这时可以试一下使用短路运算符。例如布尔“与”运算符,“&&”:if((obj != null) && obj.equals(newobj) ) {...} “短路”意味着运算符...
类别:C/S程序开发 - JAVA,阅读:430,更新:2014-05-16

在Java中读写Excel文件

Jakarta的POI项目提供了一组操纵Windows文档的Java API,如下几个类提供了操作Excel文件的方便的途径:HSSFWorkbook、HSSFSheet、HSSFRow、HSSFCell,分别代表了Excel电子表格中的Book、Sheet、行和单元格。你可以在下面地址下载到最新的POI工具包:http://jakarta.apache.org/poi/index.html下面的代码创建一个Excel文件test.xls,并在第一行的第一格中写入一条消息:import org.apache.poi.hssf.usermodel.*;import java.io.FileOutputStream;// code run against the jakarta-poi-1.5.0-FINAL-20020506.jar.public class PoiTest {static public void main(String[] args) throws Exception...
类别:C/S程序开发 - JAVA,阅读:373,更新:2014-05-16

JavaMail发送邮件中主题乱码的解决方法

很多朋友都使用过JavaMail进行邮件发送,在邮件正文中的乱码容易解决。但邮件主题的乱码无论怎样转码总是显示一堆乱码。到底应该怎么处理呢?JavaMail中的邮件主题需要进行BASE64编码,格式形如:=?GB2312?B?xPq1xMPcwuvS0b6t1tjWw6Osx+u+ob/stcfCvKOssqLQ3rjEw9zC66Oh?=所以,直接使用msg.setSubject("中文主题"),或者msg.setSubject("中文主题".getBytes("8859_1"), "GB2312"))都一样会出现乱码。在设置邮件主题前需要将主题字串的字节编码为BASE64格式,并添加编码头,示例代码如下:sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();msg.s...
类别:C/S程序开发 - JAVA,阅读:427,更新:2014-05-16

递归地删除文件

删除一个包含文件的目录并不像创建File对象和调用delete()方法那样简单。以一种平台相关的方式安全地删除非空的目录,需要少量的算法,从目录树的底层向上依次删除。清空一个目录中的文件,只需简单地循环调用目录下的所有文件的delete方法即可。static public void emptyDirectory(File directory) {File[ ] entries = directory.listFiles( );for(int i=0; i<entries.length; i++) {entries[i].delete( );}} 这个简单的方法可以一种更强大的方式重用,用于删除整个目录结构。在循环中,无论何时遇到一个目录,就递归调用deleteDirectory方法。该方法应该检查传入的参数是否是一个目录。最后,删除最初传入的目录本身。static public v...
类别:C/S程序开发 - JAVA,阅读:350,更新:2014-05-16

Java技巧:在屏幕上定位窗口

Java Abstract Window Toolkit(AWT)的Window.setLocation函数为开发人员提供了一个条理清晰的方法来解决在用户屏幕上定位一个窗口的问题。但用这个方法就必须考虑精确的象素点,这就很麻烦,而用一个类似于java.awt.BorderLayout的系统就要好的多。 在BorderLayout中,各部分都是由下面这几个区域函数之一定位的:BorderLayout.NORTHBorderLayout.SOUTHBorderLayout.CENTERBorderLayout.WESTBorderLayout.EAST 下面的代码用几乎相同的方法在屏幕上定位了一个窗口。它首先确定了五个固定的位置,然后用屏幕大小和窗口大小来定位一个窗口。package com.generationjava.awt;import java.awt.Dime...
类别:C/S程序开发 - JAVA,阅读:479,更新:2014-05-16

使用MessageFormat控制输出

Printf是很多C语言程序员喜欢的工具,当他们转而使用Java时他们非常的失望。Java有一个替代的方法但是那个方法和C语言的printf() 函数的原理不一样。幸运的是,早期的Java库的开发者认识到创建一个更合适Java的工具而不是一个printf函数。MessageFormat运行开发者输出文本中的变量的格式。它是一个强大的类,就像下面的例子展示的那样:String message ="Once upon a time (, around about ), there " +"was a humble developer named Geppetto who slaved for " +" days with complete user " +"requirements. ";Object[ ] variables = new Object[ ] { new Integer(4), new Date( ), ...
类别:C/S程序开发 - JAVA,阅读:322,更新:2014-05-16

用Java获得IP地址

如何用Java获得一个域名的IP地址呢?提供这个功能的类叫做java.net.InetAddress。我们假设现在有这样一个域名,它用一个静态的getByName来重新获得一个InetAddress,然后得到可以读出的IP地址。下面的代码是非常基本的命令行。 import java.net.InetAddress;import java.net.UnknownHostException;public class NsLookup { static public void main(String[] args) { try {InetAddress address = InetAddress.getByName(args[0]);System.out.println(args[0]+": "+address.getHostAddress());} catch(UnknownHostException uhe) {System.err.println("Unable to find: "+args[0]); } }}In...
类别:C/S程序开发 - JAVA,阅读:426,更新:2014-05-16