版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 JAVA程序執(zhí)行內(nèi)存分析 內(nèi)存分析 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 內(nèi)存中的存放 code segment data segment stack heap 存放代碼存放代碼 靜態(tài)變量,字符串變量靜態(tài)變量,字符串變量 局部變量局部變量 new出來的東西出來的東西 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 Birthdate類 class BirthDateclass BirthDate private int day; private int day; private int month; private int mon
2、th; private int year; private int year; public BirthDate(int d,int m,int y) public BirthDate(int d,int m,int y) day=d;month=m;year=y; day=d;month=m;year=y; public void setDay(int d)day=d; public void setDay(int d)day=d; public void setMonth(int m)month=m; public void setMonth(int m)month=m; public v
3、oid setYear(int y)year=y; public void setYear(int y)year=y; public int getDay()return day; public int getDay()return day; public int getMonth()return month; public int getMonth()return month; public int getYear()return year; public int getYear()return year; public void dispaly() public void dispaly(
4、) System.out.println(day+-+month+-+year);System.out.println(day+-+month+-+year); JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 TestTest類類 public class Testpublic class Test public static void main(String args) public static void main(String args) Test test=new Test(); Test test=new Test(); int date=9; int date=9; BirthD
5、ate d1=new BirthDate(7,7,1970); BirthDate d1=new BirthDate(7,7,1970); BirthDate d2=new BirthDate(1,1,2000); BirthDate d2=new BirthDate(1,1,2000); test.change1(date); test.change1(date); test.change2(d1); test.change2(d1); test.chang3(d2); test.chang3(d2); System.out.println(date=+date); System.out.p
6、rintln(date=+date); d1.display(); d1.display(); d2.display(); d2.display(); public void chang1(int i)i=1234; public void chang1(int i)i=1234; public void chang2(BirthDate b)b=new BirthDate(22,2,2004); public void chang2(BirthDate b)b=new BirthDate(22,2,2004); public void chang3(BirthDate b)b.setDay(
7、22); public void chang3(BirthDate b)b.setDay(22); JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 內(nèi)存中變量存放說明 Test test=new Test(); test為局部變量,指向new出來的對象 test:xxx stack heap JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 內(nèi)存中變量存放說明 int date; 定義局部變量,占一塊內(nèi)存 stack date:9 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 內(nèi)存中變量存放說明 BirthDate d1=new BirthDate(7,7,1970);BirthDate
8、 d1=new BirthDate(7,7,1970); 局部變量局部變量d1d1,指向,指向newnew出來的對象出來的對象 stack d1:xxx y1970 m7 d7 heap day month year 構(gòu)造方法調(diào)用結(jié)束后,構(gòu)造方法調(diào)用結(jié)束后,d,m,y將被釋放將被釋放 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 內(nèi)存中變量存放說明 test.change1(date);test.change1(date); 調(diào)用調(diào)用TestTest中的中的change1change1方法方法 stack date:9 i i:9 i:1234 傳值傳值 賦值賦值 調(diào)用結(jié)束,調(diào)用結(jié)束,i被
9、釋放被釋放 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 內(nèi)存中變量存放說明 test.change2(d1); test.change2(d1); heap stack d1:xxx b:xxx day:7 month:7 year:1970 傳地址傳地址 new:xxx day:22 month:2 year:2004 傳地址傳地址 1 2 3 4 5 6 方法調(diào)用結(jié)束后方法調(diào)用結(jié)束后b和和new消失消失 7 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 內(nèi)存中變量存放說明 test.chang3(d2);test.chang3(d2); stack heap d2:xxx b:x
10、xx day:1 month:1 year:2000 d:22 1 3 2 4 傳值傳值 傳值傳值 方法調(diào)用結(jié)束后方法調(diào)用結(jié)束后b和和d消失消失 5 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 三維坐標(biāo)中的點 class Point int x,y,z; Point(int a,int b,int c) x=a;y=b;z=c; void getDistance(Point p) return (x-p.x)*(x-p.x)+(y- p.y)*(y-p.y)+(z-p.z)*(z-p.z); Point p1=new Point(1,2,3); System.out.println(+g
11、etDistance(new Point(0,0,0); JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 上例內(nèi)存分析 System.out.println(+getDistance(new Point(0,0,0); stack heap x:1 y:2 z:3 x:0 y:0 z:0 p1:xxx p:xxx 1 3 2 傳地址傳地址 調(diào)用結(jié)束后調(diào)用結(jié)束后p被釋放被釋放 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 thisthis關(guān)鍵字的引用關(guān)鍵字的引用 public class Leafpublic class Leaf int i=0; int i=0; Leaf(int i)
12、this.i=i; Leaf(int i)this.i=i; Leaf increament() Leaf increament() i+;return this; i+;return this; void print()System.out.println(i=+i); void print()System.out.println(i=+i); public static void main(String args) public static void main(String args) Leaf leaf=new Leaf(100); Leaf leaf=new Leaf(100); l
13、eaf.increament().increament().print(); leaf.increament().increament().print(); JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 thisthis關(guān)鍵字的引用關(guān)鍵字的引用 Leaf leaf=new Leaf(100);Leaf leaf=new Leaf(100); stack heap this i:100 i:100 調(diào)用結(jié)束后調(diào)用結(jié)束后i被釋放被釋放 leaf:xxx 想象想象this在類中在類中 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 thisthis關(guān)鍵字的引用關(guān)鍵字的引用 leaf.incre
14、ament().increament().print();leaf.increament().increament().print(); leaf:xxx this i:102 leaf1:xxx leaf2:xxx this是當(dāng)前對象的是當(dāng)前對象的引用引用 stack heap JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 thisthis關(guān)鍵字的引用關(guān)鍵字的引用 leaf.increament().increament().printleaf.increament().increament().print ();(); 相當(dāng)于以下程序段:相當(dāng)于以下程序段: leaf.increamen
15、t();leaf.increament(); leaf.increament();leaf.print();leaf.increament();leaf.print(); leaf.increament().increament().printleaf.increament().increament().print ();(); 返回返回leaf對象的對象的引用引用l1,指向,指向leaf對象對象 返回返回leaf對象的對象的引用引用l2,指向,指向leaf對象對象 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 內(nèi)存分析(一) class PointXY /class PointXY /分
16、析程序在內(nèi)存中執(zhí)分析程序在內(nèi)存中執(zhí) 行過程行過程 private double x;private double x; private double y;private double y; PointXY(double x1,double PointXY(double x1,double y1)x=x1;y=y1;y1)x=x1;y=y1; public double getX()return x;public double getX()return x; public double getY()return y;public double getY()return y; public voi
17、d setX(double i)x=i;public void setX(double i)x=i; public void setY(double i)y=i;public void setY(double i)y=i; JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 內(nèi)存分析(二) class Circleclass Circle private PointXY o;private PointXY o; private double radius;private double radius; Circle(PointXY p,double r)o=p;radius=r;Circle(Po
18、intXY p,double r)o=p;radius=r; Circle(double r)Circle(double r) o=new PointXY(0.0,0.0);radius=r;o=new PointXY(0.0,0.0);radius=r; boolean contains(PointXY p)boolean contains(PointXY p) double x=p.getX()-o.getX();double x=p.getX()-o.getX(); double y=p.getY()-o.getY();double y=p.getY()-o.getY(); if(xif
19、(x* *x+yx+y* *yradiusyradius* *radius) return false;radius) return false; else return true;else return true; public void setO(double x,double y)public void setO(double x,double y) o.setX(x);o.setY(y);o.setX(x);o.setY(y); public PointXY getO()return o;public PointXY getO()return o; public double getR
20、adius()return radius;public double getRadius()return radius; public void setRadius(double r)radius=r;public void setRadius(double r)radius=r; public double area()return 3.14public double area()return 3.14* *radiusradius* *radius;radius; JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 內(nèi)存分析(三) public class TestCircle public
21、 class TestCircle public static void main(String args)public static void main(String args) Circle c1=new Circle(new PointXY(1.0,2.0),2.0); Circle c1=new Circle(new PointXY(1.0,2.0),2.0); Circle c2=new Circle(5.0);Circle c2=new Circle(5.0); System.out.println(c1:(+c1.getO().getX()+,System.out.println
22、(c1:(+c1.getO().getX()+, +c1.getO().getY()+),+c1.getRadius();+c1.getO().getY()+),+c1.getRadius(); System.out.println(c2:(+c2.getO().getX()+,+c2.getO().getY()+),+c1.geSystem.out.println(c2:(+c2.getO().getX()+,+c2.getO().getY()+),+c1.ge tRadius();tRadius(); System.out.println(c1 area =+c1.area();Syste
23、m.out.println(c1 area =+c1.area(); System.out.println(c2 area =+c2.area();System.out.println(c2 area =+c2.area(); c1.setO(5, 6);c2.setRadius(9.0);c1.setO(5, 6);c2.setRadius(9.0); System.out.println(c1=(+c1.getO().getX()+,+c1.getO().getY()+),+c1.geSystem.out.println(c1=(+c1.getO().getX()+,+c1.getO().
24、getY()+),+c1.ge tRadius();tRadius(); System.out.println(c2=(+c1.getO().getX()+,+c2.getO().getY()+),+c2.geSystem.out.println(c2=(+c1.getO().getX()+,+c2.getO().getY()+),+c2.ge tRadius();tRadius(); System.out.println(c1 area =+c1.area();System.out.println(c2 area System.out.println(c1 area =+c1.area();
25、System.out.println(c2 area =+c2.area();=+c2.area(); PointXY p1=new PointXY(5.2,6.3);PointXY p1=new PointXY(5.2,6.3); System.out.println(c1.contains(p1);System.out.println(c1.contains(p1); System.out.println(c1.contains(new PointXY(10.0,9.0);System.out.println(c1.contains(new PointXY(10.0,9.0); JAVAJ
26、AVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 Circle c1=new Circle(new Circle c1=new Circle(new PointXY(1.0,2.0),2.0);PointXY(1.0,2.0),2.0); c1:xxx x:1.0 y:2.0 x1:1.0y1:2.0 o radius:2.0 p:xxx r:2.0 紫色的調(diào)用結(jié)束后釋放紫色的調(diào)用結(jié)束后釋放 紅色的幾位調(diào)用結(jié)束后內(nèi)存布局紅色的幾位調(diào)用結(jié)束后內(nèi)存布局 stack heap JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 Circle c2=new Circle(5.0);Circle c2=new Ci
27、rcle(5.0); c2:xxx o radius:5.0 r:5.0 x1:0.0 y1:0.0 x:0.0 y:o.o stack heap JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 System.out.println(c1:(+c1.getO().getX()+,System.out.println(c1:(+c1.getO().getX()+, +c1.getO().getY()+),+c1.getRadius();+c1.getO().getY()+),+c1.getRadius(); c1:xxx o radius:2.0 x:1.0 y:2.0 和和o里的值一樣里的值
28、一樣 1.0 返回值返回值 返回值返回值 stack heap 2.0 返回值返回值 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 c1.setO(5, 6);c2.setRadius(9.0);c1.setO(5, 6);c2.setRadius(9.0); o radius:2.0 o radius:5.09.0 x:1.05 y:2.06 x:0.0 y:0.0 c1:xxx c2:xxx x:5y:6 i:5 i:6 r:9.0 heap stack JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 System.out.println(c1.contains(p1);System
29、.out.println(c1.contains(p1); o radius:2.0 x:5 y:6 x:5.2 y:6.3 c1:xxx p1:xxx p:xxx xy stack heap true JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 static關(guān)鍵字的使用 public class Catpublic class Cat private static int sid=0; private static int sid=0; private String name; private String name; int id; int id; Cat(String name)
30、Cat(String name) =name; =name; id=sid+; id=sid+; public void info public void info System.out.println(My name is +name+ NO.+id); System.out.println(My name is +name+ NO.+id); public static void main(String args) public static void main(String args) Cat.sid=100; Cat.sid=100; Cat.mim
31、i=new Cat(mimi); Cat.mimi=new Cat(mimi); Cat.pipi=new Cat(pipi); Cat.pipi=new Cat(pipi); (); (); (); (); JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 static關(guān)鍵字的使用 stack heap data seg sid:100101102 id:100name id:101 name mimi:xxx pipi:xxx mimi pipi name name JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 類
32、的繼承類的繼承 student Person name age school stack heap 子類子類 父類父類 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 Java權(quán)限修飾符 修飾符修飾符類內(nèi)部類內(nèi)部同一個包同一個包 子類子類任何地方任何地方 privateyes defaultyesyes protectcdyesyesyes publicyesyesyesyes JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 super和this的使用 cc:xxx valeu value this super 子類子類 父類父類 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 Test
33、supr.class Stu s1=new Testsupr.class Stu s1=new Stu(C,s1);Stu(C,s1); pers name location school thissuper heap beijing Cs1 s1 nameschool nlschool name location data seg stack JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 hashcodes table hashcodes table 對象對象 對象對象 對象對象 對象對象 對象對象 每一個對象都有獨一無二的每一個對象都有獨一無二的hashcodes,通過它可以找到所在對
34、象的位置通過它可以找到所在對象的位置 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 對象轉(zhuǎn)型對象轉(zhuǎn)型casting(TestAnimals)casting(TestAnimals) class Animal class Dg extends Animal Animal a=new Animal();/ a=new Dg();/ Dg d1=(Dg)a;/ JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 對象轉(zhuǎn)型對象轉(zhuǎn)型casting(TestAnimals)casting(TestAnimals) Animal a Animal name furcolor 程序中把程序中把a當(dāng)成一只普通
35、的當(dāng)成一只普通的Animal,不能訪問,不能訪問Dg中的成員中的成員 Dg 不能訪問不能訪問 表明表明 實質(zhì)實質(zhì) 只能訪問作為父類的那部分成員只能訪問作為父類的那部分成員 Dg d1 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 動態(tài)綁定和多態(tài)(TestPolymoph) Cate c name:catname eyeColor:blue name:l1 Anima pet lady l1 實質(zhì)上指向?qū)嵸|(zhì)上指向 code seg Anima enjoy Cate enjoy Do enjoy 根據(jù)實際對象類型來調(diào)用根據(jù)實際對象類型來調(diào)用 方法方法 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)
36、存分析 星際的多態(tài)應(yīng)用 父類父類GameObject draw() 繼承繼承 使用多態(tài)使用多態(tài) JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 異常的概念異常的概念 public void someMethod() throws SomeException if(someCondition() throw new SomeException(錯誤原 因); 聲明該方法可能拋出的異常聲明該方法可能拋出的異常 構(gòu)造并拋出異常對象構(gòu)造并拋出異常對象 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 拋出異常拋出異常 try someMethod(); catch(SomeException e)
37、/異常處理代碼; 調(diào)用該方法時試圖捕捉異常調(diào)用該方法時試圖捕捉異常 定義處理異常的代碼定義處理異常的代碼 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 異常的分類 Throwable Error Exception RuntimeException 可拋出的可拋出的 系統(tǒng)錯誤,處理不了系統(tǒng)錯誤,處理不了 能處理的錯誤能處理的錯誤 經(jīng)常出的錯誤,可以不經(jīng)常出的錯誤,可以不catch 必須得必須得catch的異常的異常 運行時異常運行時異常 非運行時異常非運行時異常 method() throws SomeException. 包含包含 異常類的父類異常類的父類 JAVAJAVA程序執(zhí)行內(nèi)存分
38、析程序執(zhí)行內(nèi)存分析 異常的捕獲和處理異常的捕獲和處理 trytry /可能拋出異常的語可能拋出異常的語 catch(SomeException e1)catch(SomeException e1) . catch(SomeException e2)catch(SomeException e2) . finally.finally. 統(tǒng)一的出口,都要被執(zhí)行,可進行資源的清除工作統(tǒng)一的出口,都要被執(zhí)行,可進行資源的清除工作 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 readFile() throws IOException. method1() throws IOException rea
39、dFile() method2() throws IOException method1() public static main(String s) try method2() catch(IOException e). 拋異常拋異常 拋異常拋異常 拋異常拋異常 捕獲捕獲 處理處理 main方法可不處理,向外拋方法可不處理,向外拋 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 int s; int s; 數(shù)組定義數(shù)組定義 s=new int5;s=new int5; xxx s stack heap 自動初始化都為自動初始化都為0 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 Dat
40、e days; Date days; 數(shù)組分配空間和賦值數(shù)組分配空間和賦值 days=new Date3;days=new Date3; for(int i=0;i3;i+)for(int i=0;i3;i+) daysi=new Date(2004,4,i+1);daysi=new Date(2004,4,i+1); xxx xxx xxx xxx 2004 4 1 2004 4 2 2004 4 3 days stack heap JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 數(shù)組動態(tài)初始化數(shù)組動態(tài)初始化 int a;/int a;/定義定義 a=new int3;/a=new int
41、3;/分配空間分配空間 a0=1;a1=2;a2=3;/a0=1;a1=2;a2=3;/賦值賦值 Date days;/Date days;/定義定義 days=new Date2;/days=new Date2;/分配空間分配空間 days0=new Date(2004,4,1);/days0=new Date(2004,4,1);/賦值賦值 days1=new Date(2004,4,2);/days1=new Date(2004,4,2);/賦值賦值 數(shù)組定義與為數(shù)組元素分配空間和賦值分開進行數(shù)組定義與為數(shù)組元素分配空間和賦值分開進行 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 數(shù)
42、組元素靜態(tài)初始化 int a3=1,2,3; Date days= new Date(2004,4,1), new Date(2004,4,2), new Date(2004,4,3) ; 在定義數(shù)組的同時就分配空間和賦值在定義數(shù)組的同時就分配空間和賦值 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 數(shù)組元素的默認(rèn)初始化數(shù)組元素的默認(rèn)初始化 數(shù)組是引用類型,它的元素相當(dāng)于類的成員變量,因此數(shù)組 分配空間后,每個元素也被按照成員變量的規(guī)則被隱式初始 化 int a=new int3; System.out.println(a1); Date days=new Date3; System.ou
43、t.prinyln(days2); JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 數(shù)組作為返回值 . Date d xxxx 返回值返回值 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 數(shù)組模擬鏈表數(shù)組模擬鏈表 1 23405 01 543 2 345 0 2 02345 刪除該元素刪除該元素 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 二維數(shù)組 xxxx a0 a2 a00 a01 a10 a11 a20 a21 . . . heap stack a1 xxxx xxxx xxxx a 一維數(shù)組一維數(shù)組 數(shù)組的數(shù)組數(shù)組的數(shù)組 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 J
44、ava中多維數(shù)組的聲明和初始化應(yīng)按從高維 到低維的順序進行 int a=new int3; /動態(tài)初始 化 a0=new int2; a1=new int4; a2=new int3; int a=new int35; /動態(tài)初 始化 int a=4,2,13,32,424,32,1,32,1 2; /靜態(tài)初始化 二維數(shù)組的訪問:aij JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 二維數(shù)組的輸出 int a=1,2,3,4,5,6,7,8,9; for(int i=0;ia.length;i+) for(int j=0;jai.length;j+) System.out.print (a
45、+i+j+=+aij+,); System.out.println(); 該循環(huán)可用于二維數(shù)組的整體賦值和輸出 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 二維字符串?dāng)?shù)組 數(shù)組元素數(shù)組元素 一維一維 字符串字符串 二維二維 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 String類不可變 String s1=hello; String s2=world; s1+=s2; hello world helloworld s1 s2 新建的對象 不可變 不可變 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 容器API Collection Set List Map HashSet L
46、inkedList ArrayList HashMap 無順序,不可重復(fù) 有順序,可重復(fù)(equals) 一個一個向里裝一個一個向里裝 一對一對向里裝一對一對向里裝 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 IteratorIterator容器容器 next 元素元素 游標(biāo)游標(biāo) JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 ArrayArray與與LinkedLinked比較比較 去掉去掉 Array Linked 改時要建一個新的數(shù)組 讀時沿著鏈表向下查找 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 InputStreamInputStream流流 PipedInputSt
47、ream FilterInputStream ByteArrayInputStream SequenceInputStream StringBufferInputStream ObjectInputStream LineNumberInputStream DataInputStream BufferedInputStream PushbackInputStream InputStream 節(jié)點流節(jié)點流 處理流處理流 JAVAJAVA程序執(zhí)行內(nèi)存分析程序執(zhí)行內(nèi)存分析 OutputStreamOutputStream類類 PipedOutputStream FilterOutputStream ByteArrayOutputStr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度商品混凝土行業(yè)研發(fā)創(chuàng)新基金合同3篇
- 2024年度旅游景區(qū)停車場管理服務(wù)合同3篇
- 2024年特別定制:設(shè)備租賃借款合同
- 2024年度物聯(lián)網(wǎng)設(shè)備供應(yīng)合同
- 幼兒圖書分類課程設(shè)計
- 模擬電路課程設(shè)計與仿真
- 搶答器課程設(shè)計問答
- 櫻桃剪枝系統(tǒng)課程設(shè)計
- 2024年新式車輛融資租賃合同范本3篇
- 2024年版城市道路圍擋施工合同
- apt攻擊專項應(yīng)急預(yù)案
- 小學(xué)三年級秋季學(xué)期《道德與法治》(統(tǒng)編版)學(xué)習(xí)任務(wù)單(全冊匯總)
- 奧迪A7L汽車說明書
- 美育-美即生活 美育期末試卷及答案
- 網(wǎng)站項目功能測試驗收報告
- 自考02313電力系統(tǒng)微型計算機繼電保護歷年(12-19)真題試卷
- 馬克思主義基本原理智慧樹知到答案章節(jié)測試2023年重慶工商大學(xué)
- 合理性、先進性的證明
- 人教版數(shù)學(xué)三年級上冊分?jǐn)?shù)的初步認(rèn)識分?jǐn)?shù)的初步認(rèn)識-課件16
- 選必中第一單元大單元教學(xué)設(shè)計
- GB/T 34281-2017全民健身活動中心分類配置要求
評論
0/150
提交評論