java的自動遞增和遞減,java數位遞增的數

本文目錄一覽:

Java編程是什麼

Java編程基礎Java語言由語法規則和類庫兩部分組成,其中語法規則確定了Java程序的書寫規範,學習好語法規則是Java語言,也是所有編程語言的基本功。本文主要向大家簡單介紹一下Java的語法規則。 Java語言與C/C++語言有着緊密的聯繫,Java中的許多術語來自於C++,起語法也來自於C++。因此Java的語法和c++的語法計劃一模一樣。下面簡單介紹一下Java的具體語法。

Java編程基礎Java語言由語法規則和類庫兩部分組成,其中語法規則確定了Java程序的書寫規範,學習好語法規則是Java語言,也是所有編程語言的基本功。本文主要向大家簡單介紹一下Java的語法規則。 Java語言與C/C++語言有着緊密的聯繫,Java中的許多術語來自於C++,起語法也來自於C++。因此Java的語法和c++的語法計劃一模一樣。下面簡單介紹一下Java的具體語法。

一、Java的詞法

1、標識符

標識符是類、變量和方法等的名字,作用是讓編譯器能夠識別它們。在Java語言中,標識符可以包含數字、字母、下劃線(_)和美圓符號($),但是不能以數字作為開頭。與C/C++語言不同的是,Java語言還可以將一些非拉丁字母包含在標識符中,這是因為Java語言使用的是Unicode字符,所有的十六進制00C0以上的Unicode字符都可以用在標識符中。但是Java語言的關鍵字是不能用來作為標識符的。

我們在使用標識符的時候應該盡量表達所要表示的類、變量、方法等的含義。另外,標識符中可以使用下劃線,我們應該充分利用這一點以提高程序的可讀性。

2、關鍵字

以下是Java的全部關鍵字:

abstract double int strictfp**

boolean else interface super

break extends long switch

byte final native synchronized

case finally new this

catch float package throw

char for private throws

class goto* protected transient

const* if public try

continue implements return void

default import short volatile

do instanceof static while

* 尚未使用的關鍵字

** 為Java 2增加的關鍵字

3、注釋

Java有三種形式的注釋:

第一種是C語言的傳統注釋方式,即將「/*」和「*/」之間的文本都視為注釋,這種注釋可以跨越多行。

第二種是C++風格的注釋,即將「//」之後直到行尾的文本都視為注釋,這種注釋只能包含一行。

第三種是Java新增加的注釋方式,即將「/**」和「*/」之間的文本都視為注釋,這種注釋也可以誇耀多行。注意,這種注釋方式生成的注釋將作為Javadoc文檔保存。

二、操作符

1、算術操作符

操作符 用途 優先級 結合性

++,– 自動遞增,自動遞減 2(僅次於括號) 從右到左

+,- 一元加,一元減 2 從右到左

*,/ 乘,除 3 從左到右

% 取余(求模) 3 從左到右

+,- 加,減 4 從左到右

2、布爾運算與關係運算符

操作符 用途 優先級 結合性

,,=,= 測試相對大小 6 從左到右

== 測試相等性 7 從左到右

!= 測試不等性 7 從左到右

?: 根據第一個操作數返回後兩個操作數之一 13 從左到右

! 非 2 從右到左

布爾與 8 從左到右

^ 異或 9 從左到右

| 布爾或 10 從左到右

條件與 11 從左到右

|| 條件或 12 從左到右

3、位操作符

操作符 用途 優先級 結合性

~ 非(位求補) 2 從右到左

, 左移,右移 5 從左到右

當作無符號右移 5 從左到右

位和 8 從左到右

^ 位異或 9 從左到右

| 位或 10 從左到右

4、賦值操作符

操作符 用途 優先級 結合性

= 賦值 14 從右到左

*= 操作同時賦值 14 從右到左

/= 操作同時賦值 14 從右到左

%= 操作同時賦值 14 從右到左

+= 操作同時賦值 14 從右到左

-= 操作同時賦值 14 從右到左

= 操作同時賦值 14 從右到左

= 操作同時賦值 14 從右到左

= 操作同時賦值 14 從右到左

^= 操作同時賦值 14 從右到左

|= 操作同時賦值 14 從右到左

= 操作同時賦值 14 從右到左

5、特殊操作符

cast操作符將一種數據類型轉換成為另一種數據類型,cast應寫成把要校正操作數的類型名放在括號中。

例如: int i; long l; l=7876547; i=(int)l; 如果給高精度的變量賦予一個低精度值,則不需校正。類型校正操作符的優先級為2,結合性為從右到左結合。

作者: 219.134.249.* 2006-3-29 19:46 回復此發言

——————————————————————————–

2 Java編程基礎

將以上講到的操作符的優先級總結如下:

優先級 運算符 結合順序

1 []數組運算 .點運算符 ()調用方法 從左到右

2 ! ~ ++ — +(一元加) -(一元減) ()強制類型轉換 new 從右到左

3 * / % 從左到右

4 +(二元加) -(二元減) 從左到右

5 從左到右

6 = = instanceof 從左到右

7 == != 從左到右

8 從左到右

9 ^ 從左到右

10 | 從左到右

11 從左到右

12 || 從左到右

13 ?: 從左到右

14 = += -= *= /= %= = |= ^= = = = 從右到左

三、常量

1、整型常量

在Java語言中,整型常量有三種形式,它們分別是:十進制、八進制、十六進制。

需要注意的是十進制數不能以0開頭,這是因為八進制的數是以0開頭的,而十六進制數以0x或0X開頭。

2、浮點型常量

浮點數只能表示十進制數。浮點數有兩種表示方法,即標準表示法和科學記數法。浮點數又分為單精度數和雙精度數。

3、布爾型常量

布爾型常量有兩個值:ture(或TURE)和false(或FALSE)它們分別表示真和假,這兩個值用來表示事物的狀態,它們必居其一。通過測量布爾值可以判斷是否執行某個步驟。

4、字符型常量

字符型常量是一個單一的字符,其形式是由兩個單引號引起來的一個字符。但是兩個單引號引起來的不能是單引號和反斜杠,即『』和『\』是不正確的寫法。

大家一定要記住,Java語言中的字符是16位的Unicode字符,這與C/C++等語言是不一樣的。

同C/C++語言一樣,Java語言也有轉意序列。Java中的轉意序列的功能見下表:

轉義序列 標準形式 功能描述

\ 繼續

\n NL 回車換行

\t HT 水平製表符

\b BS 後退一格

\r CR 回車不換行

\f FF 換頁

\ 單引號

\\ \ 反斜杠

\” ” 雙引號

\ddd 0ddd 八進制模式

\xddd 0xddd 十六進制模式

