
JAVA学习
文章平均质量分 62
whuslei
这个作者很懒,什么都没留下…
展开
-
JDK和JRE的区别
JDK JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比原创 2010-06-03 23:21:00 · 1015 阅读 · 0 评论 -
java中如何递归删除文件和文件夹(最简单的代码)
代码如下,递归删除: 注意:java中要想删除一个文件夹,首先要清空它下面的所有文件! public void delete(String path){ File f=new File(path); if(f.isDirectory()){//如果是目录,先递归删除 String[] list=f.list(); for(int i=0;i原创 2011-04-28 21:05:00 · 7264 阅读 · 1 评论 -
(转)java如何实现Serializable?
原文链接:http://www.sy0-201.org/archives/264,本Blog链接:blog.csdn.com/whuslei 目前网络上关于对象序列化的文章不少,但是我发现详细叙述用法和原理的文章太少。 本人把自己经过经验总结和实际运用中的体会写成的学习笔记贡献给大家。 序列化的过程就是对象写入字节流和从字节流中读取对象。 将对象状态转换成字节流之后,可以用java.io包中的各种字节流类将其保存到文件中,管道到另一线程中或通过网络连接将对象数据发送到另一主机。原创 2011-04-29 20:16:00 · 3573 阅读 · 0 评论 -
eclipse中利用jetty进行Maven web项目开发调试
配置好jetty后,开发起来就爽多了。具体配置如下: 一、配置pom.xml文件,添加如下内容: org.mortbay.jetty maven-jetty-plugin原创 2011-07-30 21:24:07 · 27024 阅读 · 3 评论 -
抽象类和接口的最佳实践
先谈谈我脑子里所了解的知识,然后补充下刚才学到的。 参考之前的一篇http://blog.csdn.net/whuslei/article/details/6366185 接口(interface)1、接口中的所有方法都是 public abstrac原创 2011-08-02 20:37:28 · 1454 阅读 · 0 评论 -
探究Java垃圾回收机制
java垃圾回收机制使得java程序员不用手动去释放通过new关键字在heap上申请的空间。但是,任何事情都是有利有弊。它也许并不像我们想象中那样强大!让我们来一探究竟。本blog链接:blog.csdn.com/whuslei。 阅读本文前,请务必参看《think in原创 2011-05-03 23:12:00 · 2419 阅读 · 0 评论 -
一些常常被问到的问题小结
1、进程切换的过程是怎样的?什么是用户态,核心态?什么时候发生进程切换?2、如何编写一个线程安全的HashMap?3、java集合中ArrayList,LinkList,Vector的区别?4、c语言中的malloc和c++中的new有何区别?5、c语言中的静态库和动态链接库的区别?6、网络中的大端和小端的区别?7、Hash算法中解决"冲突"的办法有哪些种?8、原创 2011-06-16 20:51:00 · 1816 阅读 · 0 评论 -
java中的final、抽象类、接口小结
一、final关键字可以用来修饰类、方法、变量。各有不同。A、修饰类(class)。 1、该类不能被继承。 2、类中的方法不会被覆盖,因此默认都是final的。 3、用途:设计类时,如果该类不需要有子类,不必要被扩展,类的实现细节不原创 2011-04-27 10:54:00 · 4045 阅读 · 0 评论 -
JAVA中除数为0的问题
java中,如果int/int中除数为0,会抛出异常java.lang.ArithmeticException: / by zero,这个不容易理解!但如果是浮点型,就不会报异常了! 总结如下: 0.0/0.0 得到的结果是NaN(not an number的简称,即"不是数字")。通过Double.isNaN(double x)来判断。 正数/0.0 得到的结原创 2011-10-30 09:58:02 · 16295 阅读 · 0 评论 -
获得执行jar的运行路径
题记上一篇使用了一个叫fat-jar的插件来制作jar包,确实很方便。但我们更容易遇到另一个更为棘手的问题!如何得到jar包的运行路径?如果没有这个路径,我们读取文件可能找不到路径,写文件可能写到别的目录里了!而且,调试代码时我们需要eclipse里的命令行里运行,而不需要打包;最终发布时我们需要打成jar包!所以,这部分代码应该要支持以上两种形式。一般执行jar包有下面两种方式:原创 2012-03-09 20:31:44 · 39080 阅读 · 0 评论 -
在命令行下如何调用指定jar包?
很简单,进入到工程的bin目录中,输入 java -Xmx3000m -classpath .:/lib/je-4.1.10.jar a.b.c.main &原创 2011-06-16 17:44:00 · 1274 阅读 · 0 评论 -
浮躁
今天已经是4月22号了,从决心好好学习,坚持继续写blog到现在快两个月了。重新看看自己写的东西,心里还是很感慨的。虽然我写的文章还很幼稚,和好的文章相比还相差甚远,但是我相信敢于走出第一步才有可能不断地进步! 很久没有将自己的想法写出来了。可能是觉得没什么值得写的东西吧。无意间逛到一篇blog,作者是陈皓,地址是http://blog.csdn.net/haoel,感慨万千。 结合自己的情况谈谈对文中的看法。 1、原文是《再谈“我是怎么招聘程序员的”》。链接如原创 2011-04-22 20:39:00 · 842 阅读 · 0 评论 -
求两个集合交集的方法比较
1、算法示例如下:(效率高的) 1 public static int getUnion(int []a , int [] b) 2 { 3 int i=0,j=0,count=0; 4原创 2010-08-16 11:29:00 · 5804 阅读 · 0 评论 -
java中写入文件时换行符是用"/r/n"还是"/n"?
java中写入文件时换行符是用"/r/n"还是"/n"? /r 叫回车 Carriage Return /n 叫新行 New Line 但是都会造成换行 使用 System.getProperty("line.separator")来获取当前OS的换行符,可以在调试的情况下看到! 各系统应当是: /r Mac /n Unix/Linux /r/n Windows 这种输出的主要表现在用notepad打开时的显示。使用其他编辑器则没有明显变化!!原创 2011-03-14 14:03:00 · 11486 阅读 · 0 评论 -
局部内部类引用外部类中的局部变量必须是final属性的!
如例中所示,声明了一个局部内部类TimerPrint,这个类中的方法引用了一个局部变量testTxt,必须声明为final!!why? 逻辑上:因为该内部类出现在一个方法的内部,但实际编译时,内部类编译为Outer$1TimerPrint.class,这说明,外部类的这个方法和内部类是处于同一级别的。换句话说是两者的生命周期不一样!start被调用后,非final变量也会随之消失,就会出现内部类引用非法!但是作用域范围相关(该内部类的作用域就在该方法体内)。 实际做法:java编译器的行为是这样的原创 2011-03-15 16:12:00 · 5724 阅读 · 0 评论 -
匿名内部类的实现形式
第一种形式: 第二种形式: 返回的是该类的对象。原创 2011-03-16 09:58:00 · 964 阅读 · 0 评论 -
java字符串处理常见问题(不断补充)
一、字符串相关函数的操作 1、indexOf(String str, int fromIndex)//返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。 说明:字符串的索引从0开始! 2、substring(int beginIndex, int endIndex)//返回一个新字符串,它是此字符串的一个子字符串。 说明:返回的字符串是beginIndex~endIndex-1,因此得到的字符串长度为endIndex-beginIndex 例如:"hamburger"原创 2011-03-19 16:40:00 · 1926 阅读 · 0 评论 -
java的异常捕获中可能出现的小问题
1: public int exTest(){ 2: int x = 0; 3: try{ 4: 5: String y = null; 6: y.codePointAt(1); 7: x=1; 8: System.out.println("hello");原创 2011-03-21 17:24:00 · 1239 阅读 · 0 评论 -
计算机中各种数制间的转化(10进制与2、8、16进制之间的快速转化)
最近看数据结构的书,回顾下以前学的东西。无意间翻到了stack这章,我就在想,为什么要使用栈这种数据结构?它的底层不也就是数组或者链表来实现的吗?于是,希望能从书中找到答案(其实我之前也猜想,无非是和pattern类似,封装了一层,便于使用嘛)。书里讲了几个例子来说明stack的用法。其中一个就是"数制转化",一个古老的话题,学计算机的都会知道。结尾处作者如是说,摘抄如下:栈的引入简化了程序设计的问题,划分了不同的关注层次,使思考范围缩小了,而用数组不仅掩盖了问题的本质,还要分散精力去考虑数组下原创 2011-03-23 23:21:00 · 23566 阅读 · 0 评论 -
时间复杂度(分析程序效率)
关于时间复杂度,参看http://blog.csdn.net/zhuchzhi/archive/2007/03/14/1529514.aspx 总结如下: 1、如果函数中没有n,也就是语句执行的次数是恒定的,则可知时间复杂度为O(1) 2、如果函数中有n,但是不知道执行的次数,可以这样做:假设执行次数为m,经过m次执行后条件参数变为x1且常数增长,则O(x)比O(y)增长得快些,即高效性:O(x)原创 2011-03-28 17:42:00 · 3734 阅读 · 2 评论 -
JAVA中String类深度探究
学过java的人应该对String类再熟悉不过了,但是真正了解它的人又有多少? 先看几个读程序题: 1、 String str1 = "ab"; String str2 = "a" + "b"; String str3 = "a"; str3 += "b"; System.out.println((str1 == str2) +原创 2011-04-08 23:57:00 · 1482 阅读 · 2 评论 -
java中的hashCode()和equals()的关系
[更新于2013-05-18]Q1:为什么要重写equals方法?在java中new出来的对象obj1,obj2即使是内容完全相同,但在内存中的地址不一样,也就是在heap上分配了两份内存。有时候我们必须比较对象是否已存在,比如HashSet里的值是不能重复的。那怎么判断对象是否一样呢?调用equals方法。比如 obj1!=null && !obj1.eqauls(obj2)。原创 2011-08-14 20:17:10 · 2789 阅读 · 0 评论