Java(C#)基础差异-语法

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android防止左向右滑出程序,Android——ViewPager禁止左右滑动的实现

目录1 背景用ViewPagerBottomNavigationView多个Fragment快速搭建的页面切换架构&#xff0c;一个有四个页面&#xff0c;因为测试需要&#xff0c;需要屏蔽掉中间的两个&#xff0c;做法是&#xff1a;设置不可点击选择&#xff1a;xml布局文件中&#xff0c;BottomNavigation…

Yii2 的快速配置 api 服务 yii2-fast-api

yii2-fast-api yii2-fast-api是一个Yii2框架的扩展&#xff0c;用于配置完善Yii2&#xff0c;以实现api的快速开发。 此扩展默认的场景是APP的后端接口开发&#xff0c;因此偏向于实用主义&#xff0c;并未完全采用restfull的标准&#xff0c;方便前端开发处理接口数据以及各种…

.NET6打包部署到Windows Service

1.安装Nuget包安装以下nuget包支持windows service<PackageReference Include"Microsoft.AspNetCore.Hosting.WindowsServices" Version"6.0.10" /> <PackageReference Include"Microsoft.Extensions.Hosting.WindowsServices" Version…

android emoji unicode编码表,unicode编码

unicode编码app是一款字符查找客户端应用&#xff0c;通过unicode编码可以方便寻找特定字符&#xff0c;查看字符表情详细的描述&#xff0c;并且利用unicode编码就可以快捷复制任意unicode编码&#xff0c;提高开发效率&#xff0c;非常的实用&#xff0c;快来下载unicode编码…

物联网商机诱人 芯片商大力搭建生态系统

应用需求变化多端的物联网&#xff0c;虽具备庞大的发展潜力及应用商机&#xff0c;但由于市场过于分散&#xff0c;几乎没有杀手应用可言&#xff0c;因此对有意耕耘相关市场的半导体业者而言&#xff0c;如何借力使力&#xff0c;寻找盟友共同搭建出的生态系统&#xff0c;遂…

ASP.NET Core 6框架揭秘实例演示[30]:利用路由开发REST API

借助路由系统提供的请求URL模式与对应终结点之间的映射关系&#xff0c;我们可以将具有相同URL模式的请求分发给与之匹配的终结点进行处理。ASP.NET的路由是通过EndpointRoutingMiddleware和EndpointMiddleware这两个中间件协作完成的&#xff0c;它们在ASP.NET平台上具有举足轻…

数据库(二)tab补全功能,使数据库支持简体中文,日志管理,备份脚本

一、如何在MySQL数据库中使用tab键补全功能 1.修改主配置文件/etc/my.cnf vim /etc/my.cnf [mysql] #no-auto-rehash auto-rehash 2.重启MySQL服务&#xff0c;登录测试 /etc/init.d/mysqld restart mysql -uroot -p (可在数据库中使用tab键&#xff09; 3.&#xff1b;临时支持…

企业数字化转型服务+方案

前言&#xff1a;本文的阅读对象是公司老板、或企业高层管理者&#xff01;1【背景介绍】数字经济与实体经济深度融合是助推我国经济高质量发展的重要环节。为加快数字中国建设&#xff0c;中央和地方政府都出台各类政策扶植数字化转型相关项目。马云在接受采访时也提到&#x…

.NET性能优化-使用ValueStringBuilder拼接字符串

前言这一次要和大家分享的一个Tips是在字符串拼接场景使用的&#xff0c;我们经常会遇到有很多短小的字符串需要拼接的场景&#xff0c;在这种场景下及其的不推荐使用String.Concat也就是使用运算符。 目前来说官方最推荐的方案就是使用StringBuilder来构建这些字符串&#xff…

STOLUCK:经济下行的当下 ,STO或将帮助中小企业度过寒冬

2018年被称为创业阵亡率特别高的一年&#xff0c;相关报道称有近20%的创业团队面临“后续融资跟不上&#xff0c;可能死在春天来临之前”的窘境。经济不景气的当下&#xff0c;上下游资金不足&#xff0c;信贷机构没钱&#xff0c;风投业捉襟见肘。实际今年3月份开始&#xff0…

浅析C# Dictionary实现原理

一、前言二、理论知识1、Hash 算法2、Hash 桶算法3、解决冲突算法三、Dictionary 实现1. Entry 结构体2. 其它关键私有变量3. Dictionary - Add 操作4. Dictionary - Find 操作5. Dictionary - Remove 操作6. Dictionary - Resize 操作(扩容)7. Dictionary - 再谈 Add 操作8. C…

猫晚流量再创记录,阿里云直播方案护航优酷2500万用户体验

2019独角兽企业重金招聘Python工程师标准>>> 对“剁手党而言&#xff0c;天猫双11早已经超越了简单的“买买买”&#xff0c;更是一场边看边玩的狂欢盛宴。今年的天猫双11狂欢夜晚会&#xff08;简称“猫晚”&#xff09;在上海举办&#xff0c;这台兼具年轻潮流与国…

python实现二叉树和它的七种遍历

介绍&#xff1a; 树是数据结构中非常重要的一种&#xff0c;主要的用途是用来提高查找效率&#xff0c;对于要重复查找的情况效果更佳&#xff0c;如二叉排序树、FP-树。另外可以用来提高编码效率&#xff0c;如哈弗曼树。 代码&#xff1a; 用python实现树的构造和几种遍历算…

.NET性能系列文章二:Newtonsoft.Json vs System.Text.Json

微软终于追上了&#xff1f;图片来自 Glenn Carstens-Peters[1]Unsplash[2]欢迎来到.NET 性能系列的另一章。这个系列的特点是对.NET 世界中许多不同的主题进行研究、基准和比较。正如标题所说的那样&#xff0c;重点在于使用最新的.NET7 的性能。你将看到哪种方法是实现特定主…

android gpu平板 推荐,性能强的不像话,最强安卓平板华为平板M6上手

原标题&#xff1a;性能强的不像话&#xff0c;最强安卓平板华为平板M6上手你为什么买平板电脑&#xff1f;当这一问题问出以后&#xff0c;许多朋友的表情都很微妙&#xff0c;随后大概率的回答则相当统一&#xff1a;"我买平板干嘛&#xff1f;"。其实得到这样一个…

企业应用“数据优先”革命的下一个主战场:安全与运营

根据IDC发布的2015年全球CIO日程预测&#xff0c;80%的CIO将提供一个实现创新和改善业务决策的新体系架构。 大数据时代&#xff0c;企业软件市场正在经历一次大迁移&#xff0c;数以十亿计的企业IT支出预算将投向“数据优先”应用&#xff0c;而不是长久以来以业务流程和工作流…

给Web开发人员的以太坊入坑指南

以太坊现在各种学习资料数不胜数&#xff0c;但由于以太坊正处于飞速发展阶段&#xff0c;有些学习资料很快就过时了。所以想找到有价值的资料无异于大海捞针。我费了很大功夫&#xff0c;才建立起对以太坊的整体认识&#xff0c;搞清楚它的工作机制。我相信很多跃跃欲试的开发…

一款简单的缩放拖拽图片控件

本文介绍一个针对 .NET 桌面应用程序的独立图片缩放拖拽显示控件 SQPhoto[1]。SQPhoto 是一个 Windows 桌面应用的组件&#xff0c;支持 .NET6 和 .NET Framework 4.6 。基于 PictureBox 的图片展示工具&#xff0c;增加了拖动和缩放功能&#xff0c;便于在某些场景下的图片展…

HTML怎么让div全透明,设置div为透明 怎样才让div里面的div不透明?

#a{ background:#FFCC33; filter:alpha(opacity:0); width: 300px; heig#a{background:#FFCC33; filter:alpha(opacity50); /*支持 IE 浏览器*/-moz-opacity:0.50; /*支持 FireFox 浏览器*/opacity:0.50; /*支持 Chrome, Opera, Safari 等浏览器*/width: 300px;height:300px;}还…

html overflow 样式,css样式之overflow-x属性样式

overflow-x是overflow子花样&#xff0c;平日也很少用的。overflow-x设置匿伏溢出过宽模式(比如过宽图片)、设置对象底部转折条等重要。overflow-x语法与根本懂得1、overflow-x可设置值overflow-x : visible | auto | hidden| scroll值与解释引见&#xff1a;visible :  不剪切…