1、long类型

Java

long类型,若赋值大于int型的最大值,或小于int型的最小值,则需要在数字后加L或者l,表示该数值为长整数,如long num=2147483650L。

举例如下:

public static void main(String[] args) {/** 对于long类型,若赋值大于int型的最大值,或小于int型的最小值, 则需要在数字后加L或者l,表示该数值为长整数*/// 1、定义普通long类型数据long longnum1 = 123;// 2、此句会报错,因为int型的最大值为2147483647//long longnum2 = 2147483650;// 3、正确定义为long longnum3=2147483650L;System.out.println(longnum3);
}

运行结果如下,第二句会报错为:

C#

举例如下:

public static void TestMethod()
{long longnum3 = 2147483650;Console.WriteLine(longnum3);
}

C#下可以直接定义long类型变量并输出。

2、foreach语句差异

Java

举例如下:

public static void main(String[] args) {/** foreach语句差异*/int arr[] = { 1, 2, 3, 4, 5 };for (int x : arr) {System.out.println(x);}
}

C#

举例如下:

public static void TestMethod()
{List<int> tempList = new List<int>() { 1, 2, 3, 4, 5 };foreach (var item in tempList){Console.WriteLine(item);}
}

3、定义不定长参数

Java

格式为:参数数据类型...参数名称 例如:int...a

举例如下:

public static void main(String[] args) {// 定义不定长参数: 参数数据类型...参数名称 例如:int...aSystem.out.println("求和结果为" + add(1, 2, 3, 4, 5));
}public static int add(int... a) {int s = 0;for (int i = 0; i < a.length; i++) {s += a[i];}return s;
}

C#

举例如下:

public static void TestMethod(params int[] paras)
{int sumResult = 0;for (int i = 0; i < paras.Length; i++){sumResult += paras[i];}Console.WriteLine(sumResult);
}

4、常量

Java

定义为final的数据无论是常量、对象引用还是数组,都不能被改变。

一个被定义为final的对象引用只能指向唯一一个对象,不可以将它再指向其他对象,但是一个对象本身的值却是可以改变的。

那么为了使一个常量真正做到不可修改,可以将常量声明为static final。

在Java中定义全局常量,通常使用public static final 修饰,这样的常量只能在定义时被赋值。

举例如下:

private static Random rand = new Random();// 实例化一个Random类对象
// 随机产生0~10之间的随机数赋予定义为final的a1
private final int a1 = rand.nextInt(10);
// 随机产生0~10之间的随机数赋予定义为static final的a2
private static final int a2 = rand.nextInt(10);public static void main(String[] args) {Demo4 testObj1 = new Demo4(); // 实例化一个对象// 调用定义为final的a1System.out.println("调用a1的值为:" + testObj1.a1);// 调用定义为static final的a2System.out.println("调用a2的值为:" + testObj1.a2);// 实例化另外一个对象Demo4 testObj2 = new Demo4();System.out.println("调用a1的值为:" + testObj2.a1);System.out.println("调用a2的值为:" + testObj2.a2);
}

运行结果如下:

可以看出,定义为final的常量不是恒定不变的,将随机数赋予定义为final的常量,可以做到每次运行程序时改变a1的值。但是a2与a1不同,由于它被声明为static final形式,所以在内存中为a2开辟了一个恒定不变的区域,当再次实例化一个Demo4对象时,仍然指向a2这块内存区域,所以a2的值保持不变。a2是在装载时被初始化,而不是每次创建新对象时都被初始化;而a1会在重新实例化对象时被更改。

C#

举例如下:

public const int CONST_TEST_ONE = 1;public static void TestMethod()
{Console.WriteLine(CONST_TEST_ONE);
}

5、this关键字

共性:

(1)this关键字代表本类对象的引用,可以调用类的成员变量和成员方法;

(2)this可以作为方法的返回值;

Java

举例如下:

