差异点 | C# | Java |
---|---|---|
入口函数 | public static void Main(string[] args){} | public static void main(String[] args){} |
控制台输出(不换行) | System.Console.Write(“xxx”); | System.out.print(“xxx”); |
控制台输出(换行) | System.Console.WriteLine(“xxx”); | System.out.println(“xxx”); |
控制台输入(整行) | System.Console.ReadLine(); | new Scanner(System.in).nextLine(); |
System.console().readLine(); | ||
文档注释 | /// /// 注释内容 /// |
/* 注释内容 */ |
无符号类型 | 存在,例如:byte、ushort、uint、ulong | 不存在 |
常量 | 修饰符:const | 修饰符:static final |
不能在接口(interface)中定义常量 | 可以在接口(interface)中定义常量 | |
接口中不允许有方法实现 | Java SE8 之后,接口中可以定义默认方法和静态方法 | |
字符串比较函数 | “aaa”.Equals(“bbb”); | “aaa”.equals(“bbb”); |
字符串比较函数 (忽略大小写) |
“aaa”.Equals(“AaA”, StringComparison.OrdinalIgnoreCase); |
“aaa”.equalsIgnoreCase(“AaA”); |
StopWatch | 命名空间: using System.Diagnostics; |
Maven包地址: org.apache.commons:commons-lang3 |
Demo: Stopwatch sw = new Stopwatch(); sw.Start(); //to do something … sw.Stop(); long ms = sw.ElapsedMilliseconds; |
Demo: StopWatch sw = new StopWatch(); sw.start(); //to do something … sw.stop(); long ms = sw.getTime();//毫秒 long ns = sw.getNanoTime();//微秒 |
|
字符串格式化 | string.Format(“My name is {0}.”, “Lee”); | String.format(“My name is %s.”, “Lee”); |
String.format(“My name is %1$s.”, “Lee”); | ||
文件读取 | Scanner in = new Scanner(new File(“test.txt”)); | |
文件写入 | PrintWriter out = new PrintWriter(“test.txt”); | |
运算符重载 | 支持,使用operator关键字定义静态成员函数。 | 不支持 |
Foreach循环 | 语法: foreach (variable in collection) statement |
语法: for (variable : collection) statement |
Demo: int[] arr = new int[]{0, 1, 2, 3, 4}; foreach (int item in arr){ System.Console.WriteLine(item); } |
Demo: int[] arr = new int[]{0, 1, 2, 3, 4}; for (int item : arr) { System.out.println(item); } |
|
字符串修改 | System.Text.StringBuilder | 速度快:java.lang.StringBuilder |
线程安全:java.lang.StringBuffer | ||
类的继承 | public class Animal { } public class Dog : Animal { } |
public class Animal{} public class Dog extends Animal{} |
接口的实现 | public interface IAnimal { } public class Dog : IAnimal { } |
public interface IAnimal {} public class Dog implements IAnimal{} |
IS-A关系 | Dog dog = new Dog(); bool result = dog is Dog; |
Dog dog = new Dog(); boolean result = dog instanceof Dog; |
继承关系调用父类成员 | 关键字:base | 关键字:super |
public class Animal { public string Name { get; set; } } public class Dog : Animal { public Dog() : base() { } public string FatherName() { return base.Name; } } |
public class Animal { public String Name; } public class Dog extends Animal { public Dog() { super(); } public String FatherName() { return super.Name; } } |
|
文件命名要求 | 无要求 | 一个文件只能有一个public类; 文件名必须与public类名一致; 当没有public类时,文件名无要求? |
类的集合 | 命名空间: namespace 库名 { } |
包的定义: package [包名]; |
类库的导入: using [库的命名空间]; |
包的导入: import [包名]; |
|
switch语句 | break:必须 | break:可选 备注:default 分支的 break 语句可选 |
枚举 | 值类型,默认值为0对应的枚举项 注:可以使用扩展方法对枚举进行扩展 |
引用类型,默认值为null 注:可以直接在枚举类型中添加域或方法 |
Day d = Enum.Parse |
Day d = Enum.valueOf(Day.class, “SUN”); | |
支持设置每个枚举项的值(整数) | 默认不支持设置枚举项的值, 但是可以通过扩展构造函数来实现 |
|
线程锁 | 关键字:lock | 关键字:synchronized |
可变长参数 | 修饰符:params | 修饰符:… |
void TestMethod(params string[] args){} | void testMethod(String… args){} | |
日期类型 | DateTime(Structure) | LocalDate(Class) |
当前时间 | DateTime.Now; | LocalDate.now(); |
创建时间 | DateTime dob = new DateTime(1990,2,3); | LocalDate dob = LocalDate.of(1990,2,3); |
获取年月日 | int year = dob.Year; int month = dob.Month; int day = dob.Day; |
int year = dob.getYear(); int month = dob.getMonthValue(); int day = dob.getDayOfMonth(); |
加一天 | DateTime newDay = dob.AddDays(1); | LocalDate newDay = dob.plusDays(1); |
更多信息 | https://msdn.microsoft.com/en-us/library/system.datetime.aspx | https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html |
反射 | TestClass test = new TestClass(); Type t = test.GetType(); |
TestClass test = new TestClass(); Class c = test.getClass(); |
catch语句 | catch语句后面可以添加when条件过滤器,如: catch (ArgumentException e) when (e.ParamName == “name”) {} |
可用“|”符号,合并处理多个类型的异常,如: catch(FirstException | SecondException e) {} |
释放语句 | 语法:using(statement) 前提:实现了IDisposable接口 |
语法:try(statement) 前提:实现了AutoCloseable接口 |
More:待持续更新