久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

JAVA期末總結終極版

時間:2019-05-15 09:33:08下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《JAVA期末總結終極版》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《JAVA期末總結終極版》。

第一篇:JAVA期末總結終極版

JAVA期末總結

1,運行時,調用Java解釋器Java.exe對類文件解釋執行。(編譯)2,Scanner常用的輸入數據方法中輸入int型數據方法 intnextInt()。Import Java.util.Scanner;Scanner input= new Scanner(System.in);A=input.nextInt();3,Java源程序代碼的三個要素:①包申明(package statement);②導入語句(import statement);③類定義和接口定義。

4,Java關鍵字: interfaceinstanceof synchronized throw throws threadsafe transient 5,Java標識符:分大小寫 以字母、下劃線、$開始。6,八大基本數據類型中不包括String。

7,符號常量在使用前先聲明格式為final 數據類型 常量名 = 缺省值 final double PIE=3.14 final int count=10000 8,不等于!= 9,!邏輯取反(!X X真時為假,X假時為真。)||邏輯或(x||y)。&& 邏輯與(x&&y)。

10,運算符優先級:單算關邏條賦

11,如果方法的返回值類型不是void,則必須包含return語句,且return后必須帶返回值如return 0。

12,方法的重載:在一個類中定義多個同名的方法,但要求個方法具有不同的參數類型或參數個數。調用重載方法時,Java編譯器能通過檢查調用的方法的參數類型和個數選擇一個恰當的方法。方法參數必須有所區別:①參數類型不同②參數順序不同③參數個數不同。

13,數組對象需要使用new關鍵字來創建。int a[]=new int[5];14,交換算法中swap(a,b)輸出仍為原值

15,數組對象一旦創建之后,在程序整個執行期間,就不能再改變數組元素的個數。

16,類的成員:域、構造函數、方法。

17,方法一般是對類中的數據成員進行操作。18,構造方法一般用于初始化某個類的對象。

19,成員訪問控制修飾符:1.public(公共 可在類外被使用)2.protected(保護 在同一包或子類中被使用)3.package(缺省值)(包作用域成員 只能在同一包中被使用)4.private(私有 只能在類中訪問)

20,定義構造方法:1.構造方法必須與其類名相同。2.構造方法沒有返回類型,但可以有參數,且可以被重載。

21,this定義為被調用的方法的當前對象的引用。

22,當申明一個成員變量時,可以指定成員變量是屬于一個類的所有對象共享(稱為類的變量)還是屬于一個類的各個對象所擁有(稱為實例變量)屬于類的變量或方法被稱為靜態變量或靜態方法,以關鍵字static加在申明前。static private int count;23,類只支持單繼承,接口支持多繼承。

24,在JAVA中,Object類定義和實現了Java系統…。

25,類的公共接口用抽象方法描述。每個抽象類中至少包含一個抽象方法,也可以多個抽象方法僅僅聲明了功能的接口,并不提供功能實現,如getName()。

26,聲明一個類來實現一或多個接口時,在類的聲明中用關鍵字implements。27,產生隨機數的方法 Math.random()。28,Swing組件在Javax.swing包中。

29,阻塞狀態(Blocked,Waiting,Sleeping)

30,Java的異常是一個對象,所有異常都直接或間接的繼承Throwable類。31,每個try語句必須伴隨一個或多個catch語句,用于捕獲try代碼塊所產生的異常,并作相應的處理。

32,通過繼承thread的子類創建線程:class pppp extends Thread 33,通過實現Runnable接口創建線程:public class Clock extends JAppletimplements Runnable

簡答題

Java有哪些基本數據類型?

Boolean char byte(-128 127)short int(-2^31 2^31-1)long float double Break和Continue的不同?

Break 使流程從一個語句塊內部跳轉出來,switch 循環體 Continue 結束本輪循環,判斷是否執行下一輪 JAVA程序的組成?

由一個包的聲明,任意數量導入語句(import statement 可選)任意數量的類定義或(package statement 可選)接口定義三要素組成,該三要素必須以上述順序出現,如果使用包聲明,則包聲明必須出現在類和導入語句之前,任何導入語句出現在所有類定義之前。方法的重載?

方法重載通常用于創建完成一組相似但參數的類型或參數的個數不同的方法,重載的方法參數必須有所區別:1,參數的類型不同 2,參數的順序不同 3,參數的個數不同

將數據及對數據的操作行為放在一起,作為一個相互依存不可分割的整體稱之為對象。對相同類型的對象進行分類抽象以后,得出共同的特性而形成了類。類是藐視相同類型的對象集合,類的成員 域:一個類的數據屬性由它成員變量(域)定義。方法:方法一般是對類中的數據成員進行操作。構造方法:一般用于初始化某個類的對象

簡述成員訪問控制符?

成員訪問控制是用來控制類中成員的訪問范圍,修飾符聲明 Public 說明公共成員可以在類外被使用

Protected 說明保護成員,在同一包中或子類中被使用

Package(缺省值)說明包作用域成員,該成員只能在同一包中被使用 Private 說明私有成員,該成員只能在類中訪問