import static java.lang.System.out;public class thisDemo {private String studentName;public String getStduentName() {return this.studentName;}public thisDemo(String name) {this.studentName = name;}public thisDemo GetObject() {return this;}public static void main(String[] args) {thisDemo thisObj = new thisDemo("terry");thisDemo currentObj= thisObj.GetObject();out.println(currentObj.studentName);}
}

运行结果如下:

C#

举例如下:

public class ThisDemo
{public string StduentName { get; }public ThisDemo(string name){StduentName = name;}public ThisDemo GetObject(){return this;}
}

static void Main(string[] args)
{SyntaxDesc.ThisDemo thisObj = new SyntaxDesc.ThisDemo("terry");var currentObj= thisObj.GetObject();Console.WriteLine(currentObj.StduentName);Console.ReadKey();
}

运行结果如下:

从两例可以看出,我实例化了一个对象,并传递了学生姓名(StudentName)值,随后通过调用GetObject获得this对象。根据打印的结果可以看出,this引用的就是本类当前的对象。

差异:

(1)Java中,this可以调用类中的构造方法。但使用这种方式需要注意的是只可以在构造方法的第一句使用this调用另外的构造方法。

Java

举例如下:

public class ThisDemoTwo {public ThisDemoTwo() {this("terry_test");System.out.println("无参构造方法");}// 定义有参构造方法public ThisDemoTwo(String name) {System.out.println("有参构造方法" + name);}public static void main(String[] args) {ThisDemoTwo obj=new ThisDemoTwo();}}

运行结果如下:

C#

不可以

6、导入API类库

(1)导入包(导入命名空间)

Java

语法如下:

import关键字的语法如下:

import com.terrydemo.*; //指定com.terrydemo包中的所有类在程序中都可以使用  

import com.terrydemo.Math; //指定com.terrydemo包中的Math类在程序中可以使用

在使用import关键字时,可以指定类的完整描述,如果为了使用包中更多的类,可以在使用import关键字指定时在包指定后加上*,这表示可以在程序中使用包中的所有类。

注意:当使用import指定了一个包中的所有类时,并不会指定这个包的子包中的类,如果用到这个包中的子类,需要再次对子包作单独引用。

C#

语法如下:

using System.Text;

using System.Threading.Tasks;

(2)导入静态成员

Java

语法如下:

使用import导入静态成员的语法如下:

import static 静态成员

举例如下:

package syntaxdesc;
import static java.lang.Math.max; //导入静态成员方法
import static java.lang.System.out;//导入静态成员变量public class ImportTest {public static void main(String[] args) {//在主方法中可以直接使用这些静态成员out.println("1和4的较大值为:"+max(1,4));}
}

C#

语法如下:

在C#6.0之前是无法实现的,在C#6.0中新增了相关语法,如下:

using  static  静态类命名空间

举例如下:

using static System.Math;namespace JavaVSNet.SyntaxDesc
{public class UsingTest{public int X { get; } = 2;public int Y { get; set; } = 1;public int GetMax{get { return Max(X, Y); }}}
}

Code

JavaCode-->JavaVSNet/syntaxdesc

C#Code-->JavaVSNet/SyntaxDesc

from: https://www.cnblogs.com/SimplePerson/p/6395554.html

