以前我一直以为File#renameTo(File)方法与OS下面的 move/mv 命令是相同的,可以达到改名、移动文件的目的。不过后来经常发现问题:File#renameTo(File)方法会返回失败(false),文件没有移动,又查不出原因,再后来干脆弃用该方法,自己实现一个copy方法,问题倒是再也没有出现过。
昨天老板同学又遇到这个问题,File#renameTo(File)方法在windows下面工作的好好的,在linux下偶尔又失灵了。回到家我扫了一遍JDK中File#renameTo(File)方法的源代码,发现它调用的是一个本地的方法(native method),无法再跟踪下去。网上有人说该方法在window下是正常的,在linux下面是不正常的。这个很难说通,SUN不可能搞出这种平台不一致的代码出来啊。
后面在SUN的官方论坛上看到有人提到这个问题“works on windows, don't work on linux”,后面有人回复说是“file systems”不一样。究竟怎么不一样呢?还是没有想出来...
后面在一个论坛里面发现了某人关于这个问题的阐述:
引用
In the Unix'esque O/S's you cannot renameTo() across file systems. This behavior is different than the Unix "mv" command. When crossing file systems mv does a copy a ......
接口和抽象类是java中最重要的2个特征,在本书中写到了具体的应用,看了使我恍然大悟。
在接口中,所有的方法都是public 当然在接口中也可以有public static final属性
为什么使用接口:
1接口是对可插入性的保证
对继承的子类有影响,对超类没有影响,减少耦合度
2接口(以及抽象类)用来声明一个新的类型
3 java接口一般用来作为一个类型的等级结构起点
Java接口常见的用法
1单接口方法,比如Runnable
2标识接口,比如Serializable,不建议使用
3常理接口,不建议使用
抽象类仅提供一个类型的部分实现。抽象类可以有实例变量,以及一个或多个构造子。抽象类可以同时有抽象方法和具体方法。
抽象类的用途:抽象类不可以实例化,因此设计出一个抽象类一定是被继承的,从而说明了具体类不是用来继承的。
抽象类应该拥有尽可能多的共同代码
抽象类应该具有尽可能少的数据
值得说明的一点是在程序设计过程中,不要从工具类来继承。
......
我现在是大二的学生,学的是电子商务专业,考虑到现在就业压力大,所以就自己自学了Java,以后想往Java程序员方向发展,这也给自己多条出路,现在Java SE 快学完了,但是不幸的是我陷入了深深的苦恼中,那就是学了后面,总忘记前面,我现在学到了GUI编程,马上就要动手开始项目了,就是聊天, 坦克大战的项目,一写项目就感觉什么都想不起来, 有时一个简单的问题都要想好长时间,这真的令我很通苦,很郁闷,感觉就像白学了一样, 这突然让我失去了信心,说实在呢,我学的很认真,边看视频边看书,将视频中代码都敲一遍,一章学完之后再将程序敲一遍,可是到了最后写项目却什么后想不起来,我最近一直在反思,这种是属于正常现象,学完之后是通过写项目将以前学的知识都串联起来呢?还是自己学的真的存在问题? 反思中.... 郁闷中...... 努力中..... ......
总的格式是:
%[argument_index$][flags][width][.precision]conversion
例如:
%2$-5.2s
//2$:取第二个参数
//-: 指定为左对齐,默认右对齐
//5:最大输出宽度为20,不够会补空格,实际若超过则全部输出
//.2:在此表示输出参数2的最大字符数量,如果是浮点数字,则表示小数部分显示的位数
//s :表示输入参数是字符串
refs:
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html ......
import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.SocketChannel;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.regex.Pattern;
public class Ping {
// The default daytime port
static int DAYTIME_PORT = 13;
// The port we'll actually use
static int port = DAYTIME_PORT;
private String host;
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public void setPort(int port){
this.port = port;
}
// ......
Basic concepts in OOP
Encapsulation:隐藏实现过程,对外提供公开一致的接口、使软件易于更新与维护。
Polymorphism:一个事物自动获得另一事物的状态行为的机制。
Inheritance:一个类自动获得另一个类的属性或者方法的过程。
1.类的结构
类名
属性名
静态属性
实例属性:必须依赖于对象/实例
方法
静态方法
实例方法
构造器
缺省构造器
带参的构造器
静态代码块
......