> For the complete documentation index, see [llms.txt](https://johch3n611u.gitbook.io/c50108/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://johch3n611u.gitbook.io/c50108/ju-li-cheng-bei/201904/2019-0423.md).

# 2019/0423/Java基礎(型別/溢位/自動強制型別轉換/鑄造物件/串流/)\&I/O物件用法(底層/較不底層)

Java基礎 & I/O ( input  / output )

Java 基礎 變數 識別字 關鍵字

上一次少看一頁回補底下

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEACR9weGedwSz4xy2%2Fimage.png?alt=media\&token=c5d65f6f-6ae2-4edf-9b38-902a732c2240)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEALPx7gCeITreBCjH%2Fimage.png?alt=media\&token=0ea5a372-af59-41b0-b5ce-b6b4d47bbca9)

### 為什麼要那麼多資料型態?&#xD;

1\.	相對的精確度

2\.	記憶體在以前很貴

#### 範圍超過就會溢位在做多重運算時不容易被發現要注意&#xD;

#### String 屬於 class 是一種類別 而不是基礎資料型別&#xD;

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEAZaVg1lTJbYg4l2V%2Fimage.png?alt=media\&token=52c6c194-d2b2-40ab-bb88-012ae72b4724)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEAeZDBNWEbx0WHSLW%2Fimage.png?alt=media\&token=75f5ccb7-34c4-471a-9446-b37495873a0d)

### PACHAGE (類別庫) Java.lang

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEAqQv5OLQH8im0j5G%2Fimage.png?alt=media\&token=68265553-0e07-4a7f-a0bf-4ae3ed344285)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEAyOhsP99jTEIFi6b%2Fimage.png?alt=media\&token=506dd3cb-c1c2-4de8-8bf1-519908fc6a7c)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEB39tTH1TKeR3MQbC%2Fimage.png?alt=media\&token=54c98e82-40b2-4698-a252-16c90196dda5)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEB8Ggbc_iV23aqXbk%2Fimage.png?alt=media\&token=4ee3e5ae-e71a-4471-8aa4-d8824a952adf)

### 溢位

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEBGq01LgQ0sGqVOdO%2Fimage.png?alt=media\&token=2b1dc4f6-a0f0-43ff-8668-d886afe7f56a)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEBOelDF8iiv-f4uoy%2Fimage.png?alt=media\&token=52f1ca56-e594-4039-aa2f-1748b2bfe66e)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEBX1hmqmxKjxBiV1r%2Fimage.png?alt=media\&token=33409ce1-5dbc-47ad-9664-627680292d90)

可以用對的型態的變數去+1避免溢位

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEBe1nmw46AtxeugQE%2Fimage.png?alt=media\&token=47049dd2-dc57-4e30-b1e7-5fc068a4afa9)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEBjRDCnLsPQ7u6l0o%2Fimage.png?alt=media\&token=b14b40e1-a18d-4ddf-b88d-bdc12b2eb942)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEBqd6uk1wmlmQWgFq%2Fimage.png?alt=media\&token=39c6e49e-1af9-4ec2-b8cb-82a2715fe8dc)

#### 自動與強制型別轉換

1.()後編譯器自己轉換long

2.指定一起放在long&#x20;

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdECByXDF2w2aXtU1I-%2Fimage.png?alt=media\&token=aec40a5a-58da-410f-935c-acbbfa001f67)

不會亂碼

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdECPuv24-tbN5MtBzm%2Fimage.png?alt=media\&token=636c29c7-b98e-4b31-a1f4-7e0b4bcfd30f)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdECXiPz4i8yBgxZt9H%2Fimage.png?alt=media\&token=b4545bf0-8b60-4606-97dc-18eef1dc6217)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdECdJC63vSTA0ou-hr%2Fimage.png?alt=media\&token=4bb61a2c-6194-4330-a4d3-7bf14e48c69d)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdECjlF9I95bVVMF6fF%2Fimage.png?alt=media\&token=dcf69ae5-e219-437d-82f1-d19d18afb53e)

2L = Long

3.4e30f = float

e = 40次方

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdECvC7apprqNqXWKxI%2Fimage.png?alt=media\&token=c0156127-b593-4007-9d00-a2fb204f1062)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdED85_Q_IxMi2iyiLM%2Fimage.png?alt=media\&token=3f161c2c-bca8-4bb1-9d7a-bb426e5348cf)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEDKaMtGxOb_31GZkq%2Fimage.png?alt=media\&token=5ee16886-e956-4ff6-95d7-096bc19812fb)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEDRXqdqMDHq7zWUzf%2Fimage.png?alt=media\&token=ef11bbd2-829b-464e-b70c-be3a9fed4e7f)

### 自動型別轉換

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEDeIMdrTyKIBQ6GZE%2Fimage.png?alt=media\&token=2278f131-6ec3-438b-a13d-9e47f8234c75)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEEYi9u1xsgjDHBdQ6%2Fimage.png?alt=media\&token=7f55f37f-4d1f-4223-9e77-7159374cff28)

### 強制型別轉換

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEEyP5Z7u-N_xnE6O8%2Fimage.png?alt=media\&token=43aaa9e6-773f-4637-8609-24e5b929074f)

### 題外話:鑄造物件

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEF797SWMa6nC6jIbW%2Fimage.png?alt=media\&token=52ed7936-0c94-4878-b375-54a9cf621827)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEFD0IN0qX2ljCDqMH%2Fimage.png?alt=media\&token=32d55c1b-c254-4d77-afb9-e5850569044c)

Up down class 自由轉換? 強制轉型

上下自轉 但 左右好像不能自轉