\udddd 0xdddd Unicode雙位元組字符

字符串常量

字符串常量是由雙引號引起來的一系列字符,與C/C++語言中不同的是,Java語言中的字符串不是通過字符數組來實現的,而是通過字符串類(即String類)來實現的。

四、變量和數據類型

在Java中,數據的類型可以分為四種:基本數據類型、數組類型、類和接口類型。任何數據都一定是上述數據類型的一種。

其中基本數據類型可以分為四大類:布爾型、字符型、整數型和浮點型。這些類型的數據與前面介紹的常量的類型基本相同,在此不再多說。下面將整數型和浮點型變量的取值範圍列出:

表一、

類型 寬度 取值範圍

byte 8位 -256到256

short 16位 -32768到32767

int 32位 -2147483648到2147483647

long 64位 -9223372036854775808到9223372036854775807

表二、

進制 整數 長整數

十進制 最大正整數 2147483647(2的31次方減1) 923372036854775807L(2的63次方減1)

八進制 最大正整數 077777777777(2的31次方減1) 07777777777777777777L(2的63次方減1)

最小負整數 020000000000(-2的31次方) 04000000000000000000L(-2的63次方)

十六進制 最大正整數 0x7fffffff(2的31次方減1) 0x7fffffffffffffffL(2的63次方減1)

最小負整數 0x80000000(-2的31次方) 0x8000000000000000L(-2的63次方)

浮點數能表示的數值從小到大分別是:負無窮大、負有限值、負零、正零、正有限值及正無窮大。其中正零和負零在進行數值比較的時候是相等的,但仍有辦法分辨這兩個值,例如在進行1.0/0.0的時候會得到正無窮大的結果。其它非零非無窮大的有限值是以s*m*(2^e)來表示的,s和m的取值範圍見下表:

表三、

類型 s m e

float +1或-1 小於2的24次方的正整數 149到104的整數

double +1或-1 小於2的53次方的正整數 1045到1000的整數

表四、float 最大值 3640282347e+38f

非零最小值 1.40239846e-45f

double 最大值 1.79769313486231570e+308

非零最小值 4.940656458412465334e-324

作者: 219.134.249.* 2006-3-29 19:46 回復此發言

——————————————————————————–

3 Java編程基礎

另外浮點數還有一些特殊值,見下表:float 最大值 Float.MAX_VALUE

最小值 Float.MIN_VALUE

正無窮大 Float.POSITIVE_INFINITY

負無窮大 Float.NEGATIVE_INFINITY

NaN Float.NaN

double 最大值 Double.MAX_VALUE

最小值 Double.MIN_VALUE

正無窮大 Double.POSITIVE_INFINITY

負無窮大 Double.NEGATIVE_INFINITY

NaN Double.NaN

與C/C++語言中不同的是,在Java語言中,所有的基本數據類型都有預設值,就是說當我們聲明一個變量時,即使我們沒有對它賦值,它的值也是一定的,而不像在C/C++中那樣是不可預測的。具體個類型的預設值見下表:

基本數據類型 預設值

Boolean false

Char \u000

Byte (byte)0

Short (short)0

Int 0

Long 0L

Float 0.0L

Double 0.0d

五、Java與C/C++的比較

由於Java的語法直接來源於C/C++,所以Java的程序控制語句與C/C++一模一樣,在此不再多說。以下重點介紹一下Java與C/C++的不同。

指針

大家在使用C語言編程的時候想必都曾經因為指針的複雜計算而煩惱,在C/C++語言編程過程中,指針可能引起許多錯誤,這些複雜的指針算法所產生的錯誤常常讓人迷惑不解,導致C/C++程序員在此浪費了大量的時間。考慮到這種原因,Java中取消了指針。指針的功能由參考(reference)所取代,這使得Java中對複雜數據結構的實現更加容易,因為用對象和對象數組實現複雜的數據結構更可靠。

函數

在Java中沒有C/C++中應用廣泛的函數,C/C++中通過函數實現的功能在Java中都是通過類和方法來實現的。

繼承

C++支持多重繼承,這是一個從多個父類中派生一個類的有效辦法,但這種派生很複雜,也很容易產生問題。因此,Java中沒有採用多重繼承,但Java的Objective C協議接口能完成C++中多重繼承的所有功能。

goto語句

大家知道,在使用高級語言編程時過多的使用goto語句會使程序變得十分混亂,因此Java中也沒有使用goto語句。但是不可否認,當程序比較容易控制的時候,適當使用goto語句能使程序的運行更快捷,因此Java中使用了多重break和continue語句(允許break和continue語句使用標籤)實現C++種goto語句的功能。

聯合和結構

在C++中有三種數據結構:聯合、結構和類;Java中只有類,它可以實現上述三者的功能。

字符串

在C/C++中,字符串是通過字符數組實現的,但是由於數組的空間不是動態分配的,這容易出現越界錯誤,例如:常有預先設定的字符數組不能容納後輸入的字符串。在Java中,字符串是一類特定的對象,這使得字符串更具有一致性和可預見性。

Typedef、Define和預處理器

Java中不需要#define語句、預處理器或者typedef,但需要頭文件。在Java中一個類的信息必須包含在一個文件中,而C/C++中有關類的信息可能分散在多個文件中。

數據類型的自動強制轉換

在Java中強制一種類型的數據元素變成一種不太精確的數據類型需要編程人

JAVA編程思想一共有幾章?????

一共 17 章

強烈建議你去買這本書!雖然電子文檔很多,百度一下到處都是,但是不很方便!這本書看了真的思想都變了!!

第1章 對象入門

1.1 抽象的進步

1.2 對象的接口

1.3 實現方案的隱藏

1.4 方案的重複使用

1.5 繼承:重新使用接口

1.5.1 改善基礎類

1.5.2 等價和類似關係

1.6 多形對象的互換使用

1.6.1 動態綁定

1.6.2 抽象的基礎類和接口

1.7 對象的創建和存在時間

1.7.1 集合與繼承器

1.7.2 單根結構

1.7.3 集合庫與方便使用集合

1.7.4 清除時的困境:由誰負責清除?

1.8 違例控制:解決錯誤

1.9 多線程

1.10 永久性

1.11 Java和互聯網

1.11.1 什麼是Web?

1.11.2 客戶端編程

1.11.3 服務器端編程

1.11.4 一個獨立的領域:應用程序

1.12 分析和設計

1.12.1 不要迷失

1.12.2 階段0:擬出一個計劃

1.12.3 階段1:要製作什麼?

1.12.4 階段2:開始構建?

1.12.5 階段3:正式創建

1.12.6 階段4:校訂

1.12.7 計劃的回報

