沒有黑眼圈的小浣熊初學Java基礎的筆記(一)

沒有黑眼圈的小浣熊發表於2020-11-21

標題@沒有黑眼圈的小浣熊初學Java基礎的筆記(一)

註釋、識別符號、關鍵字

註釋

​ ·單行註釋 //

​ ·多行註釋 /* */

​ ·文件註釋 /** */

資料型別

**java是強型別語言:**要求變數的使用要嚴格符合規定,所有變數都必須先定義後才能使用

java的資料型別分為2大類

基本型別(primitive type)

Byte

short

char

int

long

float

double

boolean

引用型別 : 類 、 介面、陣列

型別轉換

由於Java是強型別語言,所以要進行有些運算的時候,需要用到型別轉換

低---------------------------------------------------------------->高

byte,short,char->int->long->float->double (低到高,自動轉換)

高到低,強制轉換

int a = 3; 

double b = 13.88;

int a = (double)b;

但是如果是以下方式運算時,不改變變數型別,仍然可以計算

short i = 3;
i = i + 3;  //(編譯不通過),此時i+3應該為int型,如需編寫,應當改為i = (short)i+3
i += 3; //編譯正確,此方法計算時不會改變變數型別,仍為short型別

byte\char short三者之間做運算,結果應該為int型數

變數、常量

變數就是可變化的量!

Java變數時程式中最基本的儲存單元,其要素包括變數名,變數型別,和作用域

type varName [=value] [,varName{=value}];

//資料型別 變數名 = 值;可以使用都考隔開來宣告多個同型別變數。

常量
變數的命名與規範

所有變數、方法、類名:見名知意

類成員變數:首字母小寫駝峰原則:moneySalary ,除了第一個單詞小寫以外,後面的單詞首字母大寫 例:lastName;

區域性變數:首字母小寫駝峰原則

常量:大寫字母和下換線:MAX_VALUE;

類名:首字母大寫駝峰原則:Man,GoodMan;

方法名:首字母小寫駝峰原則:run(),runRun();

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-ouLhQtYb-1605917989758)(C:\Users\Wyy1998\Desktop\命名規範.png)]

運算子

Java語言支援如下運算子

算數運算子

​ 表1

運 算 符名 稱說 明例 子
-取反符號取反運算b=-a
++自加一a++:先取值再加一,或++a:先加一再取值a++ 或 ++a
自減一a–:先取值再減一,或–a:先減一再取值a-- 或 --a
+求 a 加 b 的和,還可用於 String 型別,進行字串連線操作a + b
-求 a 減 b 的差a - b
*求 a 乘以 b 的積a * b
/求 a 除以 b 的商a / b
%取餘(取模)求 a 除以 b 的餘數 a % ba % b

表 1 中,-a 是對 a 取反運算,a++ 或 a-- 是在表示式運算完後,再給 a 加一或減一。而 ++a 或 --a 是先給 a 加一或減一,然後再進行表示式運算。

int a = 12;
System.out.println(-a);
int b = a++;
System.out.println(b);
b = ++a;
System.out.println(b);

上述程式碼第 2 行是 -a,是把 a 變數取反,結果輸出是 -12。第 4 行程式碼是先把 a 賦值給 b 變數再加一,即先賦值後 ++,因此輸出結果是 12。第 6 行程式碼是把 a 加一,然後把 a 賦值給 b 變數,即先 ++ 後賦值,因此輸出結果是 14。
在這裡插入圖片描述

賦值運算子

賦值運算子是指為變數或常量指定數值的符號。賦值運算子的符號為“=”,它是雙目運算子,左邊的運算元必須是變數,不能是常量或表示式。

擴充套件賦值運算子

運算子含義例項結果
+=將該運算子左邊的數值加上右邊的數值, 其結果賦值給左邊變數本身int a=5; a+=2;a=7
-=將該運算子左邊的數值減去右邊的數值, 其結果賦值給左邊變數本身int a=5; a-=2;a=3
*=將該運算子左邊的數值乘以右邊的數值, 其結果賦值給左邊變數本身int a=5; a*=2;a=10
/=將該運算子左邊的數值整除右邊的數值, 其結果賦值給左邊變數本身int a=5; a/=2;a=2
%=將該運算子左邊的數值除以右邊的數值後取餘,其結果賦值給左邊變數本身int a=5; a%=2;a=1