### 繼續強制型態轉換

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEFSrjopWFAiQiPzcR%2Fimage.png?alt=media\&token=0c7af414-d369-4209-a942-5a82579def57)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEFldAC_KEg5ZcmRjn%2Fimage.png?alt=media\&token=f8b93685-8ff6-45e4-95be-c2328165e025)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEFtU0juk6cEfq7w44%2Fimage.png?alt=media\&token=ba0ea33f-fc38-4cab-bbfa-46b205b54f81)

### Java 以上多為 output &#xD;輸出 以下將講 input

對終端機 主控台 system 輸入出

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEGFxsfQHJkOEy6g5g%2Fimage.png?alt=media\&token=f44d71fc-b0d6-4ed5-b305-4989f494ce2a)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEGP3nFO3A0ije_g4l%2Fimage.png?alt=media\&token=cc60b0ae-fd47-49d2-9055-748d324058d6)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEGlE2RlksDOr6FGnY%2Fimage.png?alt=media\&token=4fe5fbec-6749-4075-bea3-46d5ef2ab294)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEGwg-jIlQkYdRPzB0%2Fimage.png?alt=media\&token=bcb528a3-efd3-4a2b-bad4-e2d78ad478df)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEHF_WmK77WbI-CsjE%2Fimage.png?alt=media\&token=b165db35-4a14-47c6-ae14-cba39a3d22af)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEHSyQ-k6RXhVaZ1Ga%2Fimage.png?alt=media\&token=08e5578b-687c-44d3-bb15-097a2adb3c03)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEHahku1LVzDDGYi4W%2Fimage.png?alt=media\&token=e4c724f7-123e-4339-b0e3-764cf1360a8f)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEHhyBufIHLNCrEWo7%2Fimage.png?alt=media\&token=6af73ab6-498c-4ba8-b557-0188508f2771)

### 串流? stream

{% embed url="<https://www.google.com/search?q=java+%E4%B8%B2%E6%B5%81&oq=java+%E4%B8%B2&aqs=chrome.2.69i57j0l5.4991j0j7&sourceid=chrome&ie=UTF-8>" %}

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEHqzDNVvSfZgft0SM%2Fimage.png?alt=media\&token=82dcd28a-491d-4e0f-84cc-dc84e2bc93be)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEI8LAyllIFRoyLBCn%2Fimage.png?alt=media\&token=a7b2cc88-a0fd-4238-b56e-23ef7e9bd3f0)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEIO2ifmGT2ITVNF9q%2Fimage.png?alt=media\&token=13d26653-cb34-49b2-b9a8-afe3d56357f7)

例外處理 Catch 非生例外時輸出錯誤訊息

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEIXI697NltplzMQu6%2Fimage.png?alt=media\&token=04d9f6a6-94d8-423d-a74c-ad517a9ba3db)

近來的資料為存字元char 要運算要在轉型態

### 程式執行時每行變數記憶體位置

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEIiFHEI3_rSwMkGZN%2Fimage.png?alt=media\&token=1c5e4f86-9deb-48a5-bcb2-17d200fbb292)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEInAvifTBvZiX198J%2Fimage.png?alt=media\&token=e601f32e-c739-4622-a2bd-25f4f389b62f)

下斷點 -> 除錯模式 -> 執行-> 進入副程序 – 跳過副程序

按一下f5執行一行，左邊會顯示一步步記憶體儲存位置

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEJDdtavZ-gpXZgkjd%2Fimage.png?alt=media\&token=54579d6a-5154-4ee2-8d0f-2579780515aa)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEJLt35LDaqn0-q5ow%2Fimage.png?alt=media\&token=6df8bb29-a1f4-416e-9dfa-206ff6423bb7)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEJU0ssuZEbpzPWhv3%2Fimage.png?alt=media\&token=f682eb3f-599d-4fda-93d4-76d819ea4d4d)

#### 底層 比較不直覺 要一行行與機器對話&#xD;

#### 但是有不同class 則有較不同的邏輯方式處理同樣的事情&#xD;

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEJfcHFrv1A-bDDxZE%2Fimage.png?alt=media\&token=32381ce3-12c1-4352-bb9c-baa8aaea222b)

英文1byte字中文2byte當初現基數會出現亂碼，

需要做處理(讀進來的起始字碼以上以下做不同動作…)

要特別處理流程控制 java 08\_2 以上都比較偏底層控制

接下來要用較偏人需的class

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEJxkxfoOzADfECbga%2Fimage.png?alt=media\&token=18bfe04d-5c48-4632-ac8f-150b68bbc32a)

#### Stream 串流 reader 寫入 writer 寫出

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEK7KFC4P6z7SP1YPA%2Fimage.png?alt=media\&token=d1db77b0-f5ba-45f0-9e49-c7b3faa72e2f)

#### stream&#xD;

要去實體化一個bufread 要先有 read 變數 要配置一個 in 物件做輸入變數 且要初始化

可以讀多行且不用處理基數偶數字元問題

還是不直覺等等會有更直覺 java08\_3

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEKP2pDighcp8EX4cH%2Fimage.png?alt=media\&token=074bc6ff-0396-4b34-9c42-eb4d7ff18cb0)

類別型態做宣告

New 感覺像是啟動 ( 初始化 )

然後丟到變數裡面

然後去操作 (方法)

到時候會去設計class 現在都是用語言既有的

以下為操作方法

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEKlwT0q1oxVTmSTlb%2Fimage.png?alt=media\&token=a7077ec0-37c1-487a-8d0a-a65d1568e2bb)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEKtGVsKBEw7dy_PgP%2Fimage.png?alt=media\&token=6ede3ccc-91c0-416a-a510-51121eb7d3fb)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LdE9lr-uHSxHEaARA-h%2F-LdEL5SmrlV5A_jjaHvR%2Fimage.png?alt=media\&token=ac152eb5-d030-472e-93d1-bd3254321275)

結束時要關閉close 記憶體?