1.13 Java還是C++?

第2章 一切都是對象

2.1 用句柄操縱對象

2.2 必須創建所有對象

2.2.1 保存在什麼地方

2.2.2 特殊情況:主類型

2.2.3 Java中的數組

2.3 絕對不要清除對象

2.3.1 作用域

2.3.2 對象的作用域

2.4 新建數據類型:類

2.4.1 字段和方法

2.5 方法、自變量和返回值

2.5.1 自變量列表

2.6 構建Java程序

2.6.1 名字的可見性

2.6.2 使用其他組件

2.6.3 static關鍵字

2.7 我們的第一個Java程序

2.8 注釋和嵌入文檔

2.8.1 注釋文檔

2.8.2 具體語法

2.8.3 嵌入HTML

2.8.4 @see:引用其他類

2.8.5 類文檔標記

2.8.6 變量文檔標記

2.8.7 方法文檔標記

2.8.8 文檔示例

2.9 編碼樣式

2.10 總結

2.11 練習

第3章 控制程序流程

3.1 使用Java運算符

3.1.1 優先級

3.1.2 賦值

3.1.3 算術運算符

3.1.4 自動遞增和遞減

3.1.5 關係運算符

3.1.6 邏輯運算符

3.1.7 按位運算符

3.1.8 移位運算符

3.1.9 三元if-else運算符

3.1.10 逗號運算符

3.1.11 字串運算符+

3.1.12 運算符常規操作規則

3.1.13 造型運算符

3.1.14 Java沒有「sizeof」

3.1.15 複習計算順序

3.1.16 運算符總結

3.2 執行控制

3.2.1 真和假

3.2.2 if-else

3.2.3 反覆

3.2.4 do-while

3.2.5 for

3.2.6 中斷和繼續

3.2.7 切換

3.3 總結

3.4 練習

第4章 初始化和清除

4.1 由構建器保證初始化

4.2 方法過載

4.2.1 區分過載方法

4.2.2 主類型的過載

4.2.3 返回值過載

4.2.4 默認構建器

4.2.5 this關鍵字

4.3 清除:收尾和垃圾收集

4.3.1 finalize()用途何在

4.3.2 必須執行清除

4.4 成員初始化

4.4.1 規定初始化

4.4.2 構建器初始化

4.5 數組初始化

4.5.1 多維數組

4.6 總結

4.7 練習

第5章 隱藏實施過程

5.1 包:庫單元

5.1.1 創建獨一無二的包名

5.1.2 自定義工具庫

5.1.3 利用導入改變行為

5.1.4 包的停用

5.2 Java訪問指示符

5.2.1 「友好的」

5.2.2 public:接口訪問

5.2.3 private:不能接觸

5.2.4 protected:「友好的一種」

5.3 接口與實現

5.4 類訪問

5.5 總結

5.6 練習

第6章 類再生

6.1 合成的語法

6.2 繼承的語法

6.2.1 初始化基礎類

6.3 合成與繼承的結合

6.3.1 確保正確的清除

6.3.2 名字的隱藏

6.4 到底選擇合成還是繼承

6.5 protected

6.6 遞增開發

6.7 上溯造型

6.7.1 何謂「上溯造型」?

6.8 final關鍵字

6.8.1 final數據

6.8.2 final方法

6.8.3 final類

6.8.4 final的注意事項

6.9 初始化和類裝載

6.9.1 繼承初始化

6.10 總結

6.11 練習

第7章 多形性

7.1 上溯造型

7.1.1 為什麼要上溯造型

7.2 深入理解

7.2.1 方法調用的綁定

7.2.2 產生正確的行為

7.2.3 擴展性

7.3 覆蓋與過載

7.4 抽象類和方法

7.5 接口

7.5.1 Java的「多重繼承」

7.5.2 通過繼承擴展接口

7.5.3 常數分組

7.5.4 初始化接口中的字段

7.6 內部類

7.6.1 內部類和上溯造型

7.6.2 方法和作用域中的內部類

7.6.3 鏈接到外部類

7.6.4 static內部類

7.6.5 引用外部類對象

7.6.6 從內部類繼承

7.6.7 內部類可以覆蓋嗎?

7.6.8 內部類標識符

7.6.9 為什麼要用內部類:控制框架

7.7 構建器和多形性

7.7.1 構建器的調用順序

7.7.2 繼承和finalize()

7.7.3 構建器內部的多形性方法的行為

7.8 通過繼承進行設計

7.8.1 純繼承與擴展

7.8.2 下溯造型與運行期類型標識

7.9 總結

7.10 練習

第8章 對象的容納

8.1 數組

8.1.1 數組和第一類對象

8.1.2 數組的返回

8.2 集合

8.2.1 缺點:類型未知

8.3 枚舉器(反覆器)

8.4 集合的類型

8.4.1 Vector

8.4.2 BitSet

8.4.3 Stack

8.4.4 Hashtable

8.4.5 再論枚舉器

8.5 排序

8.6 通用集合庫

8.7 新集合

8.7.1 使用Collections

8.7.2 使用Lists

8.7.3 使用Sets

8.7.4 使用Maps

8.7.5 決定實施方案

8.7.6 未支持的操作

8.7.7 排序和搜索

8.7.8 實用工具

8.8 總結

8.9 練習

第9章 違例差錯控制

9.1 基本違例

9.1.1 違例自變量

9.2 違例的捕獲

9.2.1 try塊

9.2.2 違例控制器

9.2.3 違例規範

9.2.4 捕獲所有違例

9.2.5 重新「擲」出違例

9.3 標準Java違例

9.3.1 RuntimeException的特殊情況

9.4 創建自己的違例

9.5 違例的限制

9.6 用finally清除

9.6.1 用finally做什麼

9.6.2 缺點:丟失的違例

9.7 構建器

9.8 違例匹配

9.8.1 違例準則

9.9 總結

9.10 練習

第10章 Java IO系統

10.1 輸入和輸出

10.1.1 InputStream的類型

10.1.2 OutputStream的類型

10.2 增添屬性和有用的接口

10.2.1 通過FilterInputStream從InputStream里讀入數據

10.2.2 通過FilterOutputStream向OutputStream里寫入數據

10.3 本身的缺陷:RandomAccessFile

10.4 File類

10.4.1 目錄列表器

10.4.2 檢查與創建目錄

10.5 IO流的典型應用

10.5.1 輸入流

10.5.2 輸出流

10.5.3 快捷文件處理

10.5.4 從標準輸入中讀取數據

10.5.5 管道數據流

10.6 StreamTokenizer

10.6.1 StringTokenizer

10.7 Java 1.1的IO流

10.7.1 數據的發起與接收

10.7.2 修改數據流的行為