example:

int x, y, z; // 定義3個整型的變數
x = y = z = 5; // 為變數賦初值為5
x += 10; // 等價於x=x+10,結果x=15
y -= 3; // 等價於y=y-3,結果y=2
z *= 5; // 等價於z=z*5,結果z=25
x /= 4; // 等價於x=x/4,結果x=3
z %= x; // 等價於z=z%x,結果z=1

關係運算子

關係運算子(relational operators)也可以稱為“比較運算子”,用於用來比較判斷兩個變數或常量的大小。關係運算子是二元運算子,運算結果是 boolean 型。當運算子對應的關係成立時,運算結果是 true,否則是 false。

運算子含義說明例項結果
>大於運算子只支援左右兩邊運算元是數值型別。如果前面變數的值大於後面變數的值, 則返回 true。2>3false
>=大於或等於運算子只支援左右兩邊運算元是數值型別。如果前面變數的值大於等於後面變數的值, 則返回 true。4>=2true
<小於運算子只支援左右兩邊運算元是數值型別。如果前面變數的值小於後面變數的值,則返回 true。2<3true
<=小於或等於運算子只支援左右兩邊運算元是數值型別。如果前面變數的值小於等於後面變數的值, 則返回 true。4<=2false
==相等運算子如果進行比較的兩個運算元都是數值型別,無論它們的資料型別是否相同,只要它們的值相等,也都將返回 true。 如果兩個運算元都是引用型別,只有當兩個引用變數的型別具有父子關係時才可以比較,只要兩個引用指向的不是同一個物件就會返回 true。 Java 也支援兩個 boolean 型別的值進行比較。44 97’a’ 5.05 truefalsetrue true true false
!=不相等運算子如果進行比較的兩個運算元都是數值型別,無論它們的資料型別是否相同,只要它們的值不相等,也都將返回 true。 如果兩個運算元都是引用型別,只有當兩個引用變數的型別具有父子關係時才可以比較,只要兩個引用指向的不是同一個物件就會返回 true。4!=2true

邏輯運算子

邏輯運算子把各個運算的關係表示式連線起來組成一個複雜的邏輯表示式,以判斷程式中的表示式是否成立,判斷的結果是 true 或 false。

邏輯運算子的用法、含義及例項

運算子用法含義說明例項結果
&&a&&b短路與ab 全為 true 時,計算結果為 true,否則為 false。2>1&&3<4true
||a||b短路或ab 全為 false 時,計算結果為 false,否則為 true。2<1||3>4false
!!a邏輯非a 為 true 時,值為 false,a 為 false 時,值為 true!(2>4)true
|a|b邏輯或ab 全為 false 時,計算結果為 false,否則為 true1>2|3>5false
&a&b邏輯與ab 全為 true 時,計算結果為 true,否則為 false1<2&3<5true
^a^b異或ab相同時為false,ab不同時為true
  • && 與 & 區別:

    &&運算:如果 a 為 false,則不計算 b(因為不論 b 為何值,結果都為 false)

  • || 與 | 區別:

    ||運算:如果 a 為 true,則不計算 b(因為不論 b 為何值,結果都為 true)

位運算子

位運算子主要用來對運算元二進位制的位進行運算。按位運算表示按每個二進位制位(bit)進行計算,其運算元和運算結果都是整型值。

首先了解一下二進位制的原碼、反碼和補碼

反碼:

  • 正數的反碼還是等於原碼

  • 負數的反碼就是他的原碼除符號位外,按位取反。

補碼:

  • 正數的補碼等於他的原碼
  • 負數的補碼等於反碼+1

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-vurWSzwA-1605917989762)(C:\Users\Wyy1998\Desktop\二進位制補碼.png)]

位邏輯運算子

運算子含義例項結果
&按位進行與運算(AND)4 & 54
|按位進行或運算(OR)4 | 55
^按位進行異或運算(XOR)4 ^ 51
~按位進行取反運算(NOT)
正數取反:各二進位制碼按補碼各位取反
負數取反:各二進位制碼按補碼各位取反
~ 4-5
»右移位運算子8»14
«左移位運算子9«236
>>>無符號右移3>>>11
<<<無符號左移