Java(C#)基础差异-语法相关推荐

  1. Java 零基础教程,看完就会,建议收藏

    如果你不懂Java 并且想认真学习接触了解一下Java的语法,建议把这篇文章收藏了,多看几遍,应该可以初步掌握Java 大部分基础的语法 . 让我们出发吧!ps:本文有点长,耐心阅读 . 〇,编程环境 ...

  2. Java复习总结(二)Java SE基础知识

    Java SE面试题 目录 Java SE基础 基本语法 数据类型 关键字 面向对象 集合 集合类概述 Collection接口 进阶 线程 锁 JDK 反射 JVM GC io操作和NIO,AIO ...

  3. 动静结合?Ruby 和 Java 的基础语法比较(入门篇)

    前言 这篇文章示例代码比较多, Java 程序员可以看到一些 Ruby 相关语法和使用,Ruby 程序员可以看看 Java 的基本语法和使用方法,本文比较长,将近万字左右,预计需要十几分钟,如果有耐心 ...

  4. java的基础语法是什么_java语法基础

    java语法基础 引导语:作为一门计算机语言,Java也是有语法的,以下是百分网小编分享给大家的java语法基础,欢迎阅读! java语法基础: 1,关键字:其实就是某种语言赋予了特殊含义的单词. 保 ...

  5. java字节型的关键字_DAY06-07 Java的基础语法-注释、标识符、关键字、数据类型

    Java的基础语法 注释 注释不会被执行,是给人看的 书写注释是一个非常好的习惯. 注释类型: (1)单行注释:// 注释内容 (2)多行注释:/ * - 注释内容-. * / (3)文档注释:/* ...

  6. 大数据必学Java知识(一):Java基础入门语法和安装

    Java基础入门语法和安装 1. Java概述 1.1 Java语言背景介绍(了解) 1.2 Java语言跨平台原理(理解) 1.3 JRE和JDK(记忆) 1.4 JDK的下载和安装(应用) 2. ...

  7. Java学习基础语法

    Java 开发环境配置 Java 基础语法 Java 对象和类 Java 基本数据类型 Java 变量类型 Java 修饰符 Java 运算符 Java 循环结构 Java 分支结构 Java Num ...

  8. (Java零基础学习笔记)第二章 Java中的基本语法

    前言: 大家好! 我是BA unravel .如果你想和我一起学习JAVA,欢迎大家一起来学习这个世界上最好的语言! 学习目标: 一周掌握 Java 入门知识 学习内容: 1. 搭建 Java 开发环 ...

  9. 狂神Java面试题总结:基础及语法169道

    狂神Java面试题总结:基础及语法169道 收集整理:秦疆 联系方式QQ:24736743 微信:qinlvejiang 答案来源收集与互联网,部分内容经供参考,代码全部为手写验证通过. 1~20 1 ...

最新文章

  1. this.options[selectedIndex]的使用
  2. unittest安装教程_unittest框架与自动化测试环境的搭建
  3. python爬取小说章节信息用pygame进行数据显示_爬虫不过如此(python的Re 、Requests、BeautifulSoup 详细篇)...
  4. Rest.Ler PHP API Server解决方案
  5. 1011:甲流疫情死亡率
  6. 哈·曼丁的故事(三)
  7. ansible 并发设置_如何使用Ansible通过Prometheus设置系统监视
  8. Ubuntu免密码输入关机脚本
  9. 昆仑mcgs 通讯控制台达B2伺服采用modbus rtu方式
  10. 熊猫聚财独家揭秘-你不知道的避坑赚钱宝典
  11. 微型计算机硬件系统基本组成一般应用包括,计算机系统的基本组成,一般应包括哪些...
  12. qq大学认证如何修改随意修改认证内容
  13. Vendor NDK
  14. android获取键盘状态,Android获取屏幕方向及键盘状态的小例子
  15. java war启动慢_解决springboot war包在tomcat部署时启动慢的问题
  16. @media媒体查询
  17. Unity --- 物理引擎 ---- 刚体RigidBody 与 碰撞器 collider
  18. ubuntu10.04安装sopcast-player网…
  19. vcg函数值_简单介绍几种函数信号发生器的原理图及不同功能设计
  20. 北京尚学堂--单例模式笔记

热门文章

  1. Redis sorted set 类型操作及常用命令
  2. Android 第六课 4种基本布局之LinearLayout和Relativelayout
  3. 学习ui设计_如果您想学习UI设计,该怎么办
  4. 《JavaScript模式》读书笔记一:基本技巧
  5. cannot find -lunwind-x86_64
  6. 使用 Azure CLI 将 IaaS 资源从经典部署模型迁移到 Azure Resource Manager 部署模型
  7. Java四种线程池的使用
  8. 如何在Lua与C/C++之间实现table数据的交换
  9. TableView详解
  10. 监控主机安装需要材料