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.pswp.cn/news/281538.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281538.shtml
英文地址,請注明出處:http://en.pswp.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…

傳統家電在智能家居變革的五大優勢

而在眾多向智能家居領域轉型變革的企業中&#xff0c;看似落后的傳統家電企業&#xff0c;卻占據著一定的優勢。 產品優勢 傳統家電企業在產品上的優勢主要體現在企業擁有產品本身的設計、技術、生產、制造和營銷渠道&#xff0c;其產品不論是從外觀設計、零件制造還是零件組裝…

《Apache Kafka實戰》讀書筆記-調優Kafka集群

《Apache Kafka實戰》讀書筆記-調優Kafka集群 作者&#xff1a;尹正杰 版權聲明&#xff1a;原創作品&#xff0c;謝絕轉載&#xff01;否則將追究法律責任。 一.確定調優目標 1>.常見的非功能性要求 一.性能&#xff08;performance&#xff09;最重要的非功能性需求之一。…

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;臨時支持…

php new self()關鍵字的用法

今天開框架源碼&#xff0c;發現有用到new self()的用法 有點不懂 在網上查了一下&#xff0c;給大家說一下&#xff1a; 在類中 self的用法 和this的用法差不多 &#xff0c; php new self() 一般在類內部使用&#xff0c;作用是對自身類實例化&#xff0c;下面給個實例講解…

android listview item置頂,ListView的item置頂

ListView的item設置置頂1.activitypublic class TopListViewActivity extends Activity {private static int ON_TOP 1;private static int CANCEL_TOP 0;public static String TOP_STATES "TOP";private ListView mListView;private List sessionList;private Se…

電信運營商x86服務器定制策略

近幾年&#xff0c;伴隨云計算、大數據、移動互聯網、物聯網等新技術從概念到實踐&#xff0c;業務、用戶數據海量式爆發增長&#xff0c;作為承載這些業務發展的服務器行業也面臨巨大的機遇和挑戰。一方面&#xff0c;需求的爆發式增長大幅提升了市場空間&#xff0c;尤其是大…

企業數字化轉型服務+方案

前言&#xff1a;本文的閱讀對象是公司老板、或企業高層管理者&#xff01;1【背景介紹】數字經濟與實體經濟深度融合是助推我國經濟高質量發展的重要環節。為加快數字中國建設&#xff0c;中央和地方政府都出臺各類政策扶植數字化轉型相關項目。馬云在接受采訪時也提到&#x…

在 MongoDB 上模擬事務操作來實現支付

我們的產品叫「學海密探」&#xff0c;屬于在線教育行業&#xff0c;產品需要有支付功能&#xff0c;然而支付最蛋疼是什么&#xff1f;有人會說是支付寶和微信等支付接口的接入開發&#xff01;沒錯&#xff0c;但支付接口的開發算是比較簡單的了&#xff0c;我覺得凡是跟錢有…

Zabbix server is not running

問題描述 Dashbord中提示Zabbix server is not running 分析過程 首先查看zabbix-server的運行狀態 systemctl status zabbix-server 確定是否是active(running)狀態&#xff0c;如果不是&#xff0c;重啟zabbix-server查看log tail -f /var/log/zabbix/zabbix_server.log 導致…

android 把異常寫入到文本里,嘗試在Android中將文件寫入sdcard時發生FileNotFoundException(權限被拒絕)...

從標題中可以看到&#xff0c;我在Android中將文件寫入sdcard時遇到問題.我想寫入將在sdcard上的公共空間中的文件&#xff0c;以便任何其他應用程序都可以讀取它。首先&#xff0c;我檢查sdcard是否已安裝&#xff1a;Environment.getExternalStorageState();然后&#xff0c;…

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

前言這一次要和大家分享的一個Tips是在字符串拼接場景使用的&#xff0c;我們經常會遇到有很多短小的字符串需要拼接的場景&#xff0c;在這種場景下及其的不推薦使用String.Concat也就是使用運算符。 目前來說官方最推薦的方案就是使用StringBuilder來構建這些字符串&#xff…

Buildroot 龍芯1C支持指南

本文轉載自&#xff1a;https://github.com/pengphei/smartloong-sphinx/blob/master/source/cn/loongson1c_buildroot_guide.rst Buildroot 龍芯1C支持指南 引子&#xff1a;從龍芯1C預訂拿到板子已經很長一段時間了&#xff0c;因為各種事情&#xff0c;一直讓它呆在角落的冷…

STOLUCK:經濟下行的當下 ,STO或將幫助中小企業度過寒冬

2018年被稱為創業陣亡率特別高的一年&#xff0c;相關報道稱有近20%的創業團隊面臨“后續融資跟不上&#xff0c;可能死在春天來臨之前”的窘境。經濟不景氣的當下&#xff0c;上下游資金不足&#xff0c;信貸機構沒錢&#xff0c;風投業捉襟見肘。實際今年3月份開始&#xff0…

[ 轉載 ] Java面試精選【Java基礎第一部分】

http://www.cnblogs.com/hnlshzx/p/3491587.html 轉載于:https://www.cnblogs.com/ILoke-Yang/p/8137326.html