10.7.3 未改變的類

10.7.4 一個例子

10.7.5 重定向標準IO

10.8 壓縮

10.8.1 用GZIP進行簡單壓縮

10.8.2 用Zip進行多文件保存

10.8.3 Java歸檔(jar)實用程序

10.9 對象串聯

10.9.1 尋找類

10.9.2 序列化的控制

10.9.3 利用「持久性」

10.10 總結

10.11 練習

第11章 運行期類型鑒定

11.1 對RTTI的需要

11.1.1 Class對象

11.1.2 造型前的檢查

11.2 RTTI語法

11.3 反射:運行期類信息

11.3.1 一個類方法提取器

11.4 總結

11.5 練習

第12章 傳遞和返回對象

12.1 傳遞句柄

12.1.1 別名問題

12.2 製作本地副本

12.2.1 按值傳遞

12.2.2 克隆對象

12.2.3 使類具有克隆能力

12.2.4 成功的克隆

12.2.5 Object.clone()的效果

12.2.6 克隆合成對象

12.2.7 用Vector進行深層複製

12.2.8 通過序列化進行深層複製

12.2.9 使克隆具有更大的深度

12.2.10 為什麼有這個奇怪的設計

12.3 克隆的控制

12.3.1 副本構建器

12.4 只讀類

12.4.1 創建只讀類

12.4.2 「一成不變」的弊端

12.4.3 不變字串

12.4.4 String和StringBuffer類

12.4.5 字串的特殊性

12.5 總結

12.6 練習

第13章 創建窗口和程序片

13.1 為何要用AWT?

13.2 基本程序片

13.2.1 程序片的測試

13.2.2 一個更圖形化的例子

13.2.3 框架方法的演示

13.3 製作按鈕

13.4 捕獲事件

13.5 文本字段

13.6 文本區域

13.7 標籤

13.8 複選框

13.9 單選鈕

13.10 下拉列表

13.11 列表框

13.11.1 handleEvent()

13.12 布局的控制

13.12.1 FlowLayout

13.12.2 BorderLayout

13.12.3 GridLayout

13.12.4 CardLayout

13.12.5 GridBagLayout

13.13 action的替用品

13.14 程序片的局限

13.14.1 程序片的優點

13.15 視窗化應用

13.15.1 菜單

13.15.2 對話框

13.16 新型AWT

13.16.1 新的事件模型

13.16.2 事件和接收者類型

13.16.3 用Java 1.1 AWT製作窗口和程序片

13.16.4 再探早期示例

13.16.5 動態綁定事件

13.16.6 將商業邏輯與UI邏輯區分開

13.16.7 推薦編碼方法

13.17 Java 1.1 UI API

13.17.1 桌面顏色

13.17.2 打印

13.17.3 剪貼板

13.18 可視編程和Beans

13.18.1 什麼是Bean

13.18.2 用Introspector提取BeanInfo

13.18.3 一個更複雜的Bean

13.18.4 Bean的封裝

13.18.5 更複雜的Bean支持

13.18.6 Bean更多的知識

13.19 Swing入門

13.19.1 Swing有哪些優點

13.19.2 方便的轉換

13.19.3 顯示框架

13.19.4 工具提示

13.19.5 邊框

13.19.6 按鈕

13.19.7 按鈕組

13.19.8 圖標

13.19.9 菜單

13.19.10 彈出式菜單

13.19.11 列表框和組合框

13.19.12 滑桿和進度指示條

13.19.13 樹

13.19.14 表格

13.19.15 卡片式對話框

13.19.16 Swing消息框

13.19.17 Swing更多的知識

13.20 總結

13.21 練習

第14章 多線程

14.1 反應靈敏的用戶界面

14.1.1 從線程繼承

14.1.2 針對用戶界面的多線程

14.1.3 用主類合併線程

14.1.4 製作多個線程

14.1.5 Daemon線程

14.2 共享有限的資源

14.2.1 資源訪問的錯誤方法

14.2.2 Java如何共享資源

14.2.3 回顧Java Beans

14.3 堵塞

14.3.1 為何會堵塞

14.3.2 死鎖

14.4 優先級

14.4.1 線程組

14.5 回顧runnable

14.5.1 過多的線程

14.6 總結

14.7 練習

第15章 網絡編程

15.1 機器的標識

15.1.1 服務器和客戶機

15.1.2 端口:機器內獨一無二的場所

15.2 套接字

15.2.1 一個簡單的服務器和客戶機程序

15.3 服務多個客戶

15.4 數據報

15.5 一個Web應用

15.5.1 服務器應用

15.5.2 NameSender程序片

15.5.3 15.5.3 要注意的問題

15.6 Java與CGI的溝通

15.6.1 CGI數據的編碼

15.6.2 程序片

15.6.3 用C++寫的CGI程序

15.6.4 POST的概念

15.7 用JDBC連接數據庫

15.7.1 獲得學習示例

15.7.2 查找程序的GUI版本

15.7.3 JDBC API為何如何複雜

15.8 遠程方法

15.8.1 遠程接口概念

15.8.2 遠程接口的實施

15.8.3 創建根與干

15.8.4 使用遠程對象

15.8.5 RMI的替選方案

15.9 總結

15.10 練習

第16章 設計範式

16.1 範式的概念

16.1.1 單子

16.1.2 範式分類

16.2 觀察器範式

16.3 模擬垃圾回收站

16.4 改進設計

16.4.1 「製作更多的對象」

16.4.2 用於原型創建的一個範式

16.5 抽象的應用

16.6 多重派遣

16.6.1 實現雙重派遣

16.7 訪問器範式

16.8 RTTI有害嗎

16.9 總結

16.10 練習

第17章 項目

17.1 文字處理

17.1.1 提取代碼列表

17.1.2 檢查大小寫樣式

17.2 方法查找工具

17.3 複雜性理論

17.4 總結

17.5 練習

Java中的強制類型轉換是如何轉換的?

java中數據類型的強制轉換是通過強制轉換語句完成的,強制轉換語句的格式為「目標數據類型  變量 = (目標數據類型) 數據;」。下面給出例子:

1、定義兩個位元組數據類型a、b、c,分別賦予1和2和a+b的值,進行加法運算的式子a+b=3,得出的結果「3」將會被編譯環境判定為整形數據,把這個整形數據賦值給c,系統將會報錯,這樣就需要用到格式為「目標數據類型  變量 = (目標數據類型) 數據;」的強制轉換語句。

2、根據強制轉換語句的格式,易得「byte c = (byte)(a+b);」;

3、這樣就把整形數據的「3」賦值給位元組數據類型的c了,其中完成數據的強制類型轉換。

擴展資料:

