差异点 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(“SUN”); 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:待持续更新