java參數傳入邏輯符號(java方法傳參)

本文目錄一覽:

java邏輯運算符都有哪些

邏輯運算符包括 、||、!。其中 和 || 是雙目運算符,實現邏輯與、邏輯或;!是單目運算符,實現邏輯非。

結果為 boolean 型的變量或表達式可以通過邏輯運算符結合成為邏輯表達式。邏輯運算符 、|| 和 !按表 2 進行邏輯運算。

邏輯運算符的優先級為:!運算級別最高, 運算高於 || 運算。!運算符的優先級高於算術運算符,而 和 || 運算則低於關係運算符。結合方向是:邏輯非(單目運算符)具有右結合性,邏輯與和邏輯或(雙目運算符)具有左結合性。

擴展資料:

邏輯運算符的示例。

x0 x=100    //第一行語句

y%4==0 || y%3==0    //第二行語句

!(xy)    //第三行語句

其中,第一行語句用於判斷 x 的值是否大於 0 且小於或等於 100,只有兩個條件同時成立結果才為真(true)。

第二行語句用於判斷 y 的值是否能被 4 或者 3 整除,只要有一個條件成立,結果就為真(true)。

第三行語句先比較 x 和 y,再將比較結果取反,即如果 x 大於 y 成立,則結果為假(false),否則為真(true)。

java 參數傳遞 規則

簡言之:Java都是值傳遞(pass-by-value)

在Java中,無非就是兩種類型,即基本類型和從Object繼承下來的對象類型,而對象類型又包括String這種一旦初始化就不可改變內容的類型和BufferString這種可以初始化後可

以改變內容的類型。

然後看一下代碼示例:

java 代碼

1.package test;

2.

3.public class Test {

1. public static void main(String args[]) {

2. Integer interger1, interger2;

3. int i, j;

4. interger1 = new Integer(10);

5. interger2 = new Integer(50);

6. i = 5;

7. j = 9;

8. System.out.println(“Before Swap, Interger1 is ” + interger1);

9. System.out.println(“Before Swap, Interger2 is ” + interger2);

10. swap(interger1, interger2);

11. System.out.println(“After Swap Interger1 is ” + interger1);

12. System.out.println(“After Swap Interger2 is ” + interger2);

13. System.out.println(“Before Swap i is ” + i);

14. System.out.println(“Before Swap j is ” + j);

15. swap(i, j);

16. System.out.println(“After Swap i is ” + i);

17. System.out.println(“After Swap j is ” + j);

18.

19. StringBuffer sb = new StringBuffer(“I am StringBuffer”);

20. System.out.println(“Before change, sb is ” + sb + “”);

21. change(sb);

22. System.out.println(“After change sb is ” + sb + “”);

23. }

24.

25. public static void swap(Integer ia, Integer ib) {

26. Integer temp = ia;

27. ia = ib;

28. ib = temp;

29. }

30.

31. public static void swap(int li, int lj) {

32. int temp = li;

33. li = lj;

34. lj = temp;

35. }

36.

37. public static void change(StringBuffer ia) {

38. ia.append(“, but my content can be changed”);

39. //ia = new StringBuffer(“,but my content can be changed”);

40. }

41.}

42.

輸出:

Before Swap, Interger1 is 10

Before Swap, Interger2 is 50

After Swap Interger1 is 10

After Swap Interger2 is 50

Before Swap i is 5

Before Swap j is 9

After Swap i is 5

After Swap j is 9

Before change, sb is I am StringBuffer

After change sb is I am StringBuffer, but my content can be changed

這很好解釋,對於基本類型諸如int,傳遞進去的是存放int值的「內存單元」的一個copy,所以函數swap裏面的int和外面的int根本就不是一個東西,當然不能反射出去影響外面

的int。而對於對象類型,我們同樣可以這樣認為,傳遞進去的是存放對象類型的指針的「內存單元」一個copy(雖然Java裏面沒有指針的概念,但這並不妨礙我們理解)。這樣,

在swap函數裏面,對其指針本身的值做任何操作當然不會影響外面的Integer,因為interger1和interger2的「內存單元」裏面的值是不變的,其指向的對象類型也是沒有變的。

然後這裡需要說明一個問題,就是StringBuffer這種類型的對象了。因為其內容是可以改變的,所以change函數裏面的「指針」通過類似「*」的操作,改變了StringBuffer對象的

本身,就顯而易見了。(StringBuffer對象本身只有一個副本)

java中的邏輯符號,運算符(位運算符)個代表什麼