修飾類:public protected 修飾類成員:private package(缺省)protected public 父類子類?

父類是子類的一般化,子類是父類的特化。子類是在弗雷德公共特性基礎上的擴展和延伸。抽象方法?

抽象方法用于聲明一組類的公共操作的規范接口。僅僅聲明了方法的頭,沒有定義方法體。抽象方法的方法體在子類中實現。簡述布局管理器? Java提供個標準的布局管理器類有:FlowLayout,BorderLayout,GridLayout,CardLayout,GridBagLayout和BoxLayout。其中前五個在Java.awt包中,而BoxLayout在Javax.swing包中。簡述線程的概念?

線程是進程中可獨立執行的子任務,一個進程可以含有一個或多個線程。每一個線程都有一個唯一的標識符,進程是程序一次動態執行的過程,它對應著從代碼加載,執行到執行完畢的一個完整過程。這個過程也是從進程本身中產生,發展到消亡的過程。

創建狀態Born 就緒狀態Ready 運行狀態Running 阻塞狀態Blocked Waiting Sleeping 死亡狀態Dead

補充:

1,構造方法必須與其類名相同,沒有返回類型。

2,JAVA中的數組是對象,因此屬于引用類型,數組對象需要使用new關鍵字來創建 3,JAVA中的類單繼承,接口多繼承

4,接口由一組常量和一組抽象方法組成,接口中不包括變量和有具體實現的方法

5,Swing組件不能直接添加到頂層容器中,必須添加到內容面板上,內容面板式頂層容器包含的一個普通容器

6,命令按鈕式一種組件,單擊將產生動作事件AcctionEven

P69 P29 P85 P98 P102 P103 P119 P220 程序 星星

public class star{ public static void main(String []args){ inti,j;for(i=4;i>=1;i--){ for(j=1;j<=4-i;j++)System.out.print(“ ”);for(j=1;j<=2*i-1;j++)

} } System.out.print(“ *”);System.out.println();} for(i=1;i<=4;i++){ for(j=1;j<=4-i;j++)System.out.print(“ ”);for(j=1;j<=2*i-1;j++)System.out.print(“ *”);System.out.println();}

數組