基本類型 轉換原則:

1、類型轉換主要在在 賦值、方法調用、算術運算 三種情況下發生。

a、賦值和方法調用 轉換規則:從低位類型到高位類型自動轉換;從高位類型到低位類型需要強制類型轉換:

(1)布爾型和其它基本數據類型之間不能相互轉換;

(2)byte型可以轉換為short、int、、long、float和double;

(3)short可轉換為int、long、float和double;

(4)char可轉換為int、long、float和double;

(5)int可轉換為long、float和double;

(6)long可轉換為float和double;

(7)float可轉換為double;

b、算術運算 中的類型轉換:

1、基本就是先轉換為高位數據類型,再參加運算,結果也是最高位的數據類型;

2、byte short char運算會轉換為Int;

(1)如操作數之一為double,則另一個操作數先被轉化為double,再參與算術運算。

(2)如兩操作數均不為double,當操作數之一為float,則另一操作數先被轉換為float,再參與運算。

(3)如兩操作數均不為double或float,當操作數之一為long,、則另一操作數先被轉換為long,再參與算術運算。

(4)如兩操作數均不為double、float或long,則兩操作數先被轉換為int,再參與運算。

特殊:

(1)如採用+=、*=等縮略形式的運算符,系統會自動強制將運算結果轉換為目標變量的類型。

(2)  當運算符為自動遞增運算符(++)或自動遞減運算符(–)時,如果操作數為byte,short或char類型不發生改變;

參考資料:百度百科 – java關鍵字

JAVA編程思想一共有幾章

一共 17 章

強烈建議你去買這本書!雖然電子文檔很多,百度一下到處都是,但是不很方便!這本書看了真的思想都變了!!

第1章 對象入門

1.1 抽象的進步

1.2 對象的接口

1.3 實現方案的隱藏

1.4 方案的重複使用

1.5 繼承:重新使用接口

1.5.1 改善基礎類

1.5.2 等價和類似關係

1.6 多形對象的互換使用

1.6.1 動態綁定

1.6.2 抽象的基礎類和接口

1.7 對象的創建和存在時間

1.7.1 集合與繼承器

1.7.2 單根結構

1.7.3 集合庫與方便使用集合

1.7.4 清除時的困境:由誰負責清除?

1.8 違例控制:解決錯誤

1.9 多線程

1.10 永久性

1.11 Java和互聯網

1.11.1 什麼是Web?

1.11.2 客戶端編程

1.11.3 服務器端編程

1.11.4 一個獨立的領域:應用程序

1.12 分析和設計

1.12.1 不要迷失

1.12.2 階段0:擬出一個計劃

1.12.3 階段1:要製作什麼?

1.12.4 階段2:開始構建?

1.12.5 階段3:正式創建

1.12.6 階段4:校訂

1.12.7 計劃的回報

1.13 Java還是C++?

第2章 一切都是對象

2.1 用句柄操縱對象

2.2 必須創建所有對象

2.2.1 保存在什麼地方

2.2.2 特殊情況:主類型

2.2.3 Java中的數組

2.3 絕對不要清除對象

2.3.1 作用域

2.3.2 對象的作用域

2.4 新建數據類型:類

2.4.1 字段和方法

2.5 方法、自變量和返回值

2.5.1 自變量列表

2.6 構建Java程序

2.6.1 名字的可見性

2.6.2 使用其他組件

2.6.3 static關鍵字

2.7 我們的第一個Java程序

2.8 注釋和嵌入文檔

2.8.1 注釋文檔

2.8.2 具體語法

2.8.3 嵌入HTML

2.8.4 @see:引用其他類

2.8.5 類文檔標記

2.8.6 變量文檔標記

2.8.7 方法文檔標記

2.8.8 文檔示例

2.9 編碼樣式

2.10 總結

2.11 練習

第3章 控制程序流程

3.1 使用Java運算符

3.1.1 優先級

3.1.2 賦值

3.1.3 算術運算符

3.1.4 自動遞增和遞減

3.1.5 關係運算符

3.1.6 邏輯運算符

3.1.7 按位運算符

3.1.8 移位運算符

3.1.9 三元if-else運算符

3.1.10 逗號運算符

3.1.11 字串運算符+

3.1.12 運算符常規操作規則

3.1.13 造型運算符

3.1.14 Java沒有「sizeof」

3.1.15 複習計算順序

3.1.16 運算符總結

3.2 執行控制

3.2.1 真和假

3.2.2 if-else

3.2.3 反覆

3.2.4 do-while

3.2.5 for

3.2.6 中斷和繼續

3.2.7 切換

3.3 總結

3.4 練習

第4章 初始化和清除

4.1 由構建器保證初始化

4.2 方法過載

4.2.1 區分過載方法

4.2.2 主類型的過載

4.2.3 返回值過載

4.2.4 默認構建器

4.2.5 this關鍵字

4.3 清除:收尾和垃圾收集

4.3.1 finalize()用途何在

4.3.2 必須執行清除

4.4 成員初始化

4.4.1 規定初始化

4.4.2 構建器初始化

4.5 數組初始化

4.5.1 多維數組

4.6 總結

4.7 練習

第5章 隱藏實施過程

5.1 包:庫單元

5.1.1 創建獨一無二的包名

5.1.2 自定義工具庫

5.1.3 利用導入改變行為

5.1.4 包的停用

5.2 Java訪問指示符

5.2.1 「友好的」

5.2.2 public:接口訪問

5.2.3 private:不能接觸

5.2.4 protected:「友好的一種」

5.3 接口與實現

5.4 類訪問

5.5 總結

5.6 練習

第6章 類再生

6.1 合成的語法

6.2 繼承的語法

6.2.1 初始化基礎類

6.3 合成與繼承的結合

6.3.1 確保正確的清除

6.3.2 名字的隱藏

6.4 到底選擇合成還是繼承

6.5 protected

6.6 遞增開發

6.7 上溯造型

6.7.1 何謂「上溯造型」?

6.8 final關鍵字

6.8.1 final數據

6.8.2 final方法

6.8.3 final類

6.8.4 final的注意事項

6.9 初始化和類裝載

6.9.1 繼承初始化

6.10 總結

6.11 練習

第7章 多形性

7.1 上溯造型

7.1.1 為什麼要上溯造型

7.2 深入理解

7.2.1 方法調用的綁定

7.2.2 產生正確的行為

7.2.3 擴展性

7.3 覆蓋與過載

7.4 抽象類和方法

7.5 接口

7.5.1 Java的「多重繼承」

7.5.2 通過繼承擴展接口

7.5.3 常數分組

7.5.4 初始化接口中的字段

7.6 內部類

7.6.1 內部類和上溯造型

