摘要:
今天在修订文件部署的bug的时候,应用的临时文件调用 File的delete方法总会删除失败。后来网上查了下说是有些流在使用,导到删除失败,于是把自己的InputStream关闭。删除,又失败了,向上看,原来还有一个地方在引用inputStream,所以可能是关闭没起做用把File关闭了,文件可以删除了代码: Java代码 ZipFile zip = null; try { if(isFile) { zip = new ZipFile(appPath); ZipEntry entry = zip.getEntry("META-INF/application.xml");in 阅读全文
摘要:
BufferedInputStream是一个带有缓冲区的输入流,通常使用它可以提高我们的读取效率,现在我们看下BufferedInputStream的实现原理: BufferedInputStream内部有一个缓冲区,默认大小为8M,每次调用read方法的时候,它首先尝试从缓冲区里读取数据,若读取失败(缓冲区无可读数据),则选择从物理数据源(譬如文件)读取新数据(这里会尝试尽可能读取多的字节)放入到缓冲区中,最后再将缓冲区中的内容部分或全部返回给用户.由于从缓冲区里读取数据远比直接从物理数据源(譬如文件)读取速度快,所以BufferedInputStream的效率很高!在具体看源码之前,我们还 阅读全文
摘要:
【程序23】题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。Java代码 public class Ex23 {static int getAge(int n){if (n==1){ return 10; } return 2 + getAge(n-1);} public static v. 阅读全文
摘要:
在Java RMI中Registry对象表示远程对象注册表。创建远程对象注册表使用以下代码:Java代码 LocateRegistry.createRegistry(8888); LocateRegistry.createRegistry(8888);获取远程对象注册表的引用使用以下代码:Java代码 Registry registry = LocateRegistry.getRegistry(host, port); Registry registry = LocateRegistry.getRegistry(host, port);可以使用Registry对象的list方法列出远程对象.. 阅读全文
摘要:
Java中的break Label 和continue Label 1:break break语句提供了一种方便的跳出循环的方法,一般只退出一重循环。 boolean test=true; int i=0; while(test){ i++; if(i>=10) break; } 执行这段程序时,尽管while条件表达式始终为真,全循环只运行10次。 2:标号label 标号提供了一种简单的break语句所不能实现的控制循环的方法,当在循环语句中碰到break时,不管其它控制变量,都会终止。但是,当你嵌套在几层循环中想退出循环时又怎么办呢?break只... 阅读全文
摘要:
有时候我们系统的java环境变量是1.5,而且我们主要的开发环境也是1.5。不过有些项目需要在1.4下面编译,如何方便的设置JAVA_HOME,CLASSPATH和PATH等变量呢,只需要在批处理文件下加入set JAVA_HOME=D:\j2sdk1.4.2_17\ set PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin set CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 这样的代码即可,注意请替换为您自己的jdk路径。 做个备忘,方便大家使用。 引自:http://www.blogjava.n 阅读全文
摘要:
什么是转义字符? 通过反斜线(\)转变后面字母或符号的含义。 在程序开发中有些字符需要转义以后在能够被使用,比如打印双引号或反斜杠时需要转义才能输出。 常见的转义字符: \n:换行 \b:退格,相当于键盘上的BackSpace \r:按下回车键 \t:制表符相当于Tab建 在Linux系统中只识别\n不识别\r,windows系统中换行时\n和\r都识别。 阅读全文
摘要:
&:按位与,相同为都为1结果为1否则为0. |:按位或,相同位有一个为1结果为1否则为0. ^:按位异或,相同为0,不同为1. >>>:无符号右移(考虑到负数的右移) ^异或的特殊用法: 一个数异或同一个数两次结果还是这个数,可用于加码和解码。 如何获取特定的某个字节值? 因为一个字节是四位,所以将要获取的字节位的4位右移到最低位, 与二进制1111按位与&。 阅读全文
摘要:
最近项目需要,在调研如何在pdf中增加标识字样,用来区分版本.最后确定用itext来实现.itext的官网是:http://www.itextpdf.com/代码如下:Java代码 /** * authory kingviker * time : 2012-12-12 */ import java.io.FileOutputStream; import java.io.IOException; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Font; import com.itextpdf.text.. 阅读全文
摘要:
在jsp里,获取客户端的ip地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或192.168.1.110,而并不是客户端的真实IP。 经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的 IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。. 阅读全文