从C# 到 Java

新入职公司,根据公司要求,需要学习Java基本知识,对接下来的AEM培训做准备。下面时学习过程中对 Java 和 C# 的差异性的一点理解,如果有什么错误,请大家及时指正:

  1. Java 修饰符中多了一个默认属性,默认属性介于 private 和 protected 之间,同一个包内的类可以访问默认模式下的变量和方法(默认模式为前面不加任何修饰符)
  2. Static 变量引用
    1. C# 中Static 变量只可通过类名加.来访问
    2. Java 中Static 变量类实例加. 也可以访问
  3. Interface
    1. C# 中的Interface 不需要用到 implements 关键子去声明实现该接口
    2. Java 中 Interface 如果需要实现接口,需要用 implements 关键字
  4. 内部类
    1. C#内部类只需要直接使用 new 来初始化
    2. Java 内部类需要使用 类实例.new 方法来初始化
  5. 数据类型转换
    1. C# 中类型之间转换一般用 Parse 方法
    2. Java 中类型转换 用 valueOf() 方法
  6. Java StringBuffer 申请内存规则
    1. Java StringBuffer 调用 ensureCapacity 方法来申请内存,申请后内存大家应满足下者中的较大数:
      1. 当前占用内存数 * 2 + 2
      2. 需要申请的内存数 (ensureCapacity方法给的参数)
  7. Java 线程同步问题
    1. Java 线程同步只需要在可能出现多线程访问的公共变量前加上synchronized 关键子即可
    2. C# 采用 lock 来限制线程同步问题
    3. synchronized 也可与C#中的关键子lock 一样使用
posted @ 2016-07-08 14:56  Gougougogogo  阅读(251)  评论(0编辑  收藏  举报