7.6.2 方法和作用域中的內部類

7.6.3 鏈接到外部類

7.6.4 static內部類

7.6.5 引用外部類對象

7.6.6 從內部類繼承

7.6.7 內部類可以覆蓋嗎?

7.6.8 內部類標識符

7.6.9 為什麼要用內部類:控制框架

7.7 構建器和多形性

7.7.1 構建器的調用順序

7.7.2 繼承和finalize()

7.7.3 構建器內部的多形性方法的行為

7.8 通過繼承進行設計

7.8.1 純繼承與擴展

7.8.2 下溯造型與運行期類型標識

7.9 總結

7.10 練習

第8章 對象的容納

8.1 數組

8.1.1 數組和第一類對象

8.1.2 數組的返回

8.2 集合

8.2.1 缺點:類型未知

8.3 枚舉器(反覆器)

8.4 集合的類型

8.4.1 Vector

8.4.2 BitSet

8.4.3 Stack

8.4.4 Hashtable

8.4.5 再論枚舉器

8.5 排序

8.6 通用集合庫

8.7 新集合

8.7.1 使用Collections

8.7.2 使用Lists

8.7.3 使用Sets

8.7.4 使用Maps

8.7.5 決定實施方案

8.7.6 未支持的操作

8.7.7 排序和搜索

8.7.8 實用工具

8.8 總結

8.9 練習

第9章 違例差錯控制

9.1 基本違例

9.1.1 違例自變量

9.2 違例的捕獲

9.2.1 try塊

9.2.2 違例控制器

9.2.3 違例規範

9.2.4 捕獲所有違例

9.2.5 重新「擲」出違例

9.3 標準Java違例

9.3.1 RuntimeException的特殊情況

9.4 創建自己的違例

9.5 違例的限制

9.6 用finally清除

9.6.1 用finally做什麼

9.6.2 缺點:丟失的違例

9.7 構建器

9.8 違例匹配

9.8.1 違例準則

9.9 總結

9.10 練習

第10章 Java IO系統

10.1 輸入和輸出

10.1.1 InputStream的類型

10.1.2 OutputStream的類型

10.2 增添屬性和有用的接口

10.2.1 通過FilterInputStream從InputStream里讀入數據

10.2.2 通過FilterOutputStream向OutputStream里寫入數據

10.3 本身的缺陷:RandomAccessFile

10.4 File類

10.4.1 目錄列表器

10.4.2 檢查與創建目錄

10.5 IO流的典型應用

10.5.1 輸入流

10.5.2 輸出流

10.5.3 快捷文件處理

10.5.4 從標準輸入中讀取數據

10.5.5 管道數據流

10.6 StreamTokenizer

10.6.1 StringTokenizer

10.7 Java 1.1的IO流

10.7.1 數據的發起與接收

10.7.2 修改數據流的行為

10.7.3 未改變的類

10.7.4 一個例子

10.7.5 重定向標準IO

10.8 壓縮

10.8.1 用GZIP進行簡單壓縮

10.8.2 用Zip進行多文件保存

10.8.3 Java歸檔(jar)實用程序

10.9 對象串聯

10.9.1 尋找類

10.9.2 序列化的控制

10.9.3 利用「持久性」

10.10 總結

10.11 練習

第11章 運行期類型鑒定

11.1 對RTTI的需要

11.1.1 Class對象

11.1.2 造型前的檢查

11.2 RTTI語法

11.3 反射:運行期類信息

11.3.1 一個類方法提取器

11.4 總結

11.5 練習

第12章 傳遞和返回對象

12.1 傳遞句柄

12.1.1 別名問題

12.2 製作本地副本

12.2.1 按值傳遞

12.2.2 克隆對象

12.2.3 使類具有克隆能力

12.2.4 成功的克隆

12.2.5 Object.clone()的效果

12.2.6 克隆合成對象

12.2.7 用Vector進行深層複製

12.2.8 通過序列化進行深層複製

12.2.9 使克隆具有更大的深度

12.2.10 為什麼有這個奇怪的設計

12.3 克隆的控制

12.3.1 副本構建器

12.4 只讀類

12.4.1 創建只讀類

12.4.2 「一成不變」的弊端

12.4.3 不變字串

12.4.4 String和StringBuffer類

12.4.5 字串的特殊性

12.5 總結

12.6 練習

第13章 創建窗口和程序片

13.1 為何要用AWT?

13.2 基本程序片

13.2.1 程序片的測試

13.2.2 一個更圖形化的例子

13.2.3 框架方法的演示

13.3 製作按鈕

13.4 捕獲事件

13.5 文本字段

13.6 文本區域

13.7 標籤

13.8 複選框

13.9 單選鈕

13.10 下拉列表

13.11 列表框

13.11.1 handleEvent()

13.12 布局的控制

13.12.1 FlowLayout

13.12.2 BorderLayout

13.12.3 GridLayout

13.12.4 CardLayout

13.12.5 GridBagLayout

13.13 action的替用品

13.14 程序片的局限

13.14.1 程序片的優點

13.15 視窗化應用

13.15.1 菜單

13.15.2 對話框

13.16 新型AWT

13.16.1 新的事件模型

13.16.2 事件和接收者類型

13.16.3 用Java 1.1 AWT製作窗口和程序片

13.16.4 再探早期示例

13.16.5 動態綁定事件

13.16.6 將商業邏輯與UI邏輯區分開

13.16.7 推薦編碼方法

13.17 Java 1.1 UI API

13.17.1 桌面顏色

13.17.2 打印

13.17.3 剪貼板

13.18 可視編程和Beans

13.18.1 什麼是Bean

13.18.2 用Introspector提取BeanInfo

13.18.3 一個更複雜的Bean

13.18.4 Bean的封裝

13.18.5 更複雜的Bean支持

13.18.6 Bean更多的知識

13.19 Swing入門

13.19.1 Swing有哪些優點

13.19.2 方便的轉換

13.19.3 顯示框架

13.19.4 工具提示

13.19.5 邊框

13.19.6 按鈕

13.19.7 按鈕組

13.19.8 圖標

13.19.9 菜單

13.19.10 彈出式菜單

13.19.11 列表框和組合框

13.19.12 滑桿和進度指示條

13.19.13 樹

13.19.14 表格

13.19.15 卡片式對話框

13.19.16 Swing消息框

13.19.17 Swing更多的知識

13.20 總結

13.21 練習

第14章 多線程

14.1 反應靈敏的用戶界面

14.1.1 從線程繼承

14.1.2 針對用戶界面的多線程

14.1.3 用主類合併線程

14.1.4 製作多個線程

14.1.5 Daemon線程

14.2 共享有限的資源

