JAVA 學習筆記(一) 數據類型及轉換

一仰禀、數據類型

1. 基本類型: 四類八種

整型: byte 书幕、short 象迎、int 香伴、long
浮點型:float 祖驱、 double
布爾型: boolean
字符型: char

2. 引用類型: String、集合類型(如 List, Set, Map 等)瞒窒、自定義類型(類捺僻、方法、對象...)

二、數據類型轉換(拆箱和封箱): 自動轉換 匕坯、強制轉換

1. 自動類型轉換(隱式轉換)
當將一個較小范圍的數據類型賦值給較大范圍的數據類型時束昵,Java 會自動進行類型轉換。例如:
// byte → short → int → long → float → double
// char → int → long → float → double
int a = 10;
double b = a; // 自動將 int 轉換為 double
2. 強制類型轉換(顯式轉換)
當需要將一個較大范圍的數據類型賦值給較小范圍的數據類型時葛峻,必須使用強制類型轉換锹雏。需要注意的是,這種轉換可能會導致精度丟失或數據溢出术奖。
double d = 10.5;
int i = (int) d; // 強制將 double 轉換為 int礁遵,結果為 10
3. 裝箱和拆箱

裝箱: 將基本數據類型轉換為對應的包裝類。
拆箱: 將包裝類轉換為對應的基本數據類型采记。

Integer boxedInt = Integer.valueOf(10); // 手動裝箱
int unboxedInt = boxedInt.intValue();   // 手動拆箱

// 或者使用自動裝箱和拆箱
Integer autoBoxedInt = 10;              // 自動裝箱
int autoUnboxedInt = autoBoxedInt;      // 自動拆箱
4. 字符串轉基本類型

使用包裝類的 parseXXX 方法:
Integer.parseInt(String s)
Double.parseDouble(String s)
Boolean.parseBoolean(String s)
基本類型轉字符串
使用 String.valueOf() 方法:
String.valueOf(int i)
String.valueOf(double d)
String.valueOf(boolean b)
使用 + 操作符:
int num = 10; String str = "" + num;

String strNum = "123";
int num = Integer.parseInt(strNum); // 字符串轉整數

int num2 = 123;
String strNum2 = String.valueOf(num2); // 整數轉字符串
5.對象之間的轉換

向上轉型(Upcasting)
將子類對象賦值給父類引用佣耐,這是隱式的,不需要強制轉換唧龄。
向下轉型(Downcasting)
將父類對象賦值給子類引用兼砖,需要強制轉換,并且要確保該對象實際上是子類的實例既棺,否則會導致 ClassCastException異常讽挟。

class Animal {}
class Dog extends Animal {}

Animal animal = new Dog(); // 向上轉型
Dog dog = (Dog) animal;    // 向下轉型
6. 字符與數字的轉換

字符轉數字
使用 Character.getNumericValue(char ch) 方法。
數字轉字符
使用 (char) ('0' + num) 或 Character.forDigit(int digit, int radix)

char ch = '5';
int num = Character.getNumericValue(ch); // 字符轉數字

int num2 = 5;
char ch2 = (char) ('0' + num2); // 數字轉字符

二丸冕、 關鍵字

1)訪問修飾符
  1. public
    作用: 允許任何其他類訪問耽梅。
    可見性: 同一包內、不同包內的子類胖烛、不同包中的非子類都可以訪問褐墅。
    適用對象: 類、方法洪己、構造方法妥凳、變量逝钥。
  2. protected
    作用: 允許同一包中的類和不同包中的子類訪問艘款。
    可見性: 同一包內、不同包內的子類可以訪問姥份;不同包中的非子類不能訪問。
    適用對象: 方法埃难、構造方法涡尘、變量(不適用于類)。
  3. 默認(無修飾符)
    作用: 只允許同一包中的類訪問座泳。
    可見性: 同一包內可以訪問镇防;不同包中的類(包括子類)不能訪問来氧。
    適用對象: 類中狂、方法、構造方法勋又、變量
  4. private
    作用: 只允許本類內部訪問惯驼。私有成員變量可通過 setter 和getter 方法后 供外部使用
    可見性: 僅限于定義該成員的類內部端铛,外部類(包括子類)不能訪問您朽。
    適用對象: 方法、構造方法、變量(不適用于類)涮母。
    private String name;
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
2)非訪問修飾符
  1. final
    作用: 禁止繼承(類)彤钟、禁止重寫(方法)或禁止修改(變量)。
    適用對象:
    類:防止該類被繼承转质。
    方法:防止子類重寫該方法狮暑。
    變量:定義常量拣展,值一旦賦值后不能更改

  2. abstract
    作用: 定義抽象類或抽象方法按脚。
    適用對象:
    類:表示該類是抽象類,不能實例化介蛉,必須被繼承溶褪。
    方法:表示該方法沒有實現币旧,必須在子類中實現。

  3. static
    作用: 表示成員屬于類本身而不是類的實例猿妈。
    適用對象:
    變量:靜態(tài)變量(類變量)吹菱,所有實例共享同一個值。
    方法:靜態(tài)方法彭则,可以通過類名直接調用鳍刷。

  4. synchronized
    作用: 用于線程同步,確保同一時間只有一個線程可以執(zhí)行該方法或代碼塊贰剥。
    適用對象:
    方法:同步方法倾剿。
    代碼塊:同步代碼塊筷频。

  class SynchronizedExample {
      synchronized void syncMethod() {
          // 同步方法體
      }
      void someMethod() {
          synchronized (this) {
              // 同步代碼塊
          }
      }
  }
  1. volatile
    作用: 保證多線程環(huán)境下的可見性蚌成,即一個線程對變量的修改會立即對其他線程可見。
    適用對象:
    變量:確保變量的每次讀取都是最新的值凛捏。
  2. transient
    作用: 指定該變量不參與序列化過程担忧。
    適用對象:
    變量:當對象被序列化時,transient 變量不會被保存坯癣。
  3. strictfp
    作用: 確保浮點運算在不同平臺上具有嚴格一致的結果瓶盛。
    適用對象:
    類:應用于整個類。
    方法:應用于單個方法示罗。
  strictfp class StrictFpExample {
      strictfp void strictFpMethod() {
          double result = 1.0 / 3.0;
      }
  }