example:

int i=10;
System.out.printf("%x \n",~i);
System.out.printf("%d \n",~i);

可以看到輸出結果為 fff5和-11,前者將它轉換為二進位制是 1111111111110101。這個二進位制數的最高位為 1,表示這個數為負數。除最高位外,按位取反再加 1,即得到二進位制原碼 1000000000001011,用十進位制數表示即為 -11。

左位移運算子

左移位運算子為«,其運算規則是:按二進位制形式把所有的數字向左移動對應的位數,高位移出(捨棄),低位的空位補零。

例如,將整數 11 向左位移 1 位的過程如圖 6 所示。

img
圖 6 對11左移1位運算過程

從圖 6 中可以看到,原來數的所有二進位制位都向左移動 1 位。原來位於左邊的最高位 0 被移出捨棄,再向尾部追加 0 補位。最終到的結果是 22,相當於原來數的 2 倍。(左移n位,相當於*2的n次冪)

右位移運算子

右位移運算子為»,其運算規則是:按二進位制形式把所有的數字向右移動對應的位數,低位移出(捨棄),高位的空位補零。

例如,將整數 11 向右位移 1 位的過程如圖 7 所示img

從圖 7 中可以看到,原來數的所有二進位制位都向右移動 1 位。原來位於右邊的最低位 1 被移出捨棄,再向最高位追加 0 補位。最終到的結果是 5,相當於原數整除 2 的結果。(右移n位,相當於*(1/2)的n次冪)

複合位賦值運算子

運算子含義例項結果
&=按位與賦值num1 &= num2等價於 num 1=num 1 & num2
|=按位或賦值num1 |= num2等價於 num 1=num 1 | num2
^=按位異或賦值num1 ^= num2等價於 num 1=num 1 ^ num2
-=按位取反賦值num1 ~= num2等價於 num 1=num 1 ~ num2
«=按位左移賦值num1 «= num2等價於 num 1=num 1 « num2
»=按位右移賦值num1

List item

»= num2 | 等價於 num 1=num 1 » num2 |

條件運算子

Java 提供了一個特別的三元運算子(也叫三目運算子)經常用於取代某個型別的 if-then-else 語句。條件運算子的符號表示為“?:”,使用該運算子時需要有三個運算元,因此稱其為三目運算子。使用條件運算子的一般語法結構為:

result = <expression> ? <statement1> : <statement3>;`

其中,expression 是一個布林表示式。當 expression 為真時,執行 statement1, 否則就執行 statement3。此三元運算子要求返回一個結果,因此要實現簡單的二分支程式,即可使用該條件運算子。

運算子優先順序

優先順序運算子結合性
1()、[]、{}從左向右
2!、+、-、~、++、–從右向左
3*、/、%從左向右
4+、-從左向右
5«、»、>>>從左向右
6<、<=、>、>=、instanceof從左向右
7==、!=從左向右
8&從左向右
9^從左向右
10|從左向右
11&&從左向右
12||從左向右
13?:從右向左
14=、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>=從右向左

ex:

--y || ++x && ++z;

這個表示式中包含了算術運算子和邏輯運算子。根據表 1 中列出的優先順序,可以確定它的執行順序如下:
① 先計算 y 的自減運算子,即 --y。
② 再計算 x 的自增運算子,即 ++x。
③ 接著計算 z 的自增運算子,即 ++z。
④ 由於邏輯與比邏輯或的優先順序高,這裡將 ② 和 ③ 的結果進行邏輯與運算,即 ++x && ++z。
⑤ 最後將 ④ 的結果與 ① 進行邏輯或運算,即 --y||++x&&++z。

作業:

1、在java中將60轉換為二進位制、8進位制、16進位制數

包機制、java DOS

package pkg1[·pkg2[·pkg3…]];

一般利用公司域名倒置作為包名:com.baidu.www

為了能夠使用某一個包的成員,我們需要在Java程式中明確匯入該包,使用“import”語句即可完成此功能

import package1[.package2…].(classname|*);

相關文章