14.2.1 資源訪問的錯誤方法

14.2.2 Java如何共享資源

14.2.3 回顧Java Beans

14.3 堵塞

14.3.1 為何會堵塞

14.3.2 死鎖

14.4 優先級

14.4.1 線程組

14.5 回顧runnable

14.5.1 過多的線程

14.6 總結

14.7 練習

第15章 網絡編程

15.1 機器的標識

15.1.1 服務器和客戶機

15.1.2 端口:機器內獨一無二的場所

15.2 套接字

15.2.1 一個簡單的服務器和客戶機程序

15.3 服務多個客戶

15.4 數據報

15.5 一個Web應用

15.5.1 服務器應用

15.5.2 NameSender程序片

15.5.3 15.5.3 要注意的問題

15.6 Java與CGI的溝通

15.6.1 CGI數據的編碼

15.6.2 程序片

15.6.3 用C++寫的CGI程序

15.6.4 POST的概念

15.7 用JDBC連接數據庫

15.7.1 獲得學習示例

15.7.2 查找程序的GUI版本

15.7.3 JDBC API為何如何複雜

15.8 遠程方法

15.8.1 遠程接口概念

15.8.2 遠程接口的實施

15.8.3 創建根與干

15.8.4 使用遠程對象

15.8.5 RMI的替選方案

15.9 總結

15.10 練習

第16章 設計範式

16.1 範式的概念

16.1.1 單子

16.1.2 範式分類

16.2 觀察器範式

16.3 模擬垃圾回收站

16.4 改進設計

16.4.1 「製作更多的對象」

16.4.2 用於原型創建的一個範式

16.5 抽象的應用

16.6 多重派遣

16.6.1 實現雙重派遣

16.7 訪問器範式

16.8 RTTI有害嗎

16.9 總結

16.10 練習

第17章 項目

17.1 文字處理

17.1.1 提取代碼列表

17.1.2 檢查大小寫樣式

17.2 方法查找工具

17.3 複雜性理論

17.4 總結

17.5 練習

編程學習

Java語言適合初學者學習,

Java語言由語法規則和類庫兩部分組成,其中語法規則確定了Java程序的書寫規範,學習好語法規則是Java語言,也是所有編程語言的基本功。本文主要向大家簡單介紹一下Java的語法規則。 Java語言與C/C++語言有着緊密的聯繫,Java中的許多術語來自於C++,起語法也來自於C++。因此Java的語法和c++的語法計劃一模一樣。下面簡單介紹一下Java的具體語法。

一、Java的詞法

1、標識符

標識符是類、變量和方法等的名字,作用是讓編譯器能夠識別它們。在Java語言中,標識符可以包含數字、字母、下劃線(_)和美圓符號($),但是不能以數字作為開頭。與C/C++語言不同的是,Java語言還可以將一些非拉丁字母包含在標識符中,這是因為Java語言使用的是Unicode字符,所有的十六進制00C0以上的Unicode字符都可以用在標識符中。但是Java語言的關鍵字是不能用來作為標識符的。

我們在使用標識符的時候應該盡量表達所要表示的類、變量、方法等的含義。另外,標識符中可以使用下劃線,我們應該充分利用這一點以提高程序的可讀性。

2、關鍵字

以下是Java的全部關鍵字:

abstract double int strictfp**

boolean else interface super

break extends long switch

byte final native synchronized

case finally new this

catch float package throw

char for private throws

class goto* protected transient

const* if public try

continue implements return void

default import short volatile

do instanceof static while

* 尚未使用的關鍵字

** 為Java 2增加的關鍵字

3、注釋

Java有三種形式的注釋:

第一種是C語言的傳統注釋方式,即將「/*」和「*/」之間的文本都視為注釋,這種注釋可以跨越多行。

第二種是C++風格的注釋,即將「//」之後直到行尾的文本都視為注釋,這種注釋只能包含一行。

第三種是Java新增加的注釋方式,即將「/**」和「*/」之間的文本都視為注釋,這種注釋也可以誇耀多行。注意,這種注釋方式生成的注釋將作為Javadoc文檔保存。

二、操作符

1、算術操作符

操作符 用途 優先級 結合性

++,– 自動遞增,自動遞減 2(僅次於括號) 從右到左

+,- 一元加,一元減 2 從右到左

*,/ 乘,除 3 從左到右

% 取余(求模) 3 從左到右

+,- 加,減 4 從左到右

2、布爾運算與關係運算符

操作符 用途 優先級 結合性

,,=,= 測試相對大小 6 從左到右

== 測試相等性 7 從左到右

!= 測試不等性 7 從左到右

?: 根據第一個操作數返回後兩個操作數之一 13 從左到右

! 非 2 從右到左

布爾與 8 從左到右

^ 異或 9 從左到右

| 布爾或 10 從左到右

條件與 11 從左到右

|| 條件或 12 從左到右

3、位操作符

操作符 用途 優先級 結合性

~ 非(位求補) 2 從右到左

, 左移,右移 5 從左到右

當作無符號右移 5 從左到右

位和 8 從左到右

^ 位異或 9 從左到右

| 位或 10 從左到右

4、賦值操作符

操作符 用途 優先級 結合性

= 賦值 14 從右到左

*= 操作同時賦值 14 從右到左

/= 操作同時賦值 14 從右到左

%= 操作同時賦值 14 從右到左

+= 操作同時賦值 14 從右到左

-= 操作同時賦值 14 從右到左

= 操作同時賦值 14 從右到左

= 操作同時賦值 14 從右到左

= 操作同時賦值 14 從右到左

^= 操作同時賦值 14 從右到左

|= 操作同時賦值 14 從右到左

= 操作同時賦值 14 從右到左

5、特殊操作符

cast操作符將一種數據類型轉換成為另一種數據類型,cast應寫成把要校正操作數的類型名放在括號中。

例如: int i; long l; l=7876547; i=(int)l; 如果給高精度的變量賦予一個低精度值,則不需校正。類型校正操作符的優先級為2,結合性為從右到左結合。

將以上講到的操作符的優先級總結如下:

優先級 運算符 結合順序

1 []數組運算 .點運算符 ()調用方法 從左到右

2 ! ~ ++ — +(一元加) -(一元減) ()強制類型轉換 new 從右到左

3 * / % 從左到右

4 +(二元加) -(二元減) 從左到右

5 從左到右

6 = = instanceof 從左到右

7 == != 從左到右

8 從左到右

9 ^ 從左到右

10 | 從左到右

11 從左到右

12 || 從左到右

13 ?: 從左到右

14 = += -= *= /= %= = |= ^= = = = 從右到左

三、常量

1、整型常量

