Submit Search
Upload
Java SE 8 技術手冊第 4 章 - 認識物件
•
Download as PPT, PDF
•
6 likes
•
4,253 views
Justin Lin
Follow
區分基本型態與類別型態 瞭解物件與參考的關係 從包裹器認識物件 以物件觀點看待陣列 認識字串的特性
Read less
Read more
Technology
Report
Share
Report
Share
1 of 91
Download now
Recommended
Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法
Justin Lin
Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
Justin Lin
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論
Justin Lin
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
Java SE 8 技術手冊第 12 章 - Lambda
Java SE 8 技術手冊第 12 章 - Lambda
Justin Lin
Data types
Data types
myrajendra
Core java complete ppt(note)
Core java complete ppt(note)
arvind pandey
Method overloading
Method overloading
Lovely Professional University
Recommended
Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法
Justin Lin
Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
Justin Lin
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論
Justin Lin
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
Java SE 8 技術手冊第 12 章 - Lambda
Java SE 8 技術手冊第 12 章 - Lambda
Justin Lin
Data types
Data types
myrajendra
Core java complete ppt(note)
Core java complete ppt(note)
arvind pandey
Method overloading
Method overloading
Lovely Professional University
Jpa
Jpa
Manav Prasad
Java data types, variables and jvm
Java data types, variables and jvm
Madishetty Prathibha
Angular js
Angular js
Knoldus Inc.
Data Types & Variables in JAVA
Data Types & Variables in JAVA
Ankita Totala
Introduction to java
Introduction to java
Java Lover
Packages in java
Packages in java
Abhishek Khune
Java 8 lambda
Java 8 lambda
Manav Prasad
Primitive data types in java
Primitive data types in java
Umamaheshwariv1
L21 io streams
L21 io streams
teach4uin
Java Course 8: I/O, Files and Streams
Java Course 8: I/O, Files and Streams
Anton Keks
Java literals
Java literals
myrajendra
JAVA PROGRAMMING
JAVA PROGRAMMING
Niyitegekabilly
JAVA Literals
JAVA Literals
ASHUTOSH TRIVEDI
Java arrays
Java arrays
BHUVIJAYAVELU
C# Tutorial
C# Tutorial
Jm Ramos
Introduction to class in java
Introduction to class in java
kamal kotecha
Java 8 Lambda Expressions & Streams
Java 8 Lambda Expressions & Streams
NewCircle Training
Java Data Types and Variables
Java Data Types and Variables
sasi saseenthiran
Core java
Core java
Ravi varma
Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...
Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...
Edureka!
Java SE 8 技術手冊第 8 章 - 例外處理
Java SE 8 技術手冊第 8 章 - 例外處理
Justin Lin
Java SE 8 技術手冊第 9 章 - Collection與Map
Java SE 8 技術手冊第 9 章 - Collection與Map
Justin Lin
More Related Content
What's hot
Jpa
Jpa
Manav Prasad
Java data types, variables and jvm
Java data types, variables and jvm
Madishetty Prathibha
Angular js
Angular js
Knoldus Inc.
Data Types & Variables in JAVA
Data Types & Variables in JAVA
Ankita Totala
Introduction to java
Introduction to java
Java Lover
Packages in java
Packages in java
Abhishek Khune
Java 8 lambda
Java 8 lambda
Manav Prasad
Primitive data types in java
Primitive data types in java
Umamaheshwariv1
L21 io streams
L21 io streams
teach4uin
Java Course 8: I/O, Files and Streams
Java Course 8: I/O, Files and Streams
Anton Keks
Java literals
Java literals
myrajendra
JAVA PROGRAMMING
JAVA PROGRAMMING
Niyitegekabilly
JAVA Literals
JAVA Literals
ASHUTOSH TRIVEDI
Java arrays
Java arrays
BHUVIJAYAVELU
C# Tutorial
C# Tutorial
Jm Ramos
Introduction to class in java
Introduction to class in java
kamal kotecha
Java 8 Lambda Expressions & Streams
Java 8 Lambda Expressions & Streams
NewCircle Training
Java Data Types and Variables
Java Data Types and Variables
sasi saseenthiran
Core java
Core java
Ravi varma
Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...
Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...
Edureka!
What's hot
(20)
Jpa
Jpa
Java data types, variables and jvm
Java data types, variables and jvm
Angular js
Angular js
Data Types & Variables in JAVA
Data Types & Variables in JAVA
Introduction to java
Introduction to java
Packages in java
Packages in java
Java 8 lambda
Java 8 lambda
Primitive data types in java
Primitive data types in java
L21 io streams
L21 io streams
Java Course 8: I/O, Files and Streams
Java Course 8: I/O, Files and Streams
Java literals
Java literals
JAVA PROGRAMMING
JAVA PROGRAMMING
JAVA Literals
JAVA Literals
Java arrays
Java arrays
C# Tutorial
C# Tutorial
Introduction to class in java
Introduction to class in java
Java 8 Lambda Expressions & Streams
Java 8 Lambda Expressions & Streams
Java Data Types and Variables
Java Data Types and Variables
Core java
Core java
Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...
Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...
Viewers also liked
Java SE 8 技術手冊第 8 章 - 例外處理
Java SE 8 技術手冊第 8 章 - 例外處理
Justin Lin
Java SE 8 技術手冊第 9 章 - Collection與Map
Java SE 8 技術手冊第 9 章 - Collection與Map
Justin Lin
Java SE 8 技術手冊第 10 章 - 輸入輸出
Java SE 8 技術手冊第 10 章 - 輸入輸出
Justin Lin
Java SE 8 技術手冊第 6 章 - 繼承與多型
Java SE 8 技術手冊第 6 章 - 繼承與多型
Justin Lin
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Justin Lin
Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫
Justin Lin
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Justin Lin
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Justin Lin
Java SE 8 技術手冊第 13 章 - 時間與日期
Java SE 8 技術手冊第 13 章 - 時間與日期
Justin Lin
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Justin Lin
Java SE 8 技術手冊第 7 章 - 介面與多型
Java SE 8 技術手冊第 7 章 - 介面與多型
Justin Lin
Java SE 8 技術手冊第 15 章 - 通用API
Java SE 8 技術手冊第 15 章 - 通用API
Justin Lin
3D 之邏輯與美感交會 - OpenSCAD
3D 之邏輯與美感交會 - OpenSCAD
Justin Lin
淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle
Justin Lin
從 REPL 到 IDE
從 REPL 到 IDE
Justin Lin
Java 8 與 retrolambda
Java 8 與 retrolambda
Justin Lin
資料結構
資料結構
Justin Lin
從模組到類別
從模組到類別
Justin Lin
流程語法與函式
流程語法與函式
Justin Lin
Python 起步走
Python 起步走
Justin Lin
Viewers also liked
(20)
Java SE 8 技術手冊第 8 章 - 例外處理
Java SE 8 技術手冊第 8 章 - 例外處理
Java SE 8 技術手冊第 9 章 - Collection與Map
Java SE 8 技術手冊第 9 章 - Collection與Map
Java SE 8 技術手冊第 10 章 - 輸入輸出
Java SE 8 技術手冊第 10 章 - 輸入輸出
Java SE 8 技術手冊第 6 章 - 繼承與多型
Java SE 8 技術手冊第 6 章 - 繼承與多型
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 13 章 - 時間與日期
Java SE 8 技術手冊第 13 章 - 時間與日期
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 7 章 - 介面與多型
Java SE 8 技術手冊第 7 章 - 介面與多型
Java SE 8 技術手冊第 15 章 - 通用API
Java SE 8 技術手冊第 15 章 - 通用API
3D 之邏輯與美感交會 - OpenSCAD
3D 之邏輯與美感交會 - OpenSCAD
淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle
從 REPL 到 IDE
從 REPL 到 IDE
Java 8 與 retrolambda
Java 8 與 retrolambda
資料結構
資料結構
從模組到類別
從模組到類別
流程語法與函式
流程語法與函式
Python 起步走
Python 起步走
Similar to Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Justin Lin
認識物件
認識物件
Justin Lin
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Justin Lin
CH04:認識物件
CH04:認識物件
Justin Lin
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
2, object oriented programming
2, object oriented programming
ted-xu
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Justin Lin
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Justin Lin
Java SE 7 技術手冊投影片第 12 章 - 通用API
Java SE 7 技術手冊投影片第 12 章 - 通用API
Justin Lin
使用 Eloquent ORM
使用 Eloquent ORM
Shengyou Fan
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Justin Lin
SCJP ch17
SCJP ch17
r82093403
12, string
12, string
ted-xu
4. 使用物件
4. 使用物件
Justin Lin
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Justin Lin
Ch07 使用 JSTL
Ch07 使用 JSTL
Justin Lin
型態與運算子
型態與運算子
Justin Lin
輸入輸出
輸入輸出
Justin Lin
Excel vba實務應用 第4天
Excel vba實務應用 第4天
明和 蔡
Python面向对象开发基础篇
Python面向对象开发基础篇
modou li
Similar to Java SE 8 技術手冊第 4 章 - 認識物件
(20)
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件
認識物件
認識物件
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
CH04:認識物件
CH04:認識物件
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
2, object oriented programming
2, object oriented programming
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Java SE 7 技術手冊投影片第 12 章 - 通用API
Java SE 7 技術手冊投影片第 12 章 - 通用API
使用 Eloquent ORM
使用 Eloquent ORM
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
SCJP ch17
SCJP ch17
12, string
12, string
4. 使用物件
4. 使用物件
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Ch07 使用 JSTL
Ch07 使用 JSTL
型態與運算子
型態與運算子
輸入輸出
輸入輸出
Excel vba實務應用 第4天
Excel vba實務應用 第4天
Python面向对象开发基础篇
Python面向对象开发基础篇
More from Justin Lin
Ch14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin
Ch12 Spring 起步走
Ch12 Spring 起步走
Justin Lin
Ch11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin
Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin
Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin
Ch06 使用 JSP
Ch06 使用 JSP
Justin Lin
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
Ch04 會話管理
Ch04 會話管理
Justin Lin
Ch03 請求與回應
Ch03 請求與回應
Justin Lin
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Justin Lin
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
Justin Lin
14. 進階主題
14. 進階主題
Justin Lin
13.並行、平行與非同步
13.並行、平行與非同步
Justin Lin
12. 除錯、測試與效能
12. 除錯、測試與效能
Justin Lin
11. 常用內建模組
11. 常用內建模組
Justin Lin
10. 資料永續與交換
10. 資料永續與交換
Justin Lin
9. 資料結構
9. 資料結構
Justin Lin
8. open() 與 io 模組
8. open() 與 io 模組
Justin Lin
More from Justin Lin
(20)
Ch14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Ch12 Spring 起步走
Ch12 Spring 起步走
Ch11 簡介 JavaMail
Ch11 簡介 JavaMail
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Ch09 整合資料庫
Ch09 整合資料庫
Ch08 自訂標籤
Ch08 自訂標籤
Ch06 使用 JSP
Ch06 使用 JSP
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch04 會話管理
Ch04 會話管理
Ch03 請求與回應
Ch03 請求與回應
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
14. 進階主題
14. 進階主題
13.並行、平行與非同步
13.並行、平行與非同步
12. 除錯、測試與效能
12. 除錯、測試與效能
11. 常用內建模組
11. 常用內建模組
10. 資料永續與交換
10. 資料永續與交換
9. 資料結構
9. 資料結構
8. open() 與 io 模組
8. open() 與 io 模組
Java SE 8 技術手冊第 4 章 - 認識物件
1.
2.
認識物件 學習目標 • 區分基本型態與類別型態 • 瞭解物件與參考的關係 •
從包裹器認識物件 • 以物件觀點看待陣列 • 認識字串的特性
3.
定義類別
4.
定義類別
5.
定義類別
6.
定義類別 • 可以觀察這個範例中,為個別物件指定資料 成員 的程式碼值
,你會發現是類似的 .. • 如果想在建立物件時,一併進行某個初始流 程,像是指定資料成員 ,則可以定義建構值 式( Constructor ),建構式是與類別名稱同 名的方法( Method )
7.
定義類別
8.
使用標準類別 • 使用 java.util.Scanner
9.
使用標準類別 • 1.0 –
0.8 的結果是?答案不是 0.2 ,而是 0.19999999999999996 ! • Java (包括其它程式語言)遵合 IEEE 754 浮 點數演算( Floating-point arithmetic )規範
10.
使用標準類別 • 使用 java.math.BigDecimal
11.
使用標準類別 • 呼叫 equals()
比較兩個 BigDecimal 實 質上是否相同
12.
物件指定與相等性 • 在 Java
中有兩大型態系統,基本型態與類別 型態,這很令人困擾… • 若不討論底層記憶體實際運作,初學者就必 須區分 = 與 == 運算用於基本型態與類別型 態的不同
13.
物件指定與相等性 • 當 =
用於基本型態時,是將 複製給變數值 • == 用於基本型態時,是比較兩個變數儲存的 是否相同值
14.
物件指定與相等性 • 如果你在操作物件, =
是用在指定參考名稱 參考某個物件 • == 是比較兩個參考名稱是否參考同一物件 • 白話來說, = 是用在將某個名牌綁到某個物 件,而 == 是用在比較兩個名牌是否 到同綁 一物件
15.
物件指定與相等性
16.
物件指定與相等性
17.
物件指定與相等性 • == 用在物件型態,是比較兩個名稱是否參考 同一物件,而
!= 正好相反,是比較兩個名 稱是否沒參考同一物件 • 實際上, equals() 可以自行定義如何比較 兩物件的內含值
18.
包裹基本型態 • 使用基本型態目的在於效率 • 然而更多時候,會使用類別建立實例,因為 物件本身可以攜帶更多資訊 •
如果要讓基本型態像物件一樣操作,可以使 用 Long 、 Integer 、 Double 、 Float 、 Boolean 、 Byte 等包裹器( Wrapper )類 別來包裹( Wrap )基本型態
19.
包裹基本型態
20.
自動裝箱、拆箱 • 從 J2SE
5.0 之後提供了自動裝箱( Auto boxing )功能,可以如下包裹基本型態: • 若使用自動裝箱功能來改寫一下 IntegerDemo 中的程式碼:
21.
自動裝箱、拆箱 • 自動裝箱運用的方法還可以如下: • 也可以使用更一般化的
Number 類別來自動 裝箱,例如:
22.
自動裝箱、拆箱 • J2SE 5.0
後可以自動裝箱,也可以自動拆箱 ( Auto unboxing ) • 在運算時也可以進行自動裝箱與拆箱:
23.
自動裝箱、拆箱 • 再來看一個例子:
24.
裝箱的 幕內 • 自動裝箱與拆箱的功能事實上是編譯器蜜糖 (
Compiler sugar )
25.
裝箱的 幕內 • 例如下面的程式是可以通過編譯的: NullPointerException
26.
裝箱的 幕內 • 如果你如下撰寫,結果會是如何?
27.
裝箱的 幕內 • 如果你如下撰寫,結果會是如何?
28.
裝箱的 幕內 • 察查
JDK 資料夾 src.zip 中的 java/lang 資料夾中的 Integer.java ,你會看到 valueOf() 的實作內容: • IntegerCache.low 預設 是值 - 128 , IntegerCache.high 預設 是值 127
29.
裝箱的 幕內 • IntegerCache.low
預設 是值 -128 ,執行 時期無法更改 • IntegerCache.high 預設 是值 127 ,可以 於 動啟 JVM 時,使用系統屬性 java.lang.Integer.IntegerCache.h igh 來指定
30.
裝箱的 幕內 • 別使用
== 或 != 來比較兩個物件實質內容值 是否相同(因為 == 與 != 是比較物件參考) ,而要使用 equals()
31.
陣列基礎 • 若要用程式記錄 Java
小考成績,若有 10 名 學生 …
32.
陣列基礎 • 索引由 0
開始 • 如果存取超出索引範圍,就會 出拋 ArrayIndexOutOfBoundsException
33.
陣列基礎 • 如果需求是循序地從頭至尾取出陣列 ,從值 JDK5
之後,有了更方便的增強式 for 迴圈 ( Enhanced for loop )語法
34.
陣列基礎 • 如果要設定 給陣列中某個元素,也是透過值 索引:
35.
陣列基礎 • 宣告二維陣列
36.
陣列基礎 • 可以用增強式 for
迴圈來改寫會比較簡潔:
37.
操作陣列物件 • 可以使用 new
關鍵字指定長度來建立陣列
38.
操作陣列物件 • 可以使用 java.util.Arrays
的 fill() 方法來設定新建陣列的元素值
39.
操作陣列物件 • 想在 new
陣列時一併指定初始值
40.
操作陣列物件 • 物件是根據類別而建立的實例,代表建立陣 列物件的類別定義在 ?答案是由哪
JVM 動態 產生。
41.
操作陣列物件 • 看看以下這個片段會顯示什麼?
42.
操作陣列物件 • 如果想用 new
建立二維陣列:
43.
操作陣列物件 • 應該可以知道為何要如下走訪二維陣列了:
44.
操作陣列物件 • 那麼這段增強式 for
語法是怎麼回事 ?呢
45.
操作陣列物件 • 如果使用 new
配置二維陣列後想要一併指定 初 :值
46.
操作陣列物件 • 也可以建立不規則陣列:
47.
操作陣列物件 • 範例中 new
int[2][] 僅提供第一個 [] 數 值,這表示 arr 參考的物件會有兩個索引, 但暫時參考至 null
48.
操作陣列物件 • 接著分別讓 arr[0]
參考至長度為 5 ,而元 素 為值 1 、 2 、 3 、 4 、 5 的陣列,以及 arr[0] 參考至長度為 3 ,而元素 為值 1 、 2 、 3 的陣列
49.
操作陣列物件 • 這麼建立陣列也是合法的:
50.
操作陣列物件 • 類別型態建立的陣列: • 上面這個片段建立了幾個
Integer 物件呢 ?
51.
操作陣列物件 • 每個索引其實都是 Integer
型態,可以讓 你參考至 Integer 實例
52.
操作陣列物件 • 上面這個範例也可以結合自動裝箱語法
53.
操作陣列物件 • 如果事先知道 Integer
陣列每個元素要放 什麼,可以如下: • 如果是 JDK5 以上,不結合自動裝箱來簡化 程式撰寫,就有點可惜了
54.
操作陣列物件 • 以下 Integer
二維陣列,建立了幾個 Integer 實例?
55.
陣列複製 • 以下這個並非陣列複製: • 要作陣列複製,基本作法是另行建立新陣列
56.
陣列複製 • 可以使用 System.arraycopy()
方法,這 個方法會使用原生方式複製每個索引元素, 比自行使用迴圈來得快:
57.
陣列複製 • 如果使用 JDK6
以上,還有個更方便的 Arrays.copyOf() 方法,你不用另行建立 新陣列, Arrays.copyOf() 會幫你建立
58.
陣列複製 • 事先建立的陣列長度不 怎麼辦?那就只好夠 建立新陣列,將原陣列內容複製至新陣列
59.
陣列複製 • 類別型態宣告的陣列則要注意參考的行為
60.
陣列複製
61.
陣列複製 • 實際上迴圈中僅將 c1
每個索引處所參考的 物件,也給 c2 每個索引來參考,並沒有實 際複製出 Clothes 物件 • 術語上來說,這叫作複製參考,或稱這個行 為是淺層複製( Shallow copy ) • 無論是 System.arraycopy() 或 Arrays.copyOf() ,用在類別型態宣告的 陣列時,都是執行淺層複製
62.
陣列複製
63.
陣列複製 • 這個範例執行所謂深層複製( Deep
copy )
64.
字串基礎 • 在 Java
中,字串是 java.lang.String 實 例,用來包裹字元陣列 • 可以用 "" 包括一串字元來建立字串
65.
字串基礎 • 已經有一個 char[]
陣列,也可以使用 new 來建構 String 實例 • 也可以使用 String 的 toCharArray() 方 法,以將字串以 char[] 陣列傳回:
66.
字串基礎 • 可以使用 +
運算來串接字串
67.
字串基礎 • 要將輸字串轉換為整數、浮點數等基本型態 • 如果無法剖析傳入的
String 實例,則會拋出 NumberFormatException
68.
字串基礎
69.
字串基礎 • 程式進入點 main()
中的 String[] args • 命令列引數( Command line arguments )
70.
字串特性 • Java 字串有一些必須注意的特性: –
字串常量與字串池 – 不可變動( Immutable )字串
71.
字串特性 • 以下會顯示 true
或 false ? • 底下這個程式碼 ?呢
72.
字串特性 • 以 ""
包括的字串,只要內容相同(序列、大 小寫相同),無論在程式碼中出現幾 次, JVM 都只會建立一個 String 實例,並 在字串池( String pool )中維護
73.
字串特性 • 用 ""
寫下的字串稱為字串常量( String literal ),既然你用 "Justin" 寫死了字串 內容,基於節省記憶體考量,自然就不用為 這些字串常量分別建立 String 實例
74.
字串特性
75.
字串特性 • 如果想比較字串實際字元內容是否相同,不 要使用 ==
,要使用 equals()
76.
字串特性 • 字串物件一旦建立,就無法更動物件內容 • 那麼使用
+ 串接字串是怎麼達到的?
77.
字串特性 • 使用 +
串接字串會產生新的 String 實例 • 這並不是告訴你,不要使用 + 串接字串 • 只是在告訴你,不要將 + 用在重複性的串接 場合,像是迴圈中或遞迴時使用 + 串接字串
78.
字串特性 • 使用程式顯示下圖的結果,你會怎麼寫 ?呢
79.
字串特性
80.
字串特性
81.
字串特性 • 請問以下會顯示 true
或 false ?
82.
字串編碼 • 你寫的 .java
原始碼 案是什麼編碼?檔 • 明明你的 Windows 純文字編輯器是 Big5 編 碼,為什麼會寫下的字串在 JVM 中會是 Unicode ?
83.
字串編碼 • 如果你的作業系統預設編碼是 Big5
,而你的 文字編輯器是使用 Big5 編碼
84.
字串編碼 • 產生的 .class
案,使用反組譯工具還原的檔 程式碼中,會看到以下的內容: • JVM 在載入 .class 之後,就是讀取 Unicode 編碼並產生對應的字串物件
85.
字串編碼 • 使用 javac
指令沒有指定 -encoding 選項時 ,會使用作業系統預設編碼 • 如果你的文字編譯器是使用 UTF-8 編碼,那 麼編譯時就要指定 -encoding 為 UTF-8
86.
詢查 Java API
文件
87.
詢查 Java API
文件
88.
詢查 Java API
文件
89.
詢查 Java API
文件
90.
詢查 Java API
文件
91.
詢查 Java API
文件
Download now