public class sumarry{ public static void main(String[]args){

int array[]={1,2,3,4,5,6,7,8,9,10};

double ping=0;

int b=0;

for(int a=0;a

if(array[a]%2==0){

ping+=array[a];

b++;}

System.out.println(“數組中偶數平均值為:”+ping/b);} }

冒泡

public class bubble{ public static void main(String[]args){

int array[]={3,45,89,7,5,65,4,8,25,62};

} System.out.println(“排序前:”);for(int a=0;a

for(int e=0;e<=array2.length-p-1;e++)

if(array2[e]>array2[e+1]){

int h=array2[e];

array2[e]=array2[e+1];

array2[e+1]=h;

} } }

盒子

public class box{ inta,b,h;public box(){

s(0,0,0);} public box(intl,intm,int n){

s(l,m,n);} public void s(intp,intq,int r){

a=p;b=q;h=r;} public String toString(){

return “長為:”+a+“ 寬為:”+b+“ 高為:”+h+“的立方體的體積為:”+a*b*h;} void seta(int p){

} voidsetb(int p){ } voidseth(int p){ } intgeta(){ } intgetb(){ } intgeth(){ returnb;returna;h=p;b=p;a=p;} returnh;}

public class test{ public static void main(String args[]){

box a=new box(3,4,5);

System.out.println(a.toString());a.seta(10);//改變a的值 System.out.println(a.geta());//輸出a的值

} }

public class boll{ public static void main(String args[]){

double s=100;

double h=100;for(int i=1;i<=9;i++){ h=h/2;s+=h*2;} System.out.println(“球第十次落地時走過的路程為:”+s);System.out.println(“球第十次彈起的高度為:”+h/2);} }

第二篇:Java期末總結doc版

課程總結與知識點回顧 第一章

Java入門 了解Java發展史。掌握Java的特點。掌握Java工作機制。

掌握環境配置、編譯和運行程序的過程。掌握兩類程序的組成結構。第二章

關鍵字和數據類型 掌握標識符的定義規則。

了解常用的保留字和分隔符。掌握各種基本數據類型的使用。

掌握Java中數組的定義和使用方法。第三章

運算符和表達式 掌握運算符和表達式。算數運算符及表達式 關系運算符和表達式 邏輯運算符和表達式 賦值運算符和表達式 位運算符 掌握選擇結構

if-else、switch語句。掌握循環結構

while、do~while及for語句。掌握跳轉語句:

break、continue。

了解在方法中使用的return語句 第四章

面向對象設計 掌握類的聲明和使用 構造方法 成員變量 方法

掌握對象的定義和使用 聲明 使用 參數傳遞

掌握static關鍵字 實例變量和類變量 實例方法和類方法 了解this關鍵字 實例變量和類變量

實例方法和類方法 的不同以及使用位置。掌握訪問修飾符和非訪問修飾符 public,private,缺省,protected static,final,abstract 第五章

繼承與接口 掌握包的定義和使用 package和import 掌握類的繼承的實現(extends)了解對象的上轉型對象

掌握抽象類和抽象方法(abstract)了解super關鍵字

掌握接口的定義和使用 掌握多態的表現形式 重載 重寫

第六章

數組與集合

掌握數組的定義和使用方法。一維數組 二維數組

掌握常用集合的操作方法。List Vector ArrayList HashTable 第七章

字符串 String類的創建 String類的使用

StringBuffer類的創建 StringBuffer類的使用

String與StringBuffer的區別(難點)第八章

異常處理 掌握異常處理的概念 掌握異常處理的方法 拋出 捕獲

了解自定義異常處理(難點)第九章

文件輸入輸出

掌握輸入/輸出流的概念和類層次結構

了解文件管理以及文件操作 掌握文件字節流的定義和使用

掌握文件字符流的定義和使用

了解文件隨機訪問

了解其他常用流的定義和使用 第十章

JDBC數據庫編程 JDBC的概念 數據庫操作過程。下載驅動 加載驅動 創建連接

創建Statement對象 執行SQL語句 處理結果 關閉數據庫

數據庫操作使用到的對象。Connection DriverManager Statement PreparedStatement ResultSet JDBC實例

第十一章

GUI圖形界面設計 Swing組件 窗口組件 菜單組件 文本組件

按鈕和標簽組件 布局管理器 面板 選擇組件

掌握事件處理的概念 授權處理模型

掌握事件處理的過程 實現接口或繼承適配器類 注冊監聽器

編寫事件處理代碼

掌握JTable的使用方法 第十三章

多線程 掌握線程的基本概念

掌握線程的狀態和生命周期。

掌握通過兩種方式創建線程:繼承Thread類、實現Runnable接口。了解線程的互斥。了解線程的同步。第十四章

網絡編程

了解使用URL讀取和顯示網絡資源。掌握InetAddress類和套接字的概念。掌握使用TCP協議進行通信的方法。掌握使用UDP協議進行通信的方法。其他知識點

Applet的運行原理 創建 結構 生命周期

在Applet中播放聲音、使用組件、繪制圖形圖像 數據結構的Java實現 動態數組 散列表 向量

第三篇:Java期末復習

2015級Java期末復習

考試題型和分值:

1、判斷題(每題1分,5題,共5分)

2、填空題(每題1分,5題,共5分)

3、選擇題(每題2分,15題,共30分)

4、簡答題(4題,共30分)

5、程序題(2題,共30分)

程序練習:

1. 編程實現:求出一組數中的最大數和最小數。

2. 提示用戶輸入1—10的字符,然后判斷這個整數的奇偶性。3.字符串的相關操作(參考實驗指導 實驗

19、實驗20)

4.編程實現:在程序中定義一個Person類,一個Person類的子類Student類,再定義主類C1,在main方法中,生成Student的對象,并輸出各項信息。(參考《實驗指導》實驗

32、實驗33)

5.求自定義幾何圖形的面積和周長。首先定義一個抽象類Geometry,該來中包含兩個抽象方法,一個是表示求面積的getArea(),另一個表示求周長的getPerimeter()。然后通過繼承來分別求出圓形、等邊三角形、長方形的面積和周長。最后定義主類,給出具體的值后輸出一個圓形、一個等邊三角形和一個長方形的面積和周長。

6.定義一個學生類,包括學生的姓名、學號、英語成績、數學成績、Java成績、操作系統成績、求每個學生的總分和求平均分。再定義主類來測試該類,創建兩個學生對象,例如:王平1號 成績分別為80、90、85、70 輸出該學生的總分和平均分。(需要用構造方法來實現各個屬性的初始化)

7.定義描述職工檔案的類Archives,保護成員變量有職工號(No)、姓名(Name)、性別(Sex)、年齡(Age)。成員方法有:顯示職工信息的方法Show()。再由職工檔案類派生出職工工資類Laborage,在職工工資類Laborage中新增私有成員變量:應發工資(SSalary)、社保金(Security)、實發工資(Fsalary),其公有成員方法有:構造方法,計算實發工資的方法Count(),計算公式為:實發工資=應發工資-社保金。顯示職工檔案及工資的方法Display()。最后定義主類,在主方法中用Laborage類定義職工對象lab,并賦初始值:

(1001,“張三”, “男” ,21,2000,100),然后顯示職工檔案與工資。8.構造方法的使用。參考實驗指導 實驗

27、實驗28。9.編寫一個Java程序,在程序中建立一個窗口,有四個文本框、兩個按鈕,單擊“求和”按鈕,能把第一個和第二個文本框的整數相加后結果顯示在第三個文本框中,點擊“復制”按鈕,能將第三個文本框的內容復制到第四個文本框中,最后還可以正常關閉窗口。運行效果如下圖所示:

第1章 Java語言概述

1.Java語言的特點。(Java語言在1995年是哪個公司推出,2010年又是被誰收購?P2平臺無關性、編譯與解釋并存,Java是如何實現“一次編寫,到處運行”?

2.面向對象的基本特征。

3.什么是Java虛擬機?字節碼的好處? 4.Java應用程序的種類及區別。

第2章 Java語言開發環境

1.JDK環境的配置。2.Path和ClassPath的作用?

第3章 Java語言基礎

1.基本數據類型有哪些?了解它們的數據的性質、取值范圍、存儲方式、參與的運算?它們在內存中存放的是數據值本身。2.Java定義了哪些整數類型。

3.引用數據類型有哪些?在內存中存放的是指向該數據的地址,不是數據值本身。

4.Java 標識符的命名規則是什么?(給定標識符,會判斷是否合法)

5.Java語言是如何聲明常量的。用final定義常量。單精度后加f或F,雙精度后加d或D可省略。

6.變量。注意:Java 語言程序中可以隨時定義變量,不必集中在執行語句之前。

7.字符串數據類型轉換為數值型數據。8.數值型數據轉換為字符串類型。(使用 +)

int MyInt=1234;

String MyString=“"+MyInt;

9.Java 語言中從鍵盤輸入數據。

? 由鍵盤輸入的數據,不管是文字還是數字,Java皆視為字符串。? 兩種輸入方式。(輸入緩沖區和Scanner,至少掌握一種輸入方式。)10.表達式求值表達式求值,自增自減1 ? ++和——的運算,注意前置和后置,尤其是用在復合語句中。

第4章 流程控制

1.Java語言不允許在兩個嵌套的復合語句內聲明兩個同名的變量。2.Java中的三種注釋方式。(Java特有的文件注釋,產生html文檔)。3.可以用選擇和循環結構來解決問題,三種循環語句的區別(見程序)4.break和continue的含義和區別。

第5章 數組與字符串

1.數組的概念。相同數據類型的元素按一定順序排列的集合。Java中,數組元 素可以為簡單數據類型,也可以為對象。2.Java語言內存分配問題

? 棧內存:定義的基本類型的變量和對象的引用變量,超出作用域將自動釋放。

? 堆內存:存放由new運算符創建的對象和數組。由Java虛擬機的自動垃圾回收器來管理。

3.什么是引用變量?(為數組或對象起的一個名稱)4.Java 中一維數組的定義和使用。

int a[ ];//不能給出數組長度,因為此時還沒有給數組分配內存 int[ ] a;int a[ ] = {1,2,3,4};int[ ] a = new int[4];// 用new分配內存時,數組的每個元素都會自動賦默認值

Java對數組元素要進行越界檢查。

每個數組都有一個屬性length指明它的長度,如a.length指出數組a所包含的元素個數。(常作為循環控制條件)5.二維數組的定義和使用。

? Java中的二維數組看作是由多個一維數組構成。? 求二維數組的維數 計算某數組的行數:數組名.length 計算某數組中某行元素的個數:數組名[下標].length ? 二維數組申請內存方式(必須指定高層維數):(下面哪些錯誤)

int[][] MyArray = new int [10][];int[][] MyArray = new int [10][3];int[][] MyArray = new int [][3];int[][] MyArray = new int [][];

6.字符串的聲明和使用。

? String 變量名;

變量名 = new String(”字符串“);

String 變量名 = new String(”字符串“); String 變量名 = ”字符串";

? String 類的常用方法(求長度,定位,==和equals方法比較)

第6章 類與對象

1.什么是類?什么是對象?類和對象有怎樣的關系? 2.類的定義和使用。

? 類修飾符及含義見教材所示。

? 類的成員不能是執行語句。

? 成員變量和成員方法的定義、修飾符見教材所示。

? 在定義類的成員變量時,可以同時賦初值,但對成員變量的操作只能放在方法中。

? 類中成員間的訪問機制。(在一個類中的訪問機制,一個類訪問另外一個類)

3.成員變量與局部變量的區別?

4.對象的創建和使用。對象的創建:

Cylinder volu;

//聲明指向對象的變量volu

volu = new Cylinder();

//利用new創建新的對象,并讓變volu指向它

或者:Cylinder volu = new Cylinder();volu只是對象的名稱,它是指向對象實體的引用變量,而非對象本身。5.當一個對象被創建時,會對其中各種類型的成員變量按表6.4自動進行初始化。

6.一個類多個對象,它們的成員變量分配在不同的內存,因此修改某一對象的成員變量時其他不受影響。7.this關鍵字的使用。“this.成員名”,此時this代表調用此成員的對象。

若在通過方法調用,將外部傳入的參數賦值給類的成員變量,方法的形式參數與類的成員變量同名時,則需用this來標識成員變量。

8.傳遞數組:指明參數是一個數組,實參只給出數組名。

9.當參數是基本數據類型時,采用傳值方式調用;當參數是引用型的變量時,則是傳址方式調用。10.了解匿名對象。

第7章 Java語言類的特征

1.私有成員(private)、公共成員(public)、保護成員(protected)、缺省訪問控制符各自的訪問權限是什么?

2.什么是方法的重載,即方法的重載條件是什么?會判斷哪些是合法的重載形式。

3.什么是構造方法?構造方法有哪些特征?何時被調用?什么是默認構造方法?何時被調用?

4.什么是靜態成員(類成員)?什么是實例成員?使用靜態成員有什么意義?靜態成員的訪問格式是什么?main方法為何是public,static的呢? 5.對象的賦值與比較。

6.對象是一種引用型變量,它實際保存的是對象在內存中的地址。7.引用變量也可作為方法的參數,采用傳址調用。例如: Circle c1 = new Circle(2);

Circle c2 = new Circle(3);

c2 = c1;

//它們所共同指向的同一對象的內容相等還是兩個引用變量中所保存的地址相等呢?

第8章 繼承、抽象類和接口

1.什么是繼承?什么是父類、子類?子類是如何創建的?

在Java語言中有一個名為java.lang.Object的特殊類,所有的類都是直接或間接地繼承該類而得到的。2. 在子類中如何訪問父類的成員。

3. 什么是方法的覆蓋。方法的覆蓋與方法的重載有和區別?

4. ”==”和equal()方法比較對象的異同?

5.什么是抽象類和抽象方法?抽象類有哪些特征?

6.接口的定義?接口與抽象類有何區別? 7.利用接口如何實現類的多重繼承? 8. 軟件包的概念、作用、應用。(package、import語句應放在哪里)9. Java的垃圾自動回收機制。10.如何理解Java的多態性?

第9章 異常處理

1.什么是異常?按照錯誤的性質將錯誤如何分類及其含義?(哪些屬于異常,會判斷)

2.什么是拋出異常和捕獲異常?try-catch-finally語句如何使用?

3.Java的異常處理機制是如何實現的,為什么有一些異常一定要捕獲,否則編譯不能通過? 4.拋出異常的方式

在捕獲一個異常前,必須有一段代碼生成一個異常對象并把它拋出。根據異常類的不同,拋出異常的方法也不相同。

第12章 圖形界面設計

1. 了解java.awt包中主要類及組件類的繼承關系。2.什么是組件?組件是怎樣分類的?

3.什么是窗口?窗口又如何分類,他們又分別具有怎樣的特征? 4.什么是面板?面板與窗口有何區別?

5.圖形用戶界面設計的步驟?

6.什么是控件?它有何作用?Java中有哪些常用控件?

7.什么是窗口的布局管理?有哪些布局管理方式?它們分別具有怎樣的策略或特征?

8.容器和普通組件的區別是什么?

第13章 事件處理

1.什么是事件處理?什么是事件?什么是事件源?什么是事件監聽者?什么是事件處理接口?

2.什么是委托事件模型?

3.擔任監聽者的方式有哪些?

4.java語言把事件如何分類?

5.Java語言的事件處理類及其繼承關系?

6.什么是適配器類?它與接口完成事件處理有何區別?

第四篇:java總結

調用父類構造方法

? 在子類的構造方法中可使用super(argument_list)語句調用父類的構造方法

? 如果子類的構造方法中沒有顯示地調用父類構造方法,也沒有使用this關鍵字調用重載的其它構造方法,則系統默認調用父類無參數的構造方法

? 如果子類構造方法中既未顯式調用父類構造方法,而父類中又沒有無參的構造方法,則編譯出錯

1public class Person {

3private String name;

4private int age;private Date birthDate;

7public Person(String name, int age, Date d){ 8this.name = name;

9this.age = age;

10this.birthDate = d;

11}

12public Person(String name, int age){ 13this(name, age, null);

14}

15public Person(String name, Date d){ 16this(name, 30, d);

17}

18public Person(String name){

19this(name, 30);}

21// ……

22}

1public class Student extends Person {

2private String school;

4public Student(String name, int age, String s){ 5super(name, age);

6school = s;

7}

8public Student(String name, String s){

9super(name);

10school = s;

11}

12public Student(String s){ // 編譯出錯: no super()13school = s;

14}

15}

對象構造和初始化細節

? 分配存儲空間并進行默認的初始化

? 按下述步驟初始化實例變量

1.綁定構造方法參數

2.如有this()調用,則調用相應的重載構造方法,然后跳轉到步驟5

3.顯式或隱式追溯調用父類的構造方法(Object類除外)

4.進行實例變量的顯式初始化操作

5.執行當前構造方法的方法體

==操作符與equals方法

==操作符與equals方法的區別:

? 引用類型比較引用;基本類型比較值;

? equals()方法只能比較引用類型,“==”可以比較引用類型及基本類型;

? 特例:當用equals()方法進行比較時,對類File、String、Date及封裝類(Wrapper Class)來說,是比較類型及內容而不考慮引用的是否是同一個實例;

? 用“==”進行比較時,符號兩邊的數據類型必須一致(可自動轉換的基本數據類型除外),否則編譯出錯;

由裝箱引發的——Integer比較的來龍去脈

前置知識: 眾所周之,java是保留了int,char等基本數據類型的,也就是說int類型的并不是對象,然而有些方法卻需要object 類型的變量,所以java使用了裝箱機制,我們可一自豪的這樣聲明一個整型變量:Integer a = new Integer(10);那么整型的a也就是對象了,那這句是什么意思呢:Integer a= 10;java中可以這樣聲明一個對象嗎?當然不是,從jdk1.5后,java實現了自動裝箱,也就是自動將Integer a =10 中的int類型的10轉化為了 Integer類型。好,有了前面的只是我們且先看一個題目:

Integer a = 127;

Integer b = 127;

Integer c = 128;

Integer d = 128;

System.out.println(a==b);

System.out.println(c==d);

答案是什么呢? 如果您回答true,false,那么很遺憾的告訴你,哈哈,其實你答對了!!

那我們暈了就相差1的兩個數為啥走向了“反目成仇”的地步呢?憑啥127等于127,我128就不等于128呢?且聽我慢慢道來,Integer a =127,Integer a=128。

127,128應該不會造成什么差異吧,難道是自動裝箱的過程有貓膩?找下源碼看看:

private static class IntegerCache {

private IntegerCache(){}

static final Integer cache[] = new Integer[-(-128)+ 127 + 1];static {

for(int i = 0;i < cache.length;i++)

cache[i] = new Integer(i128);

}

這是用一個for循環對數組cache賦值,cache[255] = new Integer(255-128),也就是newl一個Integer(127),并把引用賦值給cache[255],好了,然后是Integer b= 127,流程基本一樣,最后又到了cache[255] = new Integer(255-128),這一句,那我們迷糊了,這不是又new了一個對象127嗎,然后把引用賦值給cache[255],我們比較這兩個引用(前面聲明a的時候也有一個),由于是不同的地址,所以肯定不會相等,應該返回false啊!呵呵,這么想你就錯了,請注意看for語句給cache[i]初始化的時候外面還一個{}呢,{}前面一個大大的static關鍵字大咧咧的杵在哪呢,對靜態的,那么我們就可以回想下static有什么特性了,只能初始化一次,在對象間共享,也就是不同的對象共享同一個static數據,那么當我們Integer b = 127的時候,并沒有new出一個新對象

來,而是共享了a這個對象的引用,記住,他們共享了同一個引用!!,那么我們進行比較a==b時,由于是同一個對象的引用(她們在堆中的地址相同),那當然返回true了!!

然后我們在看Integer c = 128;Integer d = 128;這兩句。現在不用我說就應該能明白了吧,當數據不再-128到127之間時,是不執行return

IntegerCache.cache[i + offset];這句的,也就是不會返回一個static的引用,而是執行了return new Integer(i);于是當 Integer d = 128 時,又會重新返回一個引用,兩個不同的引用

在做c==d 的比較時當然返回false了!

下面附上本程序的字節碼以供喜歡底層的讀者參考:

Compiled from “CompareInteger.java”

public class CompareInteger extends java.lang.Object{

public CompareInteger();

Code:

0:aload_0

1:invokespecial#1;//Method java/lang/Object.“”:()V4:return

public static void main(java.lang.String[]);

Code:

0:bipush 127

2:invokestatic#2;//Method

java/lang/Integer.valueOf:(I)Ljava/lang/Int

eger;

5:astore_1

6:bipush 127

8:invokestatic#2;//Method

java/lang/Integer.valueOf:(I)Ljava/lang/Int

eger;

11: astore_2

12: sipush 128

15: invokestatic#2;//Method

java/lang/Integer.valueOf:(I)Ljava/lang/Int

eger;

18: astore_3

19: sipush 128

22: invokestatic#2;//Method

java/lang/Integer.valueOf:(I)Ljava/lang/Int

eger;

25: astore 4

27: getstatic#3;//Field

java/lang/System.out:Ljava/io/PrintStream;

30: aload_1

31: aload_2

32: if_acmpne39

35: iconst_1

36: goto40

39: iconst_0

40: invokevirtual#4;//Method java/io/PrintStream.println:(Z)V43: getstatic#3;//Field

java/lang/System.out:Ljava/io/PrintStream;

46: aload_3

47: aload4

49: if_acmpne56

52: iconst_1

53: goto57

56: iconst_0

57: invokevirtual#4;//Method java/io/PrintStream.println:(Z)V60: return

}

評論:呵呵,這么想你就錯了,請注意看for語句給cache[i]初始化的時候外面還一個{}呢,{}前面一個大大的static關鍵字大咧咧的杵在哪呢,對靜態的,那么我們就可以回想下static有什么特性了,只能初始化一次,在對象間共享,也就是不同的對象共享同一個static數據,那么當我們Integer b = 127的時候,并沒有new出一個新對象來,而是共享了a這個對象的引用,記住,他們共享了同一個引用!!

呵呵,博主我被你這句話小小的誤導了一下,其實你這里說的原理沒錯,但是把位置說錯了,這段代碼只是初始化cache:

static {

for(int i = 0;i < cache.length;i++)

cache[i] = new Integer(i-128);

}

但真正讓cache[i]為static變量的是這句代碼:

static final Integer cache[] = new Integer[-(-128)+ 127 + 1];

第五篇:Java總結

Java實驗

1.調試HelloWorld程序

2.this,super,get ,set,把課本90頁程序4.7中的name改成私有變量

3.繼承,重寫,父類引用指向子類對象

4.驗證數組Arrays類和Collection類

5.編寫一個自己的異常類并捕獲之。

6.編寫一個類,將該類的幾個對象裝入TreeSet容器中,并將該容器的內容通過輸出流寫入文件中。

前三章重點

0.java的數據類型:四類八種-(1)布爾類型Boolean;(2)字符類型char;(3)整數byte,short,int,long;(4)浮點類型:float,double;1.面向對象的3個基本特征:封裝,繼承,多態。

2.構造方法和普通方法的區別:對構造方法而言,它有以下特性---(1)方法名必須與要創建對象的類名相同。(2)不允許聲明返回類型,即使聲明為void也不被允許。

3.this關鍵字:是一個引用,this引用指向的是其本身所在方法的當前對象。this的使用方法:(1)調用成員變量;(2)可以用this()調用其他構造函數。

4.java中只對類成員變量進行自動初始化,而方法內部的局部變量在使用前必須手動初始化。

5.static 關鍵字:可用來修飾類的成員變量和成員方法,需要注意兩點--(1)靜態方法不能調用類的非靜態方法,不能訪問類的非靜態變量。(2)靜態方法和靜態變量(非私有的)可以有兩種調用方式,一是實例對象調用,二是類名直接調用。

6.類成員訪問控制修飾符public、private、default(可不寫,即缺省狀態)、protected的使用:public-公用的;private-私有的,只在定義它的類內部使用;default-可以被同一包中的類訪問;protected-既可以被同一包中的類訪問,也可以被不在同一包中的子類訪問。

7.方法的重載:指方法名相同,而方法的參數列表不相同。參數列表不同有三層意思:(1)參數類型不同。(2)參數順序不同。(3)參數個數不同。另外需注意,在同一個類中,當方法名和參數列表都相同時,訪問控制修飾符或方法返回類型不相同并不是方法的重載,而且這種情況在java中是不被允許的。

第四五章重點

1.繼承:需使用關鍵字extends.在使用繼承時需注意--(1)每個子類只能定義一個超類(父類),即extends后面應且僅應跟一個類名作為該類的父類。(2)父類中的私有屬性和私有方法不能被繼承。

2.方法的重寫:即子類對超類中的方法保持方法名、返回類型和參數列表不變,重寫了方法體,使子類和超類完成不同的工作。重寫需注意下面幾個關鍵點:(1)超類中的私有方法不能被重寫。(2)訪問限制符強度由低到高依次是:public、protected、default、private,在重寫過程中,如果子類和父類中方法的返回值、方法名及方法的參數列表都相同,這時,要求子類中該方法的訪問限制符強度不能超過父類的。即如果父類中為public時,子類也只能為public,而不能是余下的三種。

3.重載(overload)和覆蓋(override)的區別:(1)重載—發生在一個類的內部或子類與父類之間,要求方法名相同而參數列表不一樣。(2)覆蓋—只能發生在繼承過程中,要求子類方法的返回類型,方法名和參數列表同父類的都相同,而方法體不一樣。

4.構造器的調用順序:先祖先,再客人,最后自己。

5.多態:指在類繼承中子類和父類中可以有同名但意義或實現方式不同的屬性和方法。分為:覆蓋和重載。多態的優點:因為多態,可以在程序中對類進行擴展,而不需改變那些操作基類接口的方法。

6.動態綁定:指在代碼執行期間,判斷所引用對象的實際類型,根據其實際類型調用相應方法。動態綁定存在的三個必要條件--(1)要有繼承;(2)要有重寫(覆蓋);(3)父類引用指向子類對象(向上轉型)。

7.Object中常用的方法總結:toString();wait();equals();notify();notifyAll();hashCode();getClass();clone();finalize();(呵呵,盡可能記幾個,以防老師讓咱們列舉)注:java中Object類是所有類的父類,即java中所有的類都有上述9種方法。

8.對象的比較:注意關鍵字instanceof的使用。

9.抽象類:

抽象方法—用關鍵字abstract修飾的方法,該方法只需方法的聲明,而不需方法的實現(即無方法體)。

抽象類——至少包含一個抽象方法的類,也用abstract關鍵字聲明。(注:(1)抽象類中可以有一些具體方法。(2)抽象類不能實例化。(3)子類繼承抽象類必須實現其抽象方法。)

10.接口:

(1)可以看成是高度抽象的抽象類,但是接口不是類。

(2)用關鍵字interface來聲明接口,用關鍵字imlpements來實現接口。

(3)接口不能有具體方法,不能有實例數據,但可以定義常量。

(4)實現接口的非抽象類必須實現接口的所有方法。

(5)每個類可以實現多個接口,這些接口用逗號隔開,同時,一個接口可以被多個類實現。

第六章:重點看一下實驗四

1.容器——Collection(接口)和Map(接口).Collection——Set(接口)和List(接口)。其中,List必須保持元素的特定順序,常見的實現類有ArrayList和LinkedList;Set不能有重復元素,常見的實現類有HashSet和TreeSet。

Map——一組成對的“鍵值對”對象,即其元素是成對的對象,常見的實現類有HashMap和TreeMap。

第七章 1.異常類的根類是Throwable類,它的兩個直接子類是Error類和Exception類。

2.異常中常用的5個關鍵字為:try,catch,finally,throw,throws.其中,try和catch:用于捕獲異常;finally:無論try塊中的異常是否拋出,finally中的代碼塊總能被執行;throw:拋出異常;throws:聲明異常。

3.“未被檢查的異常(Unchecked Exceptions)”和“受檢查的異常(Checked Exceptions)”——

Unchecked Exceptions :編譯器不檢查方法是否處理或拋出的異常,即不做處理,編譯時不報錯。

Checked Exceptions:受編譯器檢查的異常,即不做處理編譯時通不過。

4.常見的幾種Checked Exceptions:ClassNotFoundExceptionIOExceptionInterruptedExceptionFileNotFoundException.(盡可能的記幾個吧,以防不測)第八章

1.流--字節流和字符流;

流--節點流和處理流。

2.所有的輸入流都是從抽象類InputStream和Reader繼承而來。所有輸出流都是從抽象類OutputStream和Writer繼承而來。3.字節流:InputStream和OutputStream;字符流:Reader和Writer;

4.節點流:直接與文件等底層打交道,如FileInputStreamFileOutputStreamFileReaderFileWriter.處理流:相當于包裝流,套在節點流上,方便數據處理。相關一些用法,具體參考最后一次實驗。

下載JAVA期末總結終極版word格式文檔
下載JAVA期末總結終極版.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    Jsp&Servlet(Java)總結

    Jsp&Servlet(Java)總結 一、Jdbc中核心類 1.將Driver對象注冊到DriverManager //注冊驅動 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 2.DriverManag......

    Java排序總結

    倒敘排序 第一種利用一個數組來盛放后,再來倒敘輸出 public class daoxu { } 第二種利用一個變量來轉換后,倒序輸出 public class daoxu { public static void main(String......

    Java線程總結

    Java線程總結 首先要理解線程首先需要了解一些基本的東西,我們現在所使用的大多數操作系統都屬于多任務,分時操作系統。正是由于這種操作系統的出現才有了多線程這個概念。我......

    Java實習總結

    Java實習總結Java實習總結1進一步了解Java開發的相關知識,掌握Java開發的基本技術,豐富Java開發的實戰經驗。學習SQL的基礎知識及正確的運用方法,ssh等企業應用框架和有用的相......

    Java 正則表達式總結

    正則表達式大全 正則表達式大全 匹配中文字符的正則表達式: [u4e00-u9fa5] 評注:匹配中文還真是個頭疼的事,有了這個表達式就好辦了匹配雙字節字符(包括漢字在內):[^x00-xff]......

    Java面試題總結

    二、Get和Post的區別 1.get是從服務器上獲取數據,post是向服務器傳送數據, 2.get傳送的數據量較小,不能大于2KB。post傳送的數據量較大,一般被默認為不受限制。 3.get安全性非......

    JAVA學習總結

    ==========Java學習總結========= 從3月8號開班以來我們已經學習Java 有3個多月了,主要學習了Java基礎知識、OOP(面向對象)、JavaSE、ORACLE(數據庫)、JDBC WebBasic、JQUER......

    JAVA課程總結

    DAY01 JavaSE第一天課程安排 ##### 目標:開發第一個JAVA小程序,了解掌握相關概念##### 內容:1、了解計算機相關概念 2、下載安裝Java開發環境 3、開發第一個Java程序4、開......

主站蜘蛛池模板: 无码人妻精品一区二区三区9厂| 人妻巨大乳挤奶水hd免费看| 亚洲愉拍自拍另类图片| 国产精品igao视频| 98在线视频噜噜噜国产| 丰满少妇被猛烈进出69影院| 美女裸体a级毛片| 两个男人吮她的花蒂和奶水视频| 成人网站免费在线观看| 亚洲欧美日韩综合久久| 国产欧美va欧美va香蕉在| 夜夜高潮夜夜爽夜夜爱爱一区| 无码人妻精品一区二区三区久久| 香蕉久久福利院| 国产麻豆精品一区| 久久综合色之久久综合| 亚洲性色av私人影院无码| 大地资源中文在线观看官网第二页| av天堂中av世界中文在线播放| 爽到高潮无码视频在线观看| 国产香蕉97碰碰视频va碰碰看| 无码人妻aⅴ一区二区三区| 日本视频高清一区二区三区| 99久re热视频这里只有精品6| 狠狠色丁香婷婷久久综合蜜芽| a级无遮挡超级高清-在线观看| 国产人妻精品区一区二区三区| 国产精品熟女高潮视频| 在线亚洲综合欧美网站首页| 无码内射中文字幕岛国片| 成本人无码h无码动漫在线网站| 一区二区和激情视频| 人妻少妇久久中文字幕| 又大又粗又爽的少妇免费视频| 国产精品无码午夜免费影院| 精品国产色情一区二区三区| 国产人妻精品久久久久久| 欧美多人片高潮野外做片黑人| 亚洲人成网站18禁止一区| 熟女人妻av完整一区二区三区| 内射干少妇亚洲69xxx|