在Java語言中,整型常量有三種形式,它們分別是:十進制、八進制、十六進制。

需要注意的是十進制數不能以0開頭,這是因為八進制的數是以0開頭的,而十六進制數以0x或0X開頭。

2、浮點型常量

浮點數只能表示十進制數。浮點數有兩種表示方法,即標準表示法和科學記數法。浮點數又分為單精度數和雙精度數。

3、布爾型常量

布爾型常量有兩個值:ture(或TURE)和false(或FALSE)它們分別表示真和假,這兩個值用來表示事物的狀態,它們必居其一。通過測量布爾值可以判斷是否執行某個步驟。

4、字符型常量

字符型常量是一個單一的字符,其形式是由兩個單引號引起來的一個字符。但是兩個單引號引起來的不能是單引號和反斜杠,即『』和『\』是不正確的寫法。

大家一定要記住,Java語言中的字符是16位的Unicode字符,這與C/C++等語言是不一樣的。

同C/C++語言一樣,Java語言也有轉意序列。Java中的轉意序列的功能見下表:

轉義序列 標準形式 功能描述

\ 繼續

\n NL 回車換行

\t HT 水平製表符

\b BS 後退一格

\r CR 回車不換行

\f FF 換頁

\ 單引號

\\ \ 反斜杠

\” ” 雙引號

\ddd 0ddd 八進制模式

\xddd 0xddd 十六進制模式

\udddd 0xdddd Unicode雙位元組字符

字符串常量

字符串常量是由雙引號引起來的一系列字符,與C/C++語言中不同的是,Java語言中的字符串不是通過字符數組來實現的,而是通過字符串類(即String類)來實現的。

四、變量和數據類型

在Java中,數據的類型可以分為四種:基本數據類型、數組類型、類和接口類型。任何數據都一定是上述數據類型的一種。

其中基本數據類型可以分為四大類:布爾型、字符型、整數型和浮點型。這些類型的數據與前面介紹的常量的類型基本相同,在此不再多說。下面將整數型和浮點型變量的取值範圍列出:

表一、

類型 寬度 取值範圍

byte 8位 -256到256

short 16位 -32768到32767

int 32位 -2147483648到2147483647

long 64位 -9223372036854775808到9223372036854775807

表二、

進制 整數 長整數

十進制 最大正整數 2147483647(2的31次方減1) 923372036854775807L(2的63次方減1)

八進制 最大正整數 077777777777(2的31次方減1) 07777777777777777777L(2的63次方減1)

最小負整數 020000000000(-2的31次方) 04000000000000000000L(-2的63次方)

十六進制 最大正整數 0x7fffffff(2的31次方減1) 0x7fffffffffffffffL(2的63次方減1)

最小負整數 0x80000000(-2的31次方) 0x8000000000000000L(-2的63次方)

浮點數能表示的數值從小到大分別是:負無窮大、負有限值、負零、正零、正有限值及正無窮大。其中正零和負零在進行數值比較的時候是相等的,但仍有辦法分辨這兩個值,例如在進行1.0/0.0的時候會得到正無窮大的結果。其它非零非無窮大的有限值是以s*m*(2^e)來表示的,s和m的取值範圍見下表:

表三、

類型 s m e

float +1或-1 小於2的24次方的正整數 149到104的整數

double +1或-1 小於2的53次方的正整數 1045到1000的整數

表四、float 最大值 3640282347e+38f

非零最小值 1.40239846e-45f

double 最大值 1.79769313486231570e+308

非零最小值 4.940656458412465334e-324

另外浮點數還有一些特殊值,見下表:float 最大值 Float.MAX_VALUE

最小值 Float.MIN_VALUE

正無窮大 Float.POSITIVE_INFINITY

負無窮大 Float.NEGATIVE_INFINITY

NaN Float.NaN

double 最大值 Double.MAX_VALUE

最小值 Double.MIN_VALUE

正無窮大 Double.POSITIVE_INFINITY

負無窮大 Double.NEGATIVE_INFINITY

NaN Double.NaN

與C/C++語言中不同的是,在Java語言中,所有的基本數據類型都有預設值,就是說當我們聲明一個變量時,即使我們沒有對它賦值,它的值也是一定的,而不像在C/C++中那樣是不可預測的。具體個類型的預設值見下表:

基本數據類型 預設值

Boolean false

Char \u000

Byte (byte)0

Short (short)0

Int 0

Long 0L

Float 0.0L

Double 0.0d

五、Java與C/C++的比較

由於Java的語法直接來源於C/C++,所以Java的程序控制語句與C/C++一模一樣,在此不再多說。以下重點介紹一下Java與C/C++的不同。

指針

大家在使用C語言編程的時候想必都曾經因為指針的複雜計算而煩惱,在C/C++語言編程過程中,指針可能引起許多錯誤,這些複雜的指針算法所產生的錯誤常常讓人迷惑不解,導致C/C++程序員在此浪費了大量的時間。考慮到這種原因,Java中取消了指針。指針的功能由參考(reference)所取代,這使得Java中對複雜數據結構的實現更加容易,因為用對象和對象數組實現複雜的數據結構更可靠。

函數

在Java中沒有C/C++中應用廣泛的函數,C/C++中通過函數實現的功能在Java中都是通過類和方法來實現的。

繼承

C++支持多重繼承,這是一個從多個父類中派生一個類的有效辦法,但這種派生很複雜,也很容易產生問題。因此,Java中沒有採用多重繼承,但Java的Objective C協議接口能完成C++中多重繼承的所有功能。

goto語句

大家知道,在使用高級語言編程時過多的使用goto語句會使程序變得十分混亂,因此Java中也沒有使用goto語句。但是不可否認,當程序比較容易控制的時候,適當使用goto語句能使程序的運行更快捷,因此Java中使用了多重break和continue語句(允許break和continue語句使用標籤)實現C++種goto語句的功能。

聯合和結構

在C++中有三種數據結構:聯合、結構和類;Java中只有類,它可以實現上述三者的功能。

字符串

在C/C++中,字符串是通過字符數組實現的,但是由於數組的空間不是動態分配的,這容易出現越界錯誤,例如:常有預先設定的字符數組不能容納後輸入的字符串。在Java中,字符串是一類特定的對象,這使得字符串更具有一致性和可預見性。

Typedef、Define和預處理器

Java中不需要#define語句、預處理器或者typedef,但需要頭文件。在Java中一個類的信息必須包含在一個文件中,而C/C++中有關類的信息可能分散在多個文件中。

數據類型的自動強制轉換

在Java中強制一種類型的數據元素變成一種不太精確的數據類型需要編程人員採用預測方法。

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-16 14:15
下一篇 2024-11-16 14:15

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發佈。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論