算數運算符,+-*/(+=,-=,*=,、/*) p.s. 1/0 = NaN 無窮大。邏輯運算符,略轉義序列符(例舉),\b 退格, \t 製表, \n 換行(製圖、一般println), \r 回車, \” 雙引號, \’ 單引號p.s. 取決於os,並不常用。遞增/減 ++, –賦值 =比較 =,=, ==位移 ,, p.s. 圖形用到注釋,// 行注釋,/* */段注釋類型轉換, a = (int)b; //括號。條件, if()… == a ? true : false //三目運算。正則表達式, 應用類,用到這再說。

LZ是學Java的新手吧。嗯,慢慢學

Java參數傳遞

Java的方法參數傳遞都是值傳遞。這個問題需要樓主慢慢理解,如果基礎薄弱(C、C++基礎弱)就記住就好。如果基礎好可以從內存角度理解。

    從語法和簡單層面理解:str是一個String類型的對象,傳遞給changeStr方法,傳遞的是str的引用內容,方法內的changeStr(String value),value變量和str指向了同一個對象,但是value重新賦值後,它的指向改變了,但是str的指向不會發生,所以str的輸出還是「Hello」,而changeObjValue方法傳入的TEST的對象pt給changeObjValue(TEST ref),ref變量和pt變量指向了同一對象,之後通過改變了對象的內容,pt變量的指向沒變,但是執行的對象的變量變了。所以pt的ptValue值變了。

    進一步理解,Java對字符串進行了特殊處理,因為字符串這種數據類型太常用了,為了節省內容提高效率。Java把字符串放入了常量池,所以我們沒辦法在運行時修改一個字符串對象的內容。也就是對value變量的賦值操作是重寫建立了一個對象。樓主可以測試經典的java String的代碼:

String a = “a”;

String b = “a”;

String c = new String(“a”);

String d = new String(“a”);

System.out.println(a==b);

System.out.println(a==c);

System.out.println(b==c);

System.out.println(d==c);

     再深入,Java沒有C和C++的指針概念,可以粗暴的理解Java的引用是一種特殊的指針(實際上Java盡量把程序猿從指針中解放出來,或者說避免直接操作內存對象)。有一種不負責的說法:Java的基本類型傳遞傳遞的是值,也就是值的副本,引用類型傳遞的時引用。但是要注意String對象的內容不可變,而且傳遞的引用指向不可變。運行時Java的局部變量在棧空間中(線程私有),對象在堆內存中(線程公有),changeStr方法相當於在堆內存中又開闢了一塊兒空間重寫分配了一個對象,但是str沒有指向這個新new出來的對象。而changeObjValue方法修改的pt指向的對象的內容也就是修改的是堆內存的數據,ref和pt指向的是一塊兒內存。所以pt的對象數據會變化。

Java在參數中用「 | 」符號是什麼原理?我說的不是指判斷true和false的或,而是參數中的「 | 」

這叫掩碼,在C編程中很常見。

SWT.MIN是一個整型常量,SWT.RESIZE也是一個整型常量,將它們按位或(|),就可以將兩者合併成一個參數傳遞到方法中,方法中再按位與()來解包傳遞的參數。

例:SWT.MIN是0010,SWT.RESIZE是0100,兩者按位或的結果就是0110,將0110作為參數傳遞給方法。方法內部拿到參數後,只要將參數按位與SWT.MIN,如果得到的結果不是0,那麼就說明傳遞了SWT.MIN;同理將參數按位與SWT.RESIZE,如果得到的結果不是0那麼就說明傳遞了SWT.RESIZE。

java 中|| 和 && 這類的符號都表示什麼?

和||是一種邏輯運算符,是邏輯與,當兩個數都為真,則結果為真。||是邏輯或,兩個數任意一個為真,則結果為真。

舉個例子:

1、a b

當a、b都為真時,結果為真。有一個為假或者都為假時結果為假。

2、a || b

當a、b有一個為真時,結果為真。a、b都為假時結果為假。

擴展資料:

在java中還有其他的邏輯符號,比如:!、|、

「!」是非運算符號,比如a為真,則!a則為假。a如果為假,則!a為真。

而「|」也是邏輯或,「」也是邏輯與,但是他們與「||」和「」有些區別,區別如下:

「」與「|」無論第一個判斷條件是否成立,邏輯運算符前後兩個條件都會進行判斷。

「」與「||」,前者第一個條件不成立,後面的條件均不進行判斷,返回false;後者第一個條件成立,後面的條件均不進行判斷,返回true。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/250739.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-13 13:30
下一篇 2024-12-13 13:30

相關推薦

  • 解決.net 6.0運行閃退的方法

    如果你正在使用.net 6.0開發應用程序,可能會遇到程序閃退的情況。這篇文章將從多個方面為你解決這個問題。 一、代碼問題 代碼問題是導致.net 6.0程序閃退的主要原因之一。首…

    編程 2025-04-29
  • ArcGIS更改標註位置為中心的方法

    本篇文章將從多個方面詳細闡述如何在ArcGIS中更改標註位置為中心。讓我們一步步來看。 一、禁止標註智能調整 在ArcMap中設置標註智能調整可以自動將標註位置調整到最佳顯示位置。…

    編程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • Python創建分配內存的方法

    在python中,我們常常需要創建並分配內存來存儲數據。不同的類型和數據結構可能需要不同的方法來分配內存。本文將從多個方面介紹Python創建分配內存的方法,包括列表、元組、字典、…

    編程 2025-04-29
  • 三星內存條參數用法介紹

    本文將詳細解釋三星內存條上面的各種參數,讓你更好地了解內存條並選擇適合自己的一款。 一、容量大小 容量大小是內存條最基本的參數,一般以GB為單位表示,常見的有2GB、4GB、8GB…

    編程 2025-04-29
  • 使用Vue實現前端AES加密並輸出為十六進制的方法

    在前端開發中,數據傳輸的安全性問題十分重要,其中一種保護數據安全的方式是加密。本文將會介紹如何使用Vue框架實現前端AES加密並將加密結果輸出為十六進制。 一、AES加密介紹 AE…

    編程 2025-04-29
  • 用不同的方法求素數

    素數是指只能被1和自身整除的正整數,如2、3、5、7、11、13等。素數在密碼學、計算機科學、數學、物理等領域都有着廣泛的應用。本文將介紹幾種常見的求素數的方法,包括暴力枚舉法、埃…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python學習筆記:去除字符串最後一個字符的方法

    本文將從多個方面詳細闡述如何通過Python去除字符串最後一個字符,包括使用切片、pop()、刪除、替換等方法來實現。 一、字符串切片 在Python中,可以通過字符串切片的方式來…

    編程 2025-04-29

發表回復

登錄後才能評論