随笔 - 290  文章 - 10  评论 - 85  2

本文针对。net程序员,没有java开发经验,所碰到的问题。

 

1。下载Eclipse,绿色软件免安装。不过你还是要下载JDK,并设置好相关路径

2。Eclipse快捷键:按 Ctrl+E 将显示允许在编辑器窗口之间轻松切换的弹出式菜单;Ctrl+M 最大化/恢复 代码编辑窗口,F3 转到方法的定义,F4 显示类的层次(对多个子类的很有用)

3。项目(Project)与工作空间(workspace).Eclipse 将通过项目和工作空间的概念组织源代码。工作空间 是项目的集合。项目 是源代码文件的集合。Eclipse 中项目的定义不同于其他 IDE 中的项目。将项目视为独立模块而将工作空间视为项目, 您拥有包含多个模块(Eclipse 术语中的项目)的一个项目(Eclipse 术语中的工作空间)(workspace=solution in vs.net???Eclipse 术语中的项目可以是独立的应用程序或模块,这取决于选择如何组织工作空间

4.Java™ Development Tools(JDT)是Eclipse自带的插件,但eclipse也能开发除java的其他语言。

5。语言类型不同: 

在编译Java源文件时,文件的名称与类名是必须相同的,如果类的名称与文件名称的字母大小写不同,会导致编译错误. 类名的首字母要大写,方法名第一个字母小写,这是Java编码规范中的建议。另外,Java区分大小写,所以无论是类名、方法名,还是变量名称都要注意统一大小写格式。

C#和Java byte类型的区别上:在C#里 byte类型是无符号的(0~255),而Java里是有符号的(-128~127)

 /** 

 * from byte to int, because of byte in java is signed 
 */  
private static int toInt(int b) {  
    return b >= 0 ? (int)b : (int)(b + 256);  
}  

 

java中定义和访问均要用get和set方法 对象数组 public Story this [int index] { 

C#有unit,即无符号整数 ,java没有

Java中,switch语句只能处理整数。但C#中的switch语句不同,它还能够处理字符变量 

C#中的is操作符与Java中的instanceof操作符一样,两者都可以用来测试某个对象的实例是否属于特定的类型 

java 5.0之后也有可变参数了。一个方法中,只能有一个var-arg参数  var-arg参数只能出现在参数的最后 

合法: void doTest(int... x){} 

void doTest(String name,int... x){}

非法: void doTest(String... a,int... b){}

void doTest(int... x,String name){}

 

java 的类/接口的方法 可以用throws定义其可能发生的异常, 例如 public class A throws IOException 

表明该方法不处理该异常,而是抛给上级调用方。调用方有2种调用方法: 1是在代码里用try catch处理这个异常,2是调用方的方法也声明throws IOException

[这种异常的处理方法已经证明是很恶心的,C#不用,C++试用了一下也放弃了]

java的import类似于C的include,而不是像C#的命名空间,这点也恶心。

java的package(其实就是文件夹)和classpath很乱,一不小心很容易classNotFoundException

 

java 可以从启动时传一些参数进来,比如 java -DServerIP=172.16.1.1, 在java代码里就可以用System.getProperty("ServerIP","{默认值}");

如果不指定user.dir,则默认是程序的启动目录

 

java的序列化必须实现Serializable接口,并重写Serialize()方法。 而C#用[Serializable]attribute就可以了

 

replaceAll的问题(linux中正常 windows中报错).

filepath.replaceAll( "\\. ",File.separator), 因为unix的文件分割符是/,windows则是\. 而jdk的replaceAll方法是用正则分析,\ 有特别含义。 所以要写成filepath.replaceAll( "\\. ",“\\”+ File.separator)

Eclipse 多使用svn作版本控制,svn和微软的vss有些不同,vss的基本操作有(get latest/check out/check in),而svn的基本操作是(check out/update/commit) svn的checkout相当于vss的get latest

 

log4j的配置文件log4j.properties要放在src目录下,log文件默认路径是workspace根目录。 

 

java 的字符串比较得用 strA.equals(strB),而不能用strA==strB 

java程序的启动入口是main(String[] args), C#的入口是Main(String[] args). 区分大小写。

java 定义数组 String[] abc = new String[3],  System.out.println(abc[1]) ----- 输出null

C# 定义数组 String[] abc = new String[3],  Console.WriteLine(abc[1]) ----- 输出""

 

Java中实现多线程有两种途径:继承Thread类或者实现Runnable接口. Runnable接口非常简单,就定义了一个方法run()

tomcat 服务器端口定义在conf/server.xml, minetype和默认文档 定义在conf/web.xml

网站webapps/ROOT/WEB-INF/web.xml 则定义了MVC的Listener, Filter和它的parmeter. (Filter通常用来权限判断,类似于.net 的httpHandler)

webapps/ROOT/WEB-INF/appliationContext.xml 可以定义数据库连接和其他一些自定义的参数,类似appSetting

webapps/ROOT/WEB-INF/dispatcher-servlet.xml 可以定义ViewResolver,view对应的jsp文件

posted on 2012-03-08 15:08  Gu  阅读(...)  评论(...编辑  收藏