3) 類和接口關鍵字

extends惩猫、implements 和 interface 是 Java 中的關鍵字,它們用于定義類和接口之間的繼承和實現關系蚜点。這些關鍵字不屬于訪問修飾符或非訪問修飾符的范疇轧房,而是屬于類和接口定義中的關鍵字

  1. extends
    作用: 指定一個類繼承自另一個類。
    適用對象: 類
  2. implements
    作用: 指定一個類實現一個或多個接口绍绘。
    適用對象: 類
  3. interface 實現接口的類必須重寫接口內所有方法,但是可以通過定義一個抽象類去重寫接口,然后OneServlet 繼承抽象類,將需要重寫的方法也定義成 抽象方法,這樣就可以只重寫某個具體的抽象方法**
    作用: 定義一個接口奶镶。
    適用對象: 接口
  1. private 私有的 用于修飾成員變量,增加安全性,
  2. interface 修飾符 修飾的類 成為接口,接口內所有方法不可以在本類中實現,也就是沒有方法體
// fun1 和 fun2 在interface  修飾的MyInerface接口內 不可以有 { }
public interface MyInerface(){
    public void fun1(); 
    public void fun2();
}
  1. public 訪問修飾符迟赃,表示該類、方法或變量可以被任何其他類訪問
  2. class 關鍵字厂镇,用于定義一個類纤壁。類是對象的模板,包含了屬性(變量)和行為(方法)
  3. void 方法的返回類型,定義為 void 的方法表示不返回任何值
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末捺信,一起剝皮案震驚了整個濱河市酌媒,隨后出現的幾起案子,更是在濱河造成了極大的恐慌迄靠,老刑警劉巖馍佑,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異梨水,居然都是意外死亡拭荤,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門疫诽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舅世,“玉大人,你說我怎么就攤上這事奇徒〕牵” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵摩钙,是天一觀的道長罢低。 經常有香客問我,道長胖笛,這世上最難降的妖魔是什么网持? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮长踊,結果婚禮上功舀,老公的妹妹穿的比我還像新娘。我一直安慰自己身弊,他們只是感情好辟汰,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著阱佛,像睡著了一般帖汞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凑术,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天翩蘸,我揣著相機與錄音,去河邊找鬼麦萤。 笑死鹿鳖,一個胖子當著我的面吹牛扁眯,可吹牛的內容都是我干的。 我是一名探鬼主播翅帜,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼姻檀,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了涝滴?” 一聲冷哼從身側響起绣版,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎歼疮,沒想到半個月后杂抽,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡韩脏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年缩麸,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赡矢。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡杭朱,死狀恐怖,靈堂內的尸體忽然破棺而出吹散,到底是詐尸還是另有隱情弧械,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布空民,位于F島的核電站刃唐,受9級特大地震影響,放射性物質發(fā)生泄漏界轩。R本人自食惡果不足惜画饥,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望耸棒。 院中可真熱鬧荒澡,春花似錦报辱、人聲如沸与殃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽幅疼。三九已至,卻和暖如春昼接,著一層夾襖步出監(jiān)牢的瞬間爽篷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工慢睡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留逐工,地道東北人铡溪。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像泪喊,于是被迫代替她去往敵國和親棕硫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內容