You are on page 1of 353

core java

Java
Java
Java4

JavaGUI


I/O

Java
The Java Programming Language Basics
Identifiers,
Identifiers,
Keywords,
Keywords,and
and Types
Types

Getting
Getting Started
Started

Expressions
Expressions and
and
Flow
Flow Control
Control

Arrays
Arrays

Object-Oriented Programming
Objects
Objects
and
and Classes
Classes

Advanced
Advanced
Language
Language Features
Features

Exception Handling
Exceptions
Exceptions

Developing Graphical User


Building
Building GUIs
GUIs

The
The AWT
AWT
Event
Event Model
Model

lnterfaces

The
The AWT
AWT
Component
Component Library
Library

Applets
Introduction
Introduction
to
to Java
Java Applets
Applets

Multithreading
Threads
Threads

Communications
Stream
Stream I/O
I/O
and
and Files
Files

Networking
Networking

Java
Java Foundation
Foundation
Classes
Classes

java
Day01-Day03

Day01
java
java
javajvm

java
javaappletsapplications
java
java

java
java

JVM
CLASSPATH
java

Java
Java

SunGreen

c++Oak

MosaicNetscapeJavaHot

Internetjava(Applet)

Java()
Java

Java


Internet

Java
ITjava
java
Intranetjava

Java
95.5.23 Oakjava
98.12. java1.2java2
java1.3,java1.4
2004.12 java1.5 java5.0
java6.0,java7.0

Java

Java

java,,3
(SDK:SoftWare
Development Kits)
java SE --

java EE--
java ME,

Java

java?

Java

JavaJVM
Garbage Collection
Code Security
Verifying

Java

JVM:
,,

Java

Java

Java

Java

Javabytecode
OS

JVM
JVMsunsun,

JVM
JVM

javaJVMjavajvm
JVM

JVM

Bytecode
JVM
CPU

Java

Java
Java
Java



java.lang.System.gc()/java.lang.Runtime.gc()
Java

Java

JVM




java
JDK
http://java.sun.com
JDKJDK
JDK
Windowsjdkexe
LinuxJDKopt

WindowsJDK2
JDKjavajava

JREjava
JDK,JREJVM

,java
JDKJREJVM
jrejdkjdkjre
jrejavabytecode
jdk
jrejvmjava
JDK
binjava, exe,
javajavacjava
jrejdkjre
srcjdk
demo:java
include
docshtml
lib
Java
windowsautoexec.bat(
)
Unixshellcsh $HOME/.cshrc bsh/ksh $HOME/.profile

JAVA_HOMEjdk
windows : set
JAVA_HOME=c:\programfiles\java\jdk1.5.0_09

Java

csh: setenv JAVA_HOME /opt/jdk1.5.0_09


bsh/ksh: JAVA_HOME=/opt/jdk1.5.0_09
CLASSPATH.class

windows: set CLASSPATH=.;


%JAVA_HOME%\jre\lib\rt.jar;
csh: setenv CLASSPATH .:$JAVA_HOME/jre/lib/rt.jar
bsh/ksh: CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar
PATH
PATH
path
windows%PATH%; Linux$PATH:
windows: set PATH=%PATH%;%JAVA_HOME%\bin;
csh: setenv PATH $PATH:$JAVA_HOME/bin
bsh/ksh: PATH=$PATH:$JAVA_HOME/bin
Linuxbsh/kshexport JAVA_HOME
CLASSPATH PATH
java
javaHelloWorld.java
public class HelloWorld{
public static void main(String[] args){
String str=Hello World!;

java
System.out.println(The String is:+str);
System.out.println("MyAge is: "+age);
}
}

javapublic
publicjava
java

HelloWorld.java
\\cmddos,d:\javacode\day01
javac HelloWorld.java
day012.class



StringS string str=HelloWorld!";
outoutSystem.otu.println(The String is: "+str);


HelloWorld

,
\\cmddos;cd d:\javacode\day01
java HelloWorld()
java Student

HelloWorld
java
package day01
package day01


,com.shunshi.abs.model
.
com.shunshiurl
com.sun/com.ibm
absmodel/

MySecondJava.java
package com.shunshi.corejava.day01

MySecondJava.java package corejava.day01;
javac d . MySecondJava.java

JVM
-d





JVM

javajava corejava.day01.MySecondJava


java MySecondJava

jvm

cd corejava\day01,java
MySecondJava

Java


CLASSPATH
java
java

javac java
-d
javacjavac/javac -help
java [] java
jdb [] debug
javadoc jdkapi
java
//
/**/ ,
/***/

javadocMySecondJava.java
MySecondJava.java
javadocMySecondJava.java
javadoc d .\doc MySecondJava.java

Java
jdkAPI
jar {ctxu}[vfm0Mi] [jar-file] [manifest-file] [-C directory] files //

jar
jarsunzip
jarjava,
.class
jar: d:\corejava\day011.classjar

jar -cvf first.jar .\corejava


c jar
v
f jar
jarcorejavaMETA-INF2
jar
jarclasspath

jar
day01.jarcorejava\day01.class
MyThirdJava
MyThirdJava.java

Jarimport
day01.jarCLASSPATH
day01MySecondJava.class
javacode\day01MySecondJava.java
MyThirdJavajar

MySecondJava
corejava.day01.MySecondJava msj=new
corejava.day01.MySecondJava();
Stringrt.jarCLASSPATH
+
lang
MyThirdJava.javaString class String{}
JVMString

+
import .
import .*;

JDK
java.langJAVA
StringMathIntegerThread
java.awt/javax.swing/java.awt.eventjava

java.appletjava
applet
java.iojava
I/O
java.net
java.utiljavajava
javajava

Day02

java
java
java
java







Java

//
/*..*/

2:1
/***/
java
javadoc/**..*/

javadoc d . Hello.java,
doc

;
{ }
tab,,

Java


_ ,$,
_,$,;

java

_abc , $ABC ,2A ,A# ,For,


Java

TotalSumShunshiStudent
MyFirstJava
PlayerTeacher
,
getName()
setDoctorBirthday()
_ javafinal
final int MARK_GREED=22;
package com.shunshi.corejava.day01

Java
Java
abstract do implements private throw boolean double import protected

throws
break else instanceof public transient byte extends int return true
case false interface short try catch final long
static void
char finally native super
volatile class
float
new
switch
while
continue for null
synchronized default if package this
Java
javac++c++c++

c++java
sizeof
c++sizeof
163264

Java
JVM
java

truefalsenullC++

Java
java

gotoconstJava

?
javafinalconst
gotoc++
gotogoto
c++goto?
Javabreakgoto
break
break out
outout
breakgotogoto
javaenum assert
enum
assert

Java

boolean true/false
byte 8 1
short 16 2
int 32 4
long 64 8
char 16 unicode 2
double 64 8
float 32 4

boolean
Javaboolean
boolean b=true;
Javabooleantrue,false
Javabooleanintc++
C++,0false,0true
booleanint
c++booleanint
int a=1;
if(0<a<2) cout<<a<<endl;

Integer
byte,short,int,long
Java4
byte: 1 128(-27)-127(27-1)

Integer

short: 2 32768(-215)-32767(215-1)
int: 4 2147483648 (-231) -2147483647 (-231-1)
long: 8 263-263-1

Java
Javac++ java
c++Java

byte
Byte8 1 28=256 (-27)-128127(27-1)
-128-127-127-128

0
1
1-5
81-1800
0111111112710000000-128

Integer

-128+127=-1
byte

long lL
int0xH 80O 10D
10
int

short s1=10000; short s2=40000;


long l=40000L;
Long la=1234567l;
int ia=0x55; //
int ib=011;//8
byte bb=0x771;//
TestIntBool.java
byte a=1, b=2; byte c=a+b; int d=a+b;
byte e=2;e=e+2; e+=2;
int ia=0x2aff; byte bb=(byte)ia; System.out.println(bb);
boolean bl1=false; if(bl1==false) System.out.println(bl1);
boolean bl2=true; if(bl2==1) System.out.println(bl2);

char

char
char 16 2c++,unicode
unicode
unicode16 \u0061
2unicode216
127ASCII

char
charshort16
unicodeunicode
unicodeASCII
0-127unicodeASCII
ASCII A:65 a:97 0:48
unicode1610
char zhchar=; char enchar=a; char enchar1=97;java
int char

char ucchar=\u0061; char uchar1=\u61;unicode16


216416
charintTestChar.java

String
Java

\ \ \\ \ \n \ttab

\b
\0\u0000 unicode0
String
Stringjava8
StringjavaString
Java
Java\0
StringJavajdkapi
String
String str1=Hello;
String str2=new String( World!);
String
+
String s1=12; int ia=3; int ib=4;
System.out.println(s1+ia+ib); System.out.println(ia+ib+s1);
char charAt(int)int
System.out.println(str1.charAt(0));
String concat(String)StringString

System.out.println(str1.concat(str2));

String
boolean contains(charSequence s)

String str3=Hello World!; System.out.println(str3.contains(str1));


boolean equals(String)2,
String s2=Hello; String s3=Hello;
System.out.println(s2.equals(s3));
boolean equalsIgnoreCase(String)2

String s4=heLLo; System.out.println(s4.equals(s3));


System.out.println(s4.equalsIgnoreCase(s3));
int indexOf(String/char)/
-1
System.out.println(str3.indexOf(Wor));
System.out.println(str3.indexOf(o));
length()
System.out.println(str3.length());
TestString.javaString

float fF
double dD

float fa=123.4f; float fb=123.4; double doublefloat

float fc=12.5E300F; float fd=(float)12.5E301;


double da=123D; double db=123.456d; double dc=123.45e301;

TestFloat.java
0double d=0.0/0.0; System.out.println(d);
double a=2.0,b=1.91,c=0.09;
if(a-b==c) System.out.println(ok);else System.out.pringln(no ok);
on ok


22

okif(Math.abs(a-b-c)<(1e-6)) System.out.println(ok);
Math

lang
Math
Math
abs()

sqrt()
pow()
cos(),sin(),tan(),ctan()
random()0-1
TestFloat.javaMath
Math.abs(-5)
Math.sqrt(9)
Math.pow(2,3)
Math.random()*1000-100

2

abab

java8boolean7

7
byteshortintlongfloatdouble
char



int a=0x2aff; byte b=(byte)a; b-1

DataTypeTest.java


byte+byteint
byte a1=1,a2=2;byte a3=a1+a2;()
+=
byte c=3; c=c+3; c+=3;System.out.println(c);
int,intlongfloat
float fa=37; System.out.println(fa);
int ia=(int)fa; System.out.println(ia);
long la=0xffffffffffL;float fb=la;System.out.println(fb);
long lb=(long)fb; System.out.println(lb);

int a=0x2aff; byte b=(byte)a; System.out.println(b);
floatdouble
float fe=1234.56f; double de=fe; System.out.println(de);
float ff=(float)de; System.out.println(ff);

System.out.println(5/2);
System.out.println((float)5/2);
charint
char c1=A; int iic=c1;System.out.println(iic);
char c2=99; System.out.println(c2);

Java

?

int day,
month, year;



,
,
int myBirthDay, myBirthMonth, myBirthYear;
int yourBirthDay, yourBirthMonth, yourBirthYear;

(date)
Java
Java
Java(
)
Java(
)

Java


class Student{
private String name;
private boolean sex;
private int age;
private String major;

public Student(String name,boolean sex,int age,String major){


this.name=name;
this.sex=sex;
this.age=age;
this.major=major;
}
public void setName(String name){
this.year=year;
}
public void setSex(boolean sex){
this.sex=sex;
}

Java
public void setAge(int age){
this.age=age;
}
public void setMajor(String major){
this.major=major;
}
public String getName(){
return name;
}
public boolean getSex(){
return sex;
}
public int getAge(){
return age;
}
public String getMajor(){
return major;
}
}
Studentint,float
Student stu; Studentstu
name,sex,age,majorname,sex,age,majorstu

Java

Student
Student stu; stu=new Student(LiDW,true,22,computer);

int x;x=7; float y=9.9f;
int
new

int x; x=7;

Student stu;Student stu;stu


Student
StudentStudent
stujavastuc++

Javac++java
(Student)
Javac++
C++int* p; p++,p--,*p

Java
++,--java

Java
Java

4

324
stu=new Student(LiWD,true,22,computer)
Student
stustu

Java

Student stu1=new Student(LiWD,true,22,computer);


Student stu2=stu1;
stu2,stu1stu2,stu1
stu1Studentstu2

Java

Student stu3=null;
stu3name,age
NullPointerException

(
)
Student stu4=new Student(LiWD,true,22,computer);
stu4=null;

Java
Java

java.lang.System.gc()JVM

Java
java.lang.System.gc()

Javajvm

Javac++
C++

Java

;;;
There are students and a teacher in classroom

Java

=11
=*=/=%=+=-=<<=()>>=()>>>=&=()
^=()|=()
byte b1=2; b1+=2; b1=b1+2;

>>=<<=,instanceof()= =!=
Java
>

>=

<

<=

instanceof

!=

==

+,-,*,/,%
5/2 (float)5/2

Java


>>(,2)<<(,2)>>>()

0
0
int a=68; a=a<<34; System.out.println(a); 0
a<<34a<<(34%32)
int in1=20;System.out.println(in1>>1); 10 System.out.println(in1>>>1);
10
int in2=-20;System.out.println(in2>>1); -10 System.out.println(in2>>>1);

&()|()~()^()
int a=0x5a2b; int b=0x7332; a&b a|b a^b

int a=0x8a3d;

Java
a880 a&0xff00
a881 a|0x00ff
a88 a^0x00ff
a880 (a^0xff00)&0xff00
a13572468
0101010185
a^85

&& truetrue
|| truetrue
! !true=false; !false=true;

java &|c++
C++c++
&|
java, &|

Java
&&,||&,|

&& ||
&& ||

&|
int in3=1; if((2>3)&&((in3=2)>3)) System.out.println(in3);
if((2>3) & ((in3=2)>3)) System.out.println(in3);
? :,;

Java


()

Day03

java
java
java

java

java
java

Java
Java

,
null
byteintshortlong

0 0-9223,453,4 023
00-7,023,065 0895
0x0X0-9,A-F0xff,0X97a 0xeg9
L0xffL,99Lint
float(32)double(64)
float:fF, 2ef,.4f,0f,5.022e+23f 6.7e+34
double:dD,3.84d,3.6D
truefalse


java2unicode\u
unicode a,\t,\u0027,final char c=2;,dd

Java
.hello,33,\t\u0024
null

final ; final =;
Java

X0Y3


0+3=3
int x=0,y; y=x+3;

booleanbyteshortintlongcharfloatdouble

:

Java

Java




byte b=3; int t=b;//bint



=()
int x; byte b=(byte)x;
xbx

Java

=;

{}

{int t;
..
}

{int t;
..
{int m

}
}



TestLocal.java
java

/
/
int 0 char \0 float 0.0 double 0.0 boolean
false null
/static
TestLocal1.java

System.out.println(a);int a;
{}
TestLocal1.java

2
Java


2

Java

java

*
PrintRectangle.java

PrintRectangle1.java
printRect(int x,int y)

printRect
,printRect

printRect

Java
CRS
:

( 1, 2..){

return ;
}
void

(12);
=(1,2,.);
System.out.println((1,2..));
java

TestArgument.java

staticstaticstatic

Java
Javamain(),
staticstaticstatic

Java

java
java . a ba,b
String[] args
Java, args[0]


int
Integer.parseInt(String)

(overloaded)

OverLoad.java

Java

if(){

if(){

}else if(){

}
if(){

}else if(){

1;
}

}else {
2;

else{
;

}
}

1
1

2
2

n 3

Java
TestIfElse.javaif,else

if(a>b)
if(c>b) d=10;

else d=20;
System.out.println(d)

switch(){
case 1:

1
break;
.
case n:
2
break;
default:
2
break;
}

switch
byte,int,short,char,
case,case/
.
casebreak
default
(end ,top,middle)

TestSwitch.java
()
90
A80-89B70-79
C60-69D60E
(
break)

System.exit(0);

case1

case2

casen

defaultn

1
2
n

Java

switch,break

for
for2
for(int i=0;i<=10;i++)



while
while(){

do-while
do{
;
}while()

Java

3


for
while
do..while
3


1-1/3+1/5-1/7+1/9-1/11+50
50for
1-1/3+1/5-1/7+1/9-1/11++1/n, |1/n|<1e-5
while


,

Java

java.util.Scanner Scanner sc=new Scanner(System.in); sc.next(),nextInt()


sSc.nextLine(),nextDouble();
n,.
:
int,15!;
long,20!;
float34!
double,170!
,,
public class TestFact{
public static void main(String[] args){
int number=0;
Scanner sc=new Scanner(System.in);
System.out.println()
number=sc.nextInt();
if (number<=0){
System.out.println("Error!");
System.exit(0);
}
double result=1;
for(int i=1;i<=number;i++){
result*=i;
}
System.out.println(number+"!="+result);
}}

Java

break ;
break out; out
continue;
continue out; out

break,continue

TestBreak.javabreak out
public static void main(String[] args){

out:for(int i=1;i<=9;i++){

for(int j=0;j<i;j++){

for(int k=0;k<j;k++){

for(int m=0;m<k;m++){

if(i+k+j+m==24){

System.out.println(i*1000+j*100+k*10+m);

break out;

}}}}

Java

java



int[] a;
a=new int[10];
aa++,a--
a.lengthlength

TestArray.java
for(int i=0;i<a.length;i++){//length

System.out.print(a[i]+ );//0
0
}
System.out.println();

Long0Lfloat0.0fdouble0.0
char\u0000booleanfalse

Java
null
String[] str=new String[10];System.out.print(str[i]+ );
TestArray.java

int[] a={3,7,54,24,98,1,0,5};a

int[] b=new int[]{4,6,8,32}; []{}


2()
int[] b1=new int[4]{8,4,3,1};[]{}

public class TestArray1{

public static void main(String[] args){


int[] a;//
a=new int[10];//
for(int i=0;i<a.length;i++){
System.out.println("a["+i+"]="+a[i]);
}
int[] a=new int[10];

Java

int[] a={1,2,3,4,5,6,7,8};//
for(int i=0;i<a.length;i++){
System.out.println("a["+i+"]="+a[i]);
}
//int[] b=new int[10]{3,2,5,7,4,6,9};//error!

int[] a={2,4,6};
print(a);

}
static void print(int[] m){
for(int i=0;i<m.length;i++){
System.out.print(m[i]+"\t");
}
System.out.println();
}

Java

Java

ExpandArray.java
Static int[] expand(int[] m){
int[] n=new int[m.length*2];
for(int j=0;j<m.length;j++){
n[j]=m[j];
}
}
static int[] expand(int[] m){

int[] n=new int[m.length*2];

System.arraycopy(m,0,n,0,m.length);

return n;

Java
java

javajavajava

System.arraycopy(m,0,n,0,m.length);
a0 a0 a02 a03
Java
0 1

a1 a11a12 a13
int[][] a=new int[3][4]; int[][] a;a=new int[3][4];
0
int[][] c1=new int[][3]; int[3][] d=new int[3][]{{4,5},{7,8},{9,2}}; a2 a2 a22 a23
0 1
int[3][] d=new int[][]{{4,5},{7,8},{9,2}};
int[][] b={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int[][] c=new int[][]{{4,5},{7,8}};
int[][] d=new int[3][];printArray(d);//
Java
bb
b.length3;
bb[0],b[1],b[2]
,b[0].length==b[1].length==b[2].length
bTestTwoArray.java
for(int i=0; i<b.length;i++){
for(int j=0;j<b[i].length;j++){
System.out.print(b[i][j]+ );}}
System.out.println();

Java

public class TestTwoArray{


public static void main(String[] args){
int[][] a=new int[3][];
a[0]=new int[2];
a[1]=new int[4];
a[2]=new int[3];
//int[][] a=new int[][3];//Error!!!!
//int[][] a={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

System.out.println(a.length);
System.out.println(a[0].length);
System.out.println(a[1].length);
System.out.println(a[2].length);
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
System.out.print(a[i][j]+"\t");
}
System.out.println();
}

Java

}
}
ArrayAccess.java


static int[] data={3,2,5,7,6,3,8,9,4};
lendatalen=data.length;
insert static void insert(int pos,int val)posval
()
len==data.length

expand
(pos<0 || pos>len)
pos==len
pos
Delete static void delete(int pos) pos
(pos<0 || pos>len)
pos==len
pos

static void disp()

Java

public class TestInsertDelete{

static int[] data={2,5,7,6,3,8,9,4};

static int index=8;


static void insert(int pos,int value){

if (index==data.length) expand();
for(int i=index;i>pos;i--){

data[i]=data[i-1];

data[pos]=value;

index++;

static void delete(int pos){

index--;

for(int i=pos;i<index;i++){

data[i]=data[i+1];

Java
static void expand(){

int[] a=new int[data.length*2];

System.arraycopy(data,0,a,0,data.length);

data=a;

static void print(){

for(int i=0;i<index;i++){

System.out.print(data[i]+" ");

System.out.println();

public static void main(String[] args){

insert(2,1);// 2 5 1 7 6 3 8 9 4

print();

delete(1); // 2 1 7 6 3 8 9 4

print();

}
}
,

java
Day04-Day09

Day04

IDE-Eclipse

java

java

ArraySort.javajava

javajava
java
java
java

Java

java.util.Arrays.sort()
javasun

Student
Dog
java
java

java

,,


StudentStudent
PaperPaper

Student

()

Paper

Student


()

javajava
sun
,

Java


Student

java

String str=new String(123);


oop
java

Java
package ;
package0-1

import
classpath

jdkpath,classpath5.0,6.0path

import0-n
(public) class {...}
publicjavapublic
n
classclass
{}{}


public class {



{}

}

Java


0-n

int age;
private int age;
public int age;
(=);

get

Java
private void method(){.}
public int getAge(){.}
java
0-n



{return }
0



void
return
public static void main(String[] args){.}
java
javaoverload

java
jvm

Java

javajava

java System.out.println()
System.out.println();System.out.println(abc);System.out.pri
ntln(1);


(food)


OverLoad.java

java
0-n

public Student(String name,int age,boolean sex){.}

Java
([])[]{}


.class1-n

2



jvm

2

TestInit.java
new
2
private int data=1;
public TestInit(int m){data=m;}

Java

{}






java

int a=10; char c=s; double dd=1.2


a

10

dd

1.2

Student s; s=new Student();


Student s; java
sStudent

Java

s=new Student();java
s
s

1A2B
S:1A2B

new
Student()

Student s=new Student()


sss

s.study();

s.age

TestRef.java

Java

TestParameter.java

Java

Javathis
this
TestThis.java
this
this this.
this

this()
this()
class ClassA{
public ClassA(){System.out.println(ClassA());}
public ClassA(String s){
this();System.out.println(ClassA(String));}
}

this()

Java
this()
class ClassA{

public ClassA(){
this(abc);System.out.println(ClassA());}
public ClassA(String s){
System.out.println(ClassA(String));}

}
Java
Javajava
{}{}

void
c/s1
(Account)
id: password:name:
personId: email:
balance:
deposit: ,doublewithdraw:
,double
:,

Day05

javajava

java


javascriptjavascript


TestEncapsulation.java

.
get,set

TestCreditCard.java


get,set
TestCreditCard.javaset6
get

CreditCard
java beansjava beansjava
java beansget,setget
set get,set+(),get,set


,expand()
,




TVATM



,


2
public int doubleNumber(int a){
return a*2;
//return a<<1;
}


CRS

int getPrice(fltNo,seatClass,psrClass,rate){

rate
result=;
return result;//
}
200050result=
+50
200350

2004

C/S
:Bank Account Management System BAM
:C/S,ATM
.
1:()(Account)
:
id:
password:
name:
personId:
email:
balance:
:
deposit: ,double
withdraw:,double
:
,
2:()
Account

java

class Student{

}
class Teacher{

,
,,
,

class Person{

}
Animal

Cat
Dog

is-a
Dog is a Animal Student is a Person
is-ahas-a

is a


class extends {}
Java


Student-Person-Animal-PersonStudent

Student
java


Java

Robot

java









Java
private (default) protected public

TestAccessProperties.java

Java

private

default

defaultdefault

protected

++

public

publicprivatedefault
protectedTestAccessMethod.java

protected


java

Java

private

default

protected

++

public




TestOverride.java

TestOverride1.java
TestOverride2.java
Jdk5.0


TestOverride2.java


TestSxZg.java

super

this

ClassA
a=20
ClassB
a=10
a=30

ClassB cb=new ClassB()


ClassA2a
a=20,a=10
this.aa=10


super.
super.
super



ABCDDAB
CD

B C


TestConstructor.java



class A{public A(){..}} class B extends A{}

class B extends A{public B(){super();..}}


super(),super()

super()
super()
this()

,
Object
ObjectextendsObject
extendsextends Object(extends
Object)


TestInhericeObject.javaObject

TestInhericeObject.java
thissuper
super()
thissuper

TestConstructorSub.java

/

TestAccessMethod.javaZhangJCprintMoney
HuZG
TestAccessMethod.javaZhangJCprintMoney
super.printMoney()ZhangJS

/
/

TestCARP.java


is-a

/is-a

protected

TestCARP.java/
/extends

/



/

:,

TestPolymorphism.java


,,
,,
,
TestPolymorphism.java



instanceof

instanceof

truefalse.
,

,,,
,,,
,

TestPolymorphism1.java

TestPolymorphism2.java

OK


,,

?
TestOverLoadDT.java


,,

1.Shape,:
:Rect(),Circle();Rect:Square(),
;,Shape
,
2.
Employee,
getSalary(int month)
100
SalariedEmployeeEmployee
;HourlyEmployeeEmployee
1601.5
SalesEmployeeEmployee

BasedPlusSalesEmployeeSalesEmployee

Day06

static
static

final
final
java
abstract

abstract

static

static
static?private,public,protectedjava
private,protected,publicstatic
static,,,
static int age;
static int method(){}
static{}
class Outer{.static class Inner{}}
static
static
,
TestStatic.java

TestCount.java

static
static
static

static
()


jvm

?
new Student()jvmstudent
student.javastudent.classstudent.class
jvmnew Student()student.class
jvmjvmStudent
new student()Student

,;

static

static
staticstatic

staticstatic

static
static
static,,
,

staticthissuper



MyClassstatic
TestCount.javathissuper
TestStaticFGDT.javastatic
javamainstatic
Javamain

static
main
mainjvm
mainmainmain

javajvm
static
static static{.}
static
TestClassLoad.java
class Person{static String name;}
public class TestClassLoad{
public static void main(String[] args)
Person p1=new Person();
Person p2=new Person();
}
}
p1,p22new Person()name
new
()

static
{}


TestClassLoad.javaclass Person

TestClassLoad.java2

TestClassLoad.javaclass Personstatic
static
static

TestStaticInitBlock.java
new
static

TestStaticInitBlock.java

class PersonageTestStaticInitBlock

TestStaticInitBlock.javanew2
static

static

static




TestClassLoad1.java


(,)

(
)

m(),

static-

static
?

.,
23
Singleton

new
new?

class Person{Person father;}


new

new
class Person{
private Person p=new Person();
public Person(){}
}
static,,

static

class Person{
private static Person p=new Person(); private Person(){}
}

class Person{
private static Person p=new Person(); private Person(){}
public static Person getPerson(){return p;}
}

TestSingleton.java
2

hs1instance
instancenew

final

class Bank{
private static Bank bk=new Bank(); private Bank(){}
public static Bank getBank(){return bk;}}
final
final?finalc++const
final
final;;;
final
final
TestFinal.javafinal
final
TestFinal.javafinal
final
TestFinal.javafinal
finalfinal

static final static final int a=10;


static final

final

static final int a=10;


static final
staticstatic final
static final int a; static{a=10;}
TestFinal.java
finalstatic final
finalfinal int b=20;b
bb
final
bbb
static finalbstatic final
final
TestFinal.java
static final

static final

final
final
final

final
final

final
final
static final

static final


final
final
final
final
final

TestFinal.javafinal

final

final

final

final
final
finalfinal
final-
final,

final class C{
private final int a;
private final int b;

public C(int a,int b){this.a=a;this.b=b;}


}


jdk(final)
Stringfinal
StringString
StringTestString.java

finalString
String

String

String s1=123; String s2=123; s1s2

s1

123

s3
new Stringnew

String s3=new String(456); String s4=new String(456); s3s4


new

s2

456

s4

456

finalString
intern()
TestString.javaintern()
intern()

String s=123; s=456


String s2=678; s2=s2+9;
01dc

123

S:01dc

01dd

02dc
S2:02dc

456

S:01dd
03dc

678

S2:03dc

6789

String+
String,+,String
,+(
)
: String s=A;s=s+B+C+D+E;

finalString
TestStringLJ.java
String+

StringBuffer
StringBuffer
StringBufferjava.lang
StringBufferappend()

StringStringBuffer
String s=A; StringBuffer sb=new StringBuffer(s);
StringBufferString
String s=sb.toString();
TestStringBufferLJ.java
StringStringBuffer
String,String,
StringBuffer,,
TestStringBuffer.javaString,StringBuffer

abstract

abstract
abstractabstract
abstract;
abstract
TestAbstractClass.java
abstract
abstract


abstract






Sub
abstract

abstract
abstract

; abstract void method();


abstractabstract

abstract
abstractabstract
abstract
abstractabstract
abstract

TestAbstractMethod.java

abstract

abstractabstract

abstract




static
static
final
final
abstractabstract


staticabstract
finalabstract
privateabstract


staticabstract
abstractstatic


finalabstract
abstractfinal
final
privateabstract
privateabstract

TestModifier.java

Day07

Object
String


String
StringBuffer,StringBuilder



TestInterface.java



public class TestInterface{


public static void main(String[] args){
}

}
abstract class ClassA{
public static final int a=10;
public static final double b=Math.PI;
public abstract void m1();
public abstract void m2();
}

Interface IA{
int a=10;
double b=Math.PI;
void m1();
void m2();
}



,,

interface interface {}
IA.class


javapublicclassclass
javapublic
.class
,
,,
TestInterface.javapublic



TestInterface.java
newnew


TestInterface.javanew

TestInterface.java

implements
TestInterface.java

TestIn.java
.

TestInterface.java



:,,
.class.
,

.
new,
,implements
,.

TestInterface.java
(),


,
TestInterface.java


USB

usb

Shape
SalariedEmployee
2000,BasePlusSalesEmployee1000
,,
(2
2
2
)

javaDriver
java
Driver
DB OS



sun

java
java

Java
DB
DBjavaDB
TestJDBC.java


DB

12

()
()
APPDriver


TestArraySort.java

TestJDBC.java

TestCallback.java

.class

(
)

Object
java
Object
Object
ObjectObject

Object
Objectfinalize()
finalize()
finalize()

finalize()c++javac++

Object
finalize()

java

java
javajavajvm

finalize()


jvm
finalize()


finalize()
TestFinalize.javafinalize()
Objectclone()
TestClone.javaclone

2
clone

Object
Objectcloneprotected
.clone()
Object
clone()clone()
ObjectcloneObject
clone()public
cloneclone
Cloneable
instanceof
Cloneablejava

Cloneable
cloneCloneNotSupportedException
clone
class EmployeeCloneableclone
clonecloneclone
clone()java

class EmployeeSalary salary


clone

Object
super.clone()Objectclone
ObjectObject
age
2


Objectclone

class SalaryCloneableEmployee
clone
clone

ObjectCloneable
clone
clone
clone()
clone()clone()

clone()

Object
clone()Cloneablepublic

clone()
Cloneable
instanceof


Cloneableclone
Cloneableclone
cloneCloneNotSupportedException
EmployeeStirngString
CloneableStringclone
StringString

Cloneable
clone
clonejdk
5%Cloneable

Object
ObjecttoString()
ObjecttoString()public String toString(){return

getClass().getName() + '@' + Integer.toHexString(hashCode()); }


TestToString.javatoString()
String
StudentStudent

toString

ObjecttoString()

TestToString.javatoString()
toString()
toString()

toString()

Objectequals()
Objecteuqals()public boolean equals(Object o){return
this==o;}Objectequals()
String
TestEquals.java
String==false,equalstrue
Student==false,equalsfalse

Object
StudentequalsequalsObject

StudentObjectequalsfalseObject
equals
StringequalstrueStringObject
equals
equals

Objectequals

Object
Objectequals

Student s1=new Student(wj,26); s1.equals(s1)true;
true

s1.equals(s2)true;s2.equals(s1)true;

s1.equals(s2)true, s2.equals(s3)true;s1.equals(s3)
true;
5
91,94,9791949497
91975
equalsequals

Object
equals

,Studentequals()
public boolean equals(Object o){
if(o==this) return true;//
true
if(o==null) return false;//o
false
if(!(o instanceof Student)) return false;//2
false
oStudent
oStudent
Student

if(this.getClass()!==o.getClass())return false;//getClass()

2
Student st=(Student)o;//oStudent
if(st.getAge()==this.getAge() &&
st.getName().equals(this.getName()))
{
return true;
}else{ return false;}
}
Employeename,age,salary;
toString(),equals(),clone()

Java

java
Java
intIntegerchar
CharacterbyteByte
intchar

intInteger charCharacter byteByte floatFloat double Double


boolean Boolean long Long short Short
String
TestWraper.java

new
int i=10; Integer ii=new Integer(i);
.
Value();
Integer ii=10; int i=ii.intValue();
String
String
+int i=10; i+;
toString()double d=3.2;
String str1=Double.toString(d);
Stringparse()
String str2=32; int i=Integer.parseInt(str2);

Java
StringtoString() Integer

ii=34;String str3=ii.toString();
Stringnew String str4=33.33;
Double dd=new Double(str4);
Integer i1=new Integer(2); Integer i2=new Integer(2);
System.out.println(i1==i2);System.out.println(i1.equals(i2));
int temp=Integer.parseInt(24);System.out.println(temp);
String


Integer

Integer

Integer
Double,int
double

Integer.toString(int)

int

String .valueof(int)

Integer.parseInt(String)

String

String,StringBuffer,StringBuilder
jdk5.0


String,StringBuffer,StringBuilder
String
split()
TestSplit.java
trim()
TestSplit.java
indexOf(String) StringString
intTestIndexOf.java

TestPool.javaString
replace(,)/replaceAll(,)

TestReplace.java
matches()
TestZz.java

String,StringBuffer,StringBuilder
StringBufferStringBuilder

StringBufferStringBuilderAPI
StringBuilderjdk5.0StringBuffer

StringBuffer

StringBuilder

TestStringBuiler.javaStringBuilder

Employee,String name,int age,double salary


clone(),finalize(),toString(),equalse()
62

Shape

SalariedEmployeeHourlyEmployee2
2
2

Day08

4
java



class Outer{

class Inner{
.
}
}
class Outer1{}
Inner1Outer1Outer1

class Innter1{

}
Class Outer2{Inner2Outer2,Outer2,

public void test(){


class Inner2{
.
}
}
}

MemberInner
MemberInner.java


2.class
MemberInner.classMemberInner$Inner.class2
22
.class

TestMemberInner.java


this.
.this.


StaticInner
StaticInner.java

static

TestStaticInner.java


./.

LocalInner.java


TestLocalInner.java


final
final
mainmain
main



interface JavaTeacher{void teachJava();}

class University

new

3


new

TestAnymousInner.java

new


final

TestMainAnymousInner.java



2TestInAbstract.java


TestRobot.java
Person


java


java
Throwable
JavaThrowableThrowable

exception:

Exception

error:

java

error

Throwable

Exception(),Exception(message)
message

Exception

RuntimeException
UncheckedException

RuntimeException:(
)

(
)

:
Exception(cause)
Exception(message,cause)
cause

RuntimeException
CheckedException
RuntimeException

RuntimeException,
RuntimeException



TestFirstException.java
0

test
mainmain
jvm


mainmain
jvm

02
2

ArithmeticException

ArithmeticException

TestFirstException.java
IndexOutOfBoundException



TestFirstException.java
NullPointerException


TestFirstException.java
ClassCastException

TestFirstException.java
NumberFormatException

Eclipse

()

TestFirstException.java
:


TestException.java

mc new ();
mcthrows

new ()

throw new ();


throw


TestException.javaNullPointerException
mcmbmamainjvm
JavaThrowable
String
TestException.java
(FileNotFoundException,SQLException,EOFException)
NullPointerExceptionRuntimeException
FileNotFoundException,SQLException,EOFException
RuntimeException

java2

Java
try{} catch(Exception e){}
throws Exception;

throws
throws

java
throws

TestException.javathrows

java
mcthrows
throws FileNotFoundException,EOFException,SQLException
mbthrows
throws FileNotException,EOFException,SQLException
mathrows
throws IOException,SQLException
mainthrows
throws Exception

Java
throws

throwsNullPointerException
()throws/try-catch

throws
try-catch
throws
maIOException,
FileNotFoundException,EOFException,SQLException
mainException
throwsjava

throws
throwstry-catch

SQLException
javajdkthrows

TestThrows.javathrows

Java
try-catch

try-catch
try{..}catch(Exception e){..}finally{..}
try
catch

finally
try1catch0-nfinally0-1
catch0finally1
TestTry.javatry-catch-finally
try-catch-finally
try
catch
finally

try-finally
try-catch-finally
TestException.javatry-catch

catchcatch
catchcatch
catchcatch

Java

TestTry.java
Trytry-catch2
tryreturn
finally
trycatch,catchreturn
finally
catchprintStackTrace()


ExceptionNullPointerException
catche

catch

ExceptionNullPointerException
NullPointerExceptionExceptionjava

catch


jvmjvm
catch

Javafinally
try-catchfinally
TestFinally.javafinally

finally{}catch
finally{}return
finallyreturntry,catchreturn
returnreturn
trytryfinally
trycatch

catchfinally
finally

try{

try-catch-finally
.

try{
try{
try{
try{.}
catch
.
.
.

catch(){
}catch(){ }catch(){ }
throws
.
.
.
finally{
}
}
}
.

}catch(){}
finally
finally{.}
}

Javafinally
TestFinally1.javafinally

a
returnfinally
finallyreturntry,catchreturn
TestFinally1.javafinally
finally
finally
try-catch-finally

ThrowableString messageString
message
messageException
messagemessage

super(message);Throwablemessage
throw
TestException.javamc
throw new NullPointerException()

Java
throw new FileNotFoundException()
throw new EOFException()
throw new MyException()
ThrowablegetMessage()
messagecatchmessage
System.out.println(e.getMessage());
printStackTrace()


TestExceptionOverride.java







Java

java

Exception
RuntimeException
2

message
class MyException extends Exception{
public MyException(){super();}
public MyException(String
message){super(message);}
}
class MyException extends RuntimeException{
public MyException(){super();}
public MyException(String
message){super(message);}
}

Java
throws
TestAgeException.javaPerson

age0-130
AgeException
throws




try
try
try
throwstry-catch
throwstry-catchthrows
try-catch
try-catch
throws
try-catch
throws


BAM
BalanceNotEnoughException :

()
BalanceSmalerZeroException:

RegisterException:,

LoginException:,id,

LoanException:,
,

BusinessException

Java

TestAssert.java

java1.4


assert : String

AssertionError
:


assert a%2==0 : a

jdk1.41.4
javac source 1.4 .java
java enableassertions(-ea)

Day09
java
java

List
Set
Map

List
Set
Map

c++

java

int int[] Set


Map
List
DBMap
List/SetListSet


DB

Collection:Object,
List:Collection

Collection

Set:Collection

List
Set

Set
HashSet

124
LinkedHashSet
816..
SortedSet SortedSet:Set

Set
ArrayList

TreeSet
Vector
1,1,2,3,5,8

LinkedList

HashMap

LinkedHashMap

MapMapkeyvalue keyvalue
HashTable
keyObject,key,value
Object,value
SortedMap SortedMapMapMap
keyMap,
,
TreeMap

Map


LinkedLinkedLinkedList

LinkedHashSetLinkedHashMap
Linked

Linked

Linked
Linked
ListArrayListVector
ArrayList jdk1.3
Vector
Vector jdk1.3Vector
java
MapHashMapHashTable
HashMapkey,valuenull
HashTablekey,valuenull

List
List
APIList

List

add(object)
add(index,object)indexList
List0
addAll()

clear()
remove(Object)
remove(index)index

contains()(
equals
)
get(index)index
indexOf()
isEmpty()
set(index,object)
APIList

ListArrayList
ListequalshashCodeequals
,hashCode
ListIterableIterable

Listiterator()size()

ListEObject

ListArrayList
ArrayListListList

TestList.javaArrayList

=new
list.add(3)new Integer(3)

list0
getArrayListget

objobjtoString()
objString,IntegertoString

ListArrayList


jdk5.0jdk5.0
TestList.java
listStringList<String> list=new
ArrayList<String> ();
list.add(3)3String
String str=list.get(i),Object
DB
ArrayList

List<Student> list=new ArrayList<Student>();


APIArrayList
ArrayListListSerializable()Cloneable
Iterable,Collection,RandomAccess
1ArrayListIterableArrayList

Iterator3
1hasNext()
truefalse
2next()
3remove()

ListArrayList

TestArrayListIterator.java;
Collection
2ArrayListCloneableArrayList
ArrayListclone()
3ArrayListRandomAccessRandomAccess
ArrayListget()

ArrayList
1ArrayList()10
211ArrayList
3ArrayListArrayList
(1)ArrayListObject
ArrayListObject

(2)10

(3)ensureCapacity(..)
ArrayListadd,addAll()ensureCapacity()

(4)ensureCapacity
jdk1.6Arrays.copyOf(..)

jdk1.52newelementData

System.arrays.copy(oldData,0,elementData,0,oldData.length)

ListArrayList
4ArrayList
/ArrayList
ArrayList

TestCapacity.java
ArrayList10
System.currentTimeMillis();
197011 0000
List
1TestListSort.javaList
Collections.sort()
2Collections

Collectionssort(list)List
TestListSort.javalist4Integer
Collectionssort
3Collectionssort
TestListSort.javalist4Student
sort
12

Collections
2String,Integer

ListArrayList
3
ComparablecompareTocompareTo

Collectionssortsort
ComparecompareTo

ComparablecompareTo
sortcompareTo

TestListSort.java Student
ComparablecompareTo
/

ListVector
VectorListVector
ListVector
ArrayList List ArrayList
Vectorjava
VectorArrayList


Vector,,,,
ArrayList

ListLinkedList

ArrayListVector
ArrayListVector
ListLinkedList
LinkedList
LinkedList

LinkedListList
List
LinkedListArrayList
1LinkedList

LinkedList
Stack
Stack
LinkedList
2ArrayList

List-LinkedList

ArrayList
StackArrayListLinkedList
Stack
ArrayList

Stack:java
StackStack
Vector VectorVector
StackVector

VectorStack

sun/
javaStack
LinkedList
LinkedListMyStack
LinkedList/
TestMyStack.java
Set
Set
SetCollectionCollection
Set

JavaSet
SetHashSetLinkedHashSetSet

SortedSetSortedSetTreeSet
Set

add(E)
addAll(Collection)

clear()
remove(Object)Object
removeAll(Collection)

isEmpty()
equals()2
hashCode()hash
SetSet
Set
SetSet
List
Set
TestSet1.javaSet
TestSet2.javaSet

SetHashSet
SetListfor+get()Set

jdk5.0foreach
foreach
jdk5.0 5.05.0
TestSet2.javaforeach
for(String ss: s)System.out.println(ss);
foreachforeach
foreachfor( :/)
SetHashSetapiHashSet
HashSetRandomAccess
get
HashSetHashMap
HashSet1616
0.75
HashSet

1616*0.75=1212
1316
12
HashSet
HashSet2

HashSet

HashSet
HashSetHash()
Hash
HashSetHash
HashhashCode()
Object

s1-s66Set
1HashSethashCode(),equals()

2HashHashSet
hashCode,equals
3equals()
Hash
4Hash
hashCode()

equals()

hashCode

Hash
5Hash
HashSetObjecthashCode(),equals()
HashSet
Object hashCode(),equals()
TestSet1.javaStudentset

StudenthashCode,equals

6Hash
s2,s3,s1

7Hashequals
2
equals2
2
hashCodehashSet
2hashSet
hashCode,equals
2Hash
8HashSet
1hashCode()
hashCodeequals
2equals()equals()
true

Hash
3

int-2147483648
21474836474294967296
2
1323
2
4

9hashCode
equals
s1-s44hashCode
int hashCode(){return 0;}0
equals()

hashCodeint hashCode(){return age;}


equals

10StringHashSet
hashCode,equalsjava
jdkhashCode()equals()
TestSet1.javaStringHashSet
TestPerson.javahashCode(),equals()

Hash
class PersonidnameTestPerson
HashSet
1PersonhashCodeid
equalsidid
setHashSettoString()
2PersonhashCode9
equals
3equalsequals
true
4hashCodeidequals
equals
TestPerson.javahashCode(),equals()

hashCodeSystem.out.println(Hash
Code +id);
equalsSystem.out.println(equals +id);
TestPerson.java
1p4.setId(4)equals id
hashCodeequalsHash Code
id2hashSet16
hashhashCode
2set.add(s1)System.out.println(ccc);
cccHash Code idHashSet
hashCode()

Hash
3HashSettoString()HashSet
toString()@
java16hashhash
hashCode()
hashCode()9equals
truehashCode,equals
1hashCode1
hashCode1equals1hashCode
1equals1hashCode1
equals
equalsidhashCode
9p11hashCodep21
hashCode1equalsp31hashCode,2
equalsp41hashCode3equals
4HashSetaddhashCodeHashSet
addhashCodeequals
equals

p1-p4new Person()4
PersonhashCodeHashSet
hashCodeSet
hash
HashSet

HashSet
5HashSetTestPerson.java

set
p1
p2
p3
p4

1
2
3
4
new Person()
new Person()
new Person()
new Person()

new HashSet()
p1-p4
hash
TestPerson.java
p4.setId(3)hashCodeidp4
p3hashequals
equalstruep4
equalsfalse
hashsetp4
p4.setId(3)hashCode
idequalsfalse

6hashequalstrue
HashSethashMap
hashCodeidequalsid
p4.setId(1)foreach
ZhangJCp1p4p4

SortedSet-TreeSet
SetSortedSetTreeSet
SortedSetSet
SortedSetSetSortedSet
Set
SortedSetadd

SortedSetSetSortedSet
SortedSetTreeSet
TreeSet
TreeSetSortedSetTreeSet
TreeSet
TreeSet
1

3 2 4 1 5
1
3

3
2
4

2
3
1

5
4

TestTreeSet1.javaTreeSet

SortedSet-TreeSet
TestTreeSet1.javats.add(14)
TreeSet
14
1TreeSet
compareTo
2TreeSet
ComparablecompareTo
3javaIntegerString
ComparablecompareTo
TreeSetComparable
compareTo
TestTreeSet1.javaString

TreeSet
compareToTreeSet
TestTreeSet2.java
4id
TreeSetcompareToTreeSet
Comparable
compareTo
TestTreeSet2.javas4.setId(1)3
s1zhang

SortedSet-TreeSet

TestTreeSet2.javaStudentcompareTo
name4
TreeSets1s4idTreeSet
TreeSetcompareTo
TreeSet
compareToids4s1idcompareTo
0s4TreeSet
compareTonames4s1id
compareTo0s4TreeSet
TreeSetHashSet
StudenthashCode,equalsTreeSet

1TreeSetcomparable
compareTocompareTo0
compareTo0

2TreeSethashCode(),equals()
TreeSet
hashCode()equals()
TestTreeSet2.javaStudenthashCode()
super.hashCode()equals()

TreeSethashCode()hash

3TreeSet
ComparablecompareTo

Set
4TreeSetSet
SortedSetComparable
compareToComparable
TreeSet
StudentComparablecompareTo
ts.add
Set
TreeSetArrayList
Set2
SetHashSet2
HashSetTreeSet
HashSetArrayList
TestSetSort.java
addAll(Collection)HashSet


Bank
(
)
EmployeenameStringageintsalarydouble
EmployeeListsalary
salaryageagename
EmployeeHashSet

Java
JavaGUI
Day10-Day12

Day10

Map
Map
Map
Map
GUI
awtswing

awt
swing

Map

Map
MapMapkeyMapvalue
MapkeyvalueObjectkeyvalue
MapMapkey,value
Map
MapMap

Map
Map
Map
HashMap

List

set

HashTable

List

Map

SortedMap

set
List

TreeMap

sortedMap:
key
TreeMap:
key
key
null

Map
Map
containsKey(Object key)Mapkey
get(Object key)Mapkeyvalue
keySet()Mapkeyset
put(Object key,Object value)Map
remove(key)keyvalue
clear()Map
size()Map
Map
Map
Map2HashMapHashTable
HashMapHashTable
HashMapArrayList,
key,valuenull
HashTableVector,
key,valuenull
TestMap1.javaHashMap
put(key,value)
Mapkey,valuenullput(null,null)
key,valuekeySet()key,key
value
key
Mapkey

Map

Mapkey,valuekeyvalue
MapkeyHashSetkeyHash
hashCode(),equals()2String
jdk2
hashCode(),equals()
TestMap1.javaPerson
MapSortedMap
SortedMapkeyvalue
SortedMapTreeMapTreeMapkey
TreeMapkeynull
Map
Map
Mapput(key,value)
Mapkey
HashMapHashSethashCode(),equals()
keyhash
hashCode(),equals()
HashMapkey
MapkeyString8

Integer,Doublesun
hashCode,equals
Mapkeyput(key,value)
putvalue

Map
Map

MapCollection,Iterator
Map3
valueMapvalues()
MapvalueCollection,Collection
Iterator
TestMap2.javaMap
keyMapkeySet(),
MapkeyCollection,Collection
keyMapget(key)
value,
MapentrySet()

TestMap2.javakeySet()Map
MapSortedMapTreeMap
SortedMapMapkey
SortedMapTreeMapkey
TreeMapkeynull
TreeMapkeyTreeMap
keyComparable
compareTocompareTo

Comparable

Map
Compatator
Comparator
Comparatorcompare(Type x,Type y)
Type
TestTreeMap.javaTreeMap

GUI
GUI
GUI
GUI

GUI
web,GUIc/s

client

c/s:,
c/sQQ,MSN,
server
;c/s

GUI
http request
browers

server
Html response

b/s:java
httphtml
html
c/s
b/s

Javaserverjava
100%
GUI
Java
Javajava2
java.awtjavax.swing
awtswing
java.awtsunjava

2D3D
javax.swingawtIBMawt
-JFCawt2D3D
SunJFC
jdk1.3swingjavajdkswing
awtswing



addset


GUI
awt
swing
awtswingAPI
java.awt
BorderLayout/CardLayout/FlowLayoutCheckBox
CheckBoxGroupTextFieldFrameColor
FontGraphicsButtonLabel
javax.swing
swingawtawtButtonswingButton
awt95%swingswing
J(J+)
swing
JButtonJLabelJFrameJTextField
JMenuBarJMenuItemJMenuJSlider
JTextArea


swingawt
swing3D2Dawt
swingJTable,JTreeawt
swingJComponentawtComponent

awtswing

100%

OS
Applet
swing 1.4jdkswing5.0swing 100%
Applet

awt

swingawt
java.awt
Component
javax.swing
JComponent
Componentswing

swing

swingJFrame,JButton,JPanel
JFrameJButtonAPI
JFrame

JFrametitletitleJFrame

JFrameJFrame
setVisible()
JFrameadd()JFramesetLayout()
setCursor() setMenuBar()
setTitle()setVisible()setState()
FirstFrame.java



JPanel
JPanel
JPanelJFrame

swing
FirstFrame.javaJPanel
API

JPanel(
)2
JPanelsetSize()setBackground(
)JPanel
JFrame
JPanelsetBackgroundColor;Color
Color
r,g,bColor(r,g,b)
Color

FirstFrame.java


jdk1.4

jf.add(jp)

jf.getContentPanel().add(jp)
FirstFrame.java

setLayout()
java

FrameJFrame
JFrame
DialogJDialog JDialog,JPanel

PanelJPanel

/JFrame
JFrameadd()
setVisible,setSize()remove()()setLocation(
)FirstFramesetLocation()

javaLayoutManager

java.awt

FlowLayout

BorderLayoutFlowLayoutCardLayout
GridLayoutGridBagLayout
JFrameBorderLayoutJPanel
FlowLayout
2
FlowLayout


word

FlowLayoutAPI
3()(int align)
(align,hgap,vgap)

setAlign()setHgap()setVgap()
FlowLayout1TestFlow.java

BorderLayout
newFlowLayout(FlowLayout.LEFT,20,30)
20,30LEFTFlowLayout
LEFTRIGHTCENTER
BorderLayout
BorderLayout
BorderLayout5
-EAST-WEST-SOUTHNORTH
NORTH-CENTER
W
E
S
T

CENTER

E
A
S
T

SOUTH

BorderLayoutJFrame,JDialog

CENTER

JPanelJPanelJPanel
BorderLayoutAPI
BorderLayoutCENTER-
EAST-WEST-NORTH-SOUTH-

GridLayout
BorderLayout2

BorderLayout

BorderLayout
5
String[]
5for5
JFrameaddadd()
TestBorderLayout
GridLayout
GridLayout


JPanelJPanel

Btn1 Btn2
GridLayout
Btn3

Btn5

Btn4

CardLayout
GridLayout

GridLayoutAPI
GridLayout3
2
4

GridLayoutgetRows(),getColumns()
getHgap(),getVgap()


Font,Colorapi

Font,Colorjava.awtFontColor
Font

FontFont()

Font

Color
r,g,b
TestGridLayout.java
CardLayout
CardLayout

CardLayout

bbs

next

CardLayoutAPI
CardLayout 0

CardLayoutfirst()
last()next()
previous()
show()
()
5

showname
namename
name
showname
show

GridBagLayout

4first,last,next,previous

String[]for
1-6JLabelJLabel
,JPanel,JLabel

BorderLayoutJPanel
JPanelFlowLayout
31JFrame,2
JPanel
TestCardLayout.java
GridBagLayout:
GridBayLayout

GridLayout
GridBagLayout

GridBagLayout
GridBagLayoutAPI

GridBagLayoutGridBagConstraint
setConstraints(GridBayConstraints)

GridBagConstraintsfill
HORIZONTAL
VERTICALBOTH2

GridBagConstraints.weightx/weighty

GridBagConstraints.gridwidth/gridheight
1
GridBagConstraints.girdx/gridy

gridx=0,gridy=0
GridBagConstraints.REMAINDERgridx
gridy

GridBagLayout
GridBagConstraints.RELATIVEgridx

gridy

APIGridBagLayoutTestGridBagLayout.java

Button1

Button2

Button3

Button4

Button5
Button6

Button7
Button9

Button8
Button10

List
Iterator

Student
0-9,+-*/=.BackspaceCCE
+/-

Day11

java
java
AWT
AWTjava
AWT

AWT

Java
Java
javajavaawtawtjava
java
java
Java3
EventSource


JVM

EventObject



JVM
EventListener

JVMJVM

Java

java
javaawt
java

sunEventSource

;sun
EventObject

sunEventListener


SunEventObjectjava.utilEventObject
sunEventSource
java.awt.eventsunjava.util

java.util.EventObject
java.util.EventListener


javaCloneable

2
2
()
java.utilEventObject

EventObject(source)source
EventObjectgetSource()
Java
java
EventObject
EventListener
/
EventSource
Java

java

EventSource






Java
Fall in loveTestEventModel.java
AWT
AWT
awtjavasun

awtjavaawtjavaGUI
GUIsun
awt
awt

AWT

AWT Event
awtjava.util.AWTEventEventObject

awt
java.util.EventObject
java.util.AWTEvent

Javalist
qq,msnctrl+enter
AdjustmentEvent

ActionEvent

ComponentEvent
ItemEvent

//

TextEvent

//

ContainerEvent
ComponentEvent

FocusEvent

InputEvent

WindowEvent

KeyEvent
MouseEvent

awt

Awt

awt

AWT Event

ActionListener

actionPerformed(ActionEvent e)

ActionEvent

ItemListener

itemStateChange(ItemEvent e)

ItemEvent

MouseMotionListen
er

mouseDragged(MouseMotionEvent e)
mouseMoved(MouseMotionEvent e)

MouseMotionEvent

MouseListener

mousePressed(MouseEvent e)
mouseReleased(MouseEvent e)
mouseEntered(MouseEvent e)
mouseExited(MouseEvent e)
mouseClicked(MouseEvent e)

MouseEvent

KeyListener

keyPressed(KeyEvent e)
keyReleased(KeyEvent e)
keyTyped(KeyEvent e)

KeyEvent

FocusListener

focusGained(FocusEvent e)
focusLost(FocusEvent e)

FocusEvent

AWT Event

ComponentListen
er

componentMoved(ComponentEvent e)
componentHidden(ComponentEvent e)
componentResized(ComponentEvent e)
componentShow(ComponentEvent e)

ComponentEvent

AdjustmentListene adjustmentValueChanged(AdjustmentEve
r
nt e)

AdjustmentEvent

WindowListener

windowClosing(WindowEvent e)
windowOpened(WindowEvent e)
windowIconified(WindowEvent e)
windowDeiconified(WindowEvent e)
windowCloased(WindowEvent e)
windowActivated(WindowEvent e)
windowDeactivated(WindowEvent e)

MouseMotionEvent

ContainerListener

componentAdded(ContainerEvent e)
componentRemoved(ContainerEvent e)

ContainerEvent

TextListener

textValueChanged(TextEvent e)

AWT Event
AWT

()
awt
awt


addxxxListener(xxx)
APIaddxxxListenerxxx
xxxxxxEvent
xxxListener

AWT Event
APIaddxxxListenerxxx

xxxxxxEvent
xxxListener

awt


getSource()addxxxListener()

AWT
AWT

TestAWTEvent.java


ActionListener
ActionEventActionListener
ActionListeneractionPerformed


addActionListener(
)
TestAWTEvent

AWT Event
AWT
+1-1

1JFrame1JPanel2JButton1

JLabel
JFrameBorderLayout,JPanelFlowLayout
JFrameJLabelJPanelJPanel2JButton
ActionEventActionListener
actionPerformed
Counter.java

first,previous,next,last

Observer

javaab

Observer

ab
a()
b
ab
2javaa
;abb

JavaAPI

java
java.util.ObservableObservable

Observable
Observable()0
Observale

addObserver()
deleteObserver()
setChanged()

Observer
notifyObserver()
setChanged()
notifyObsever()
java.util.Observer
Observer
update(Observableo,Object arg)
update
updateObject arg

notifyObserver(arg)

TestObserver.java

awt
ComputerActionListener

20JPanelGridLayoutJPanel
BorderLayoutJFrame
20String[]JButton[]


20

0-9
0

+-*/
booleanappend
truefalse;appendfasle
append
0-9equals
Stringmatch match(\\d) \d
C/CE 0 appendfalse
Backspace
+-*/
=
+/-
.

append

appendtrue;+-*/+/-append
false

Day12

javaJFC
JFC
javaawt

swing
ColorChooser,JTable,JTree
Timer

javaApplet
javaJApplet


ComputerActionListener

20JPanelGridLayoutJPanel
BorderLayoutJFrame
20String[]JButton[]
20
0-9 append
C/CE 0setText(0) appendfalse
Backspace subString()
+-*/ appendfalseoperator
=
+/-
. .
.

2=
0

boolean
appendtruefalse

appendfalseappend

0-9equals
Stringmatch match(\\d) \d
append

appendtrue;+-*/+/-append
false
Computer.java

`-0.41=0.5900001
javaBigDecimal
BigDecimal
BigDecimaljava.math

BigDecimalAPI
BigDecimal
2doubleString

BigDecimal(double)BigDecimal(String)
BigDecimal
+add(..)-subtract(..)*multiply(...)/divide(..)

BigDecimal
BigDecimal

TestBigDecimal.javaBigDecimal
doubleBigDecimal

StringBigDecimal
BigDecimaldivide
divide
BigDecimalROUND_HALF_UP
BigDecimalString

JavaJFC
JFC
JFCNetscapeIBM
JFCGUIawt
swing
swingJFCsunJFC
javaswing2D3D
swing

JavaJFC
Your Application
swing
AWT
Component Window
Button,Frame,
ScrollBar Font

Frame AWT Event


Graphics Tool kit

Dialog
Color

Java 2D
Drag and Drop
Accessibility

AWT
JFC

awt
AbstractButton
JComboBox

JButton
JMenuItem

JLabel
JList

JComponent

JMenuBar

JPanel
JPopupMenu

JScrollBar
JScrollPane

JTextComponent

JToggleButton

JCheckBoxMenuItem

JMenu
JRadioButtonMenuItem
JCheckBox
JRadioButton

JEditorPane
JTextArea
JTextField
JPasswordField

JTextPane

JavaJFC
awt

JColorChooser
JFileChooser
JInternalFrame

JComponent

JLayeredPane

JDesktopPane

JOptionPane

JProgressBar
JRootPane

JPopupMenuSeparator
JToolBarSeparator

JSeparator
JSlider
JSplitPane

JTabledPane

JTable
JToolBar
JTree

JToolTip
JViewPort

JInternalFrame
JDesktopIcon





javaJMenuItemJMenu
JMenuBar
API
JMenuBar

add()
JMenuBar
JMenu
JMenuJMenuItem
//

JMenu.add(JMenuItem ji)
JMenuItem
JMenuJMenuItem
JMenuString JMenu(String )

Add()
JMenu


JMenuItem

3
JMenuItem(String )
JMenuItem(Icon )
JMenuItem(String Icon )

JMenuItem
ActionEvent
ActionListener

JMenuItem JMenuJMenu JMenuBar
JMenuBar JFrame
JFramesetJMenuBar()

JMenuaddSeparator()

1JMenuBarnJMenunJMenuItem
JMenuString[]JMenuJMenu[]

JMenuItem
String[][]
JMenuItem[][]
TestMenu.java



2String


xxxUtil

2String
JMenuBar
TextMenu.javaGUIUtil.java




WindowEventWindowEvent
WindowListener
WindowListener
JFramesetDefaultCloseOperation()

WindowListenerAPI


WindowListener7

7
windowClosing

{}
GoodBye
TestWindowListener.java
WindowListenerthisnew

WindowListener
76

awt

OK
java
+Adapter


java


windowClosing

final
new

WindowListenerWindowAdapter
TestWindowAdapter.java
GoodBye,


final

String
java

java

22

Icon
MiAdapterMisellMi

Icon
Icon
IconIcon
ImageIconIcon
ImageIconImageIcon(String
)
JButtonJButton(Icon icon)

jpg,gif,bmp
IconTestIcon.java
JTextAreaJTextField
JTextAreaJTextField
JTextArea

JTextArea,JTextField
JTextAreaJTextArea()JFrame

BorderLayoutJTextArea

JTextAreajavaJScrollPane
JTextFieldJTextField()
JTextFieldActionEvent
ActionListener

qq


JTextFieldJTextField
JTextArea
JTextAreaJTextField
JTextArea

JTextAreasetEditable(false)
JTextField
JTextArea
JTextFieldActionEvent
JTextFieldActionListener
ChatClient.java

Timer
Timer



swingTimer
TimerAPI
Timerjava.swingTimer

ACDSee

Timer

Timer(int delay)delay
1delay1000ms
delay
Timer
start()

stop()
TimerTestTimer.java
1Hellostart
stop

JColorChooser,JSlider
JColorChooserJSlider

JColorChooser
JColorChooserAPI


ActionListener
()JColorChooser
PropertyChange
3JColorChooser
JSlider
JSlider(int min,int max)
minmax
JSlider
getValue()
ChangeEventChangeListener

R
G
B

ChangeListener

3JTextArea
JTextArea
JTextArea

ColorChooser.java

JTable
JTable

JTable
javaJTableJTable
JTableJTable

AbstractTableModel

DefaultTableModel

AbstractTableModel
getColumnCount()getRowCount()
getValueAt()getColumnName()


TestJTable.java
Student.java
AbstractTableModel


ActionEvent ActionEvent

ActionEventActionListenerActionListener
javaActionListener

ActionEvent

keyBoardListener
MouseListener
MouseListener:
MouseEvent
mouseClicked:
mouseEntered:
mouseExited:
mousePressed:
mouseReleased:
MouseEventTest.java
MouseEventgetX(),getY()

JTree
JTree

JTree
qq,msn
JTreeAPI
JTree

JTree(Hashtable)HashtableMap

key,value
Hashtable
keyrootvalue
key
HashtableHashtable

Hashtable
TestTree.java
Applet
Applet?
Appletjavajava

AppletHTMLWeb
Java .

JavaApplet
Java(container)

AppletApplication
java applicationappletjava
applicationmainmain()
java.classJVM

.class
JVM
Appletmainjava

Web
AppletApplet.classWeb
JavaApplet

Web
Applet

.class

JVM.class
Applet

AppletJVMAppletmain
Appletinit()
Applet

JavaApplet

1.

JavaApplet
AppletJVM
NoSuchMethodErrorApplet
JavaAppletAPI
WindowFrameJFrame
JavaApplet
ObjectComponentContainer
PanelAppletJApplet
AppletawtswingJApplet
Applet Component Panel Applet
JAppletWindow
JAppletJApplet
JApplet
Panel
JApplet

BorderLayout
JAppletApplet
AppletAPI
Applet
Applet() Applet
Applet
AppletApplet

JavaApplet
Applet
JVM
Applet
init()AppletApplet
init()
init()Applet
start()

start()AppletApplet
start()
URL
Applet
stop()Applet
URLstop
destroy()Applet
Applet
Applet
getDocumentBase()ApplethtmlURL
getCodeBase()Applet .classURL
htmlURL
getImage(URL baseString target)Web
Image

JavaApplet

getAudioClip(URL base,String target)Web


AudioClip
getParameter(String name)htmlname

Applet

HelloWorldApplet.java
javac
HelloWorldApplet.html

<applet>Applet
IEhtmlApplet
Appletjavaapplet
appletviewer HelloWorldApplet.htmlApplet
applet
java.class
html
html<applet>
<applet code=HelloWorldApplet.class width=300
height=300></applet>

codeAppletwidthapplet
heightApplet

JavaApplet
Eclipse
EclipseHelloWorldApplet.java
Run/Run as/Java AppletAppletOK
EclipseAppletapplet
Applet
Applet
<applet><param></param>
<param>namevalue
AppletgetParameter(name)

JLabel
applicationApplet
applet
Htmlapplet
JAppletpublicJVM
mainAppletapplet

appletinitapplet
applet
setSizeappletapplet
width,height

JavaApplet
setTitleappletJFrame
setVisibleapplet

Applet
Applet
Applet
Internet

Netscape Nevigator

/

AppletSocket
Applet

AppletJVM

Socket

Java
Java
Day13-Day14

Day13

java



OS
c++
javajavajvm
jvmjava
jvm
jvmjavajava
java.lang.Process
javaOS
OS
OSnOS

windows

OS



Windowctrl+alt+delete
Linuxps aux

java
javajvmjvmOS

(x1,y1)

jvmjvm
2

222

QQQQ
x

(x2,y2)
for
4
1x1,y1
2x,yx2,y2
3x2,y2
4
4
4


OS


Window
()

QQ


javajvm
jdkjavaw.exejvmjvm
main


java
java.lang.Thread



oscpu

winamp,QQ,IE
cpu
cpu
winamp

QQ

IE

winamp

QQ

IE

OS
cpucpu

()


cpu

X,Y


sun
IT
javasunProcess,
Thread
1cpuCPU1cpu
Suncpu
cpu

2cpu
3


cpu
cpu

cpu

cpu


java


Jvm


cpu
OS

API

OScpu



cpu
OS
OS

javaAPI
API
javajava.langjava.lang.Process

Processnew
API
2
ProcessBuilder.start()/Runtime.exec()
ProcessBuilderstart()

Runtime

API
Runtime
getRuntime()
RuntimeRuntime
Runtimeexec()
exec()
OSexec
java
execexel
windowexec

OS
Linuxwindow
windowLinux

API
java
javaRunnable
java.lang
Runnablerun()
cpucpujava
ThreadThreadjava.lang
Runnable,Thread

API
Sun

ThreadRunnableThread
API
Runnablerun

run run
run

Runnablerun
runrun
cpuThread

ThreadRunnableRunnable
Runnable
ThreadRnnable
Thread
Rnnable

Thread

Thread



javaThreadThread

Thread

OSjavajvm

TestThread.java


JVM Thread
OS
start()


211

$$$1000###1000

OS
jvm

cpu

jvm

cpu
cpucpu
1cpu1

cpu0.1s(0.1s)
60%0.1s*60%=60ms
20ms

run()os
run
run
start()osstart()

run
RunnableThread
RunnableThread
java.langRunnable

Runnableruncpu
ThreadThreadcpu
Runnable

TestRunnable.javaRunnable
TestThreadExec.java1000
@@@Runnable

OSstart

OS
start()

ThreadExec2.java
t1,t2,t3t1.start();t2.start();t3.start()3

t1,t2,t3

t1,t2,t3
new

window,Linuxstart
start()OS
start()

OS

main

t1,t2,t3t1,t2,t3
jvm




javajvm

Jvm
JvmgcgarbageCollection

jvm
jvmSystem.gc();jvm
jvm

setDaemon(true/false)
true

TestDaemon.java


OS



2
sleep
sleep()

cpu
msInterruptException
cpu
yield
yield()yield()
cpuyield()

sleepyield


sleepsleepcpusleep

cpu
yieldyield

TestSleepYield.java
sleep(100)2

Thread.sleep(100)Thread.yield()
2
2
yield()tsy1tsy2cpu

yield
tsy1.start()tsy1.setPriority(8)
tsy1tsy2tsy1
tsy2tsy1tsy1tsy2

setPriority(1-10)


setPriority(1-10)

5
sleepyieldyield

sleep/yield

yield()
WeiJ
Huzg
Zjc
WeiJ
Hiloo
Liucy

WeiJ

WeiJyield()WeiJ
OS

,WeiJ


Linux
yield()Thread -1 0

Thread-0 1Thread1

221-26
A-Z11
NumberChar.java


cpu


c++cin>>i
c++System(read)

Thread.sleep()

sleepsleep

2runSleeprun
Threadrun
Threadrun
join
join
t2t1.join()t2t1t1t2

join

2abba.join()/a.join(ms)b
bjoin2
1join()baa
b
2join(ms)b
ab
join

TestJoin.javajoin
TestJoinThreadrunmain
221join

join
joinjoin
51(),2(),3(),4(),5()
5
52()1.join()

NumberChar.java2t1
t2t1t2
M26

new

1
2sleep
3
join
OS/
yield()

start()OS
start()

OS

Jvm

21-52A-Z
1 2 A 3 4 B 5 6 C 7 8 D 9 10 11 12..52 E F G H I J K Z

Day14

java

javaFile

javaI/O
javaI/O
I/O
java

TestStack.java

:A C


C
index1

OS

sleep


Liucy,,
,Huxz,,Liucy
,;,Liucy,.
,
.
?
,Liucy,
,,;Huxz
,,,
;Liucy,,.
,.
Liucy



java

Java

javasynchronized

synchronized(o){}o
o
synchronized

Synchronized

()



Account2
AccountRunnable
DB
DBsleep
2400
2000

synchronized

Account.java
synchronized

synchronizedsynchronized

synchronized
public synchronized void m(){..}

synchronized
synchronized(this){..}

push,pop

synchronizedsynchronized

synchronized
synchronized(this){..}
synchronized(o){..} oObject
Thiso

osynchronized(o){..}
oo
o

java

synchronized(o1){..synchronized(o2){}..}

add,set

synchronized

T.java




t1
synchronized(o1){synchronized(o2){..}.}

t2 synchronized(o2){.synchronized(o1){...}.}
t1o1o1t1
o1o1t1o2

t2o2o2t2
o2o2t2o1

t1o2o2o2
t2t1o2
o1
t2o1o1o1
t1t2o1
o2
t1,t2



22
2



OS

new
start()OS

1
2sleep
3
join
OS/
yield()

sleep

start() join

OS

Os

synchronized

Jvm




huxz

huxz
liucy

liucyliucy
liucy

huxz

huxzhuxz

liucyliucy

cpujava
wait()
java
notify()/notifyAll()

wait()


notify()/notifyAll()

wait()
()wait()

notify()/notifyAll()

notify()/notifyAll()1
notify()/notifyAll()

OS

wait()

notify()|notifyAll()OS

t1:synchronized(o){
t1...o.wait();..
} t1owait() t1
oot1wait()

t1 o

t2:synchronized(o){
t2o.notifyAll()|o.notify();..
} t1ot2o
notify()|notifyAll()t1
t2t1
wait()
,notify()
OS;notifyAll,
.;

new
start()OS

1
2sleep
3
join
OS/
yield()

sleep

start() join

Os

synchronized

OS

Jvm

notify()|notifyAll()
OS

wait

java


6
2

wait()
TestProducerConsumer.java

JavaI/OFile

JavaFile
FilejavaFile
JVM File f

File
createFile()
File
javaFileFile f=new File( 1.txt
);fFile
Filef.createFile()
TestFile.javaFile
createFile,sleep
throws
File
javalist()

String[]
TestFile.java
list()
listFiles()
FileFile[]File
File[i].getAbsolutePath()
FileFilteraccept()
listFilesaccept
accept
listFilesaccept

JavaI/OI/O
FilelistFiles()

TestFile.javajava
TestFile.java,
java
JavaI/OI/O
JavaI/O
javaI/Ojvm
jvmjavaI/Ojvm

JVM

jvm
c++javaJVM

JVM


java2

JavaI/OI/O
HelloWorldStringbyte
1byte
loworld

read()

h

Java2
Javajvm
jvm
JavaIOIInputOOutput
Java
System.in
System.out


java
JVM
JVM

JavaI/OI/O

1byte
2byte




java

80

JavaI/OI/O

S
F

S+Ls+F

M
S
F
L

Java
JavaI/O
Day15-Day16

Day15
javaI/O

FileInputStreamFileOutputStream
DataInputStreamDataOutputStream
BufferedInputStreamBufferedOutputStream
PipedInputStreamPipedOutputStream
ByteArrayInputStreamByteArrayOutputStream
PrintStream
RandomAccessFile


InputStreamReaderOutputStreamWriter
BufferedReaderBufferedWriter

I/O

I/O
I/O
InputStream
InputStream
I/Ojava.io
InputStream
java.ioInputStream

InputStreamInputStream
InputStream
available()
bug
close()
InputStreamapi
CloseableCloseableclose()
CloseableIterableCloneable


javajvmjvm
jvmI/Ojvm

I/O
jvmjvm
jvmjvm
jvmjvmclose()
jvm
mark(int..)

byte
ab.txt
abcd...
def..
byte
ghijk.

read
read()

read(byte[] b)byte[]

read(byte[] b,int offset,int len)


offsetlen(
)

int,

I/O
reset()mark
skip(long n)n
OutputStream

OutpurStreamCloseable
FlushableOutputStream

OutputStreamInputStream
flush()
close()close()
flush()flush()
InputStreamOutputStreamwrite
write(int b)read()int

write(byte[] b)read(byte[] b)byte[] b

write(byte[] b,int offset,int len)read(byte[] b,int offset,int len)


offsetlen

read2
3
javaI/O

I/O

InputStream
SequenceInputStream

FileInputStream

PipedInputStream
FilterInputStream
DataInputStream

ByteArrayInputStream
ObjectInputStream

PushbackInputStream

BufferedInputStream

OutputStream
FileOutputStream

PipedOutputStream

ByteArrayOutputStream

FilterOutputStream
CheckedOutputStream
DeflaterOutputStream

DigestOutputStream

ObjectOutputStream

CipherOutputStream

DataOutputStream
PrintStream
BufferedOutputStream

I/O
I/OI/OI/O
I/OI/OI/O
I/O

I/O
FileInputStreamFileOutputStream
ObjectInputStreamObjectOutputStream
DataInputStreamDataOutputStream
String
InputStreamReaderOutputStreamWriter

BufferedReaderPrintWriter(BufferedWriter)

FileInputStreamFileOutputStream

FileInputStream
FileInputStream2
StringFile
FileInputStream
FileNotFoundException

FileStream
FileInputStreamInputStream

EOFExceptionIOException
-1
FileInputStream
try-catchthrows
read.txtabcdefghi
ReadWriteFile.java
read()
read()-11char
close()FileNotFoundExceptionEOFException
IOException
read(byte[] b)
6

String
read1.txtWelcome to beijing! I am very good!
TestReadWriteFile.java

FileOutputStream
FileOutputStream2String
File

FileStream
FileOutputStream

FileOutputStream
new
FileOutpurStream(,true)true
FileOutputStreamread
ReadWriteFile.javawrite.txt
TestReadWriteFile.java
try-catch
CopyFile.java

DataStream
DataStream
DataInputStreamDataOutputStream


String s=ShunShi
FileInputStreamFileOutputStreamString
Stringbytebyte[] b=s.getBytes()
write(b)
Stringlong
long

DataStream

1)longlong
8
2)8000000018

3),8
4)3),2-8,

5)write();,

String
8
String
write()read()

writeUTF(..)readUTF(..)String

TestDataStream.java
BufferedStream

BufferedStream
jvm

/jvm
/
BufferedInputStream,BufferedOutputStream
BufferedSteam

flush()

I/O2
flush()BufferedwriternewLine()

TestBufferedStream.java
PipedStream
PipedInputStreamPipedOutputStream

FileInputStreamFileOutputStream


PipedOutputSteamPipedInputStream
PipedSteam

PipedStream
T1

PipedOutputStream
out

PipedInputStream
in

T2

out.connect(in)
2


TestPipedStream.java
StringgetBytes()

long8

DataStream
TestPipedStream.java
BufferedStream
ByteArrayStream
ByteArrayInputStreamByteArrayOutputStream

ByteArrayStream
ByteArrayInputStreamByteArrayOutputStream

ByteArrayInputStream,ByteArrayOutputStream

DataStream
ByteArrayStream
ByteArayStream

DataOutputStream
ByteArrayOutputStream
ByteArrayOutputStream
toByteArray()
FileStream
String
getBytes()
ByteArrayStream
ByteArrayStream
ByteArrayOutputStream
DataOutputStream
writeByteArrayOutputStream

ByteArrayOutputStreamtoByteArray()

ByteArrayInputStreamread(byte[])

PrintStream
TestByteArrayStream.java
PrintStream
PrintStream
PrintStreamDataOutputStream

PrintStreamIOException
checkError()PrintStream
checkError()true
PrintStreamFlushable
flush()println()
PrintStreamprintPrintStream
print(int i)int
print(long l)long
print(float f)float
print(String s)String

println(int i)int
println(long l)long
println(float f)float
println(String s)String

PrintStream

PrintStream
print()println()

printStream.println()printStream.print()
printStream.println()printStream.print(\n)
printStream.println(String s)DataOutputStreamwriteUTF(String
s)
javaUTF-8
DataOutputStreamwriteUTF()
DataInputStreamreadUTF()
PrintStreamBufferedOutputStream

PrintStream
PrintStreamautoFlush
autoFlush
autoFlushtruePrintStream


print(\n)
println()
TestPrintStream.javaPrintStream
DataOutputStream2

RandomAccessFile
RandomAccessFile

RandomAccessFile

RandomAccessFile

RandomAccessFileCloseableDataInputDataOutput
String

RandomAccessFileFileString name
modemode
mode
rrwrws
rwd

RandomAccessFileEOFExceptionIOException

RandomAccessFile
close()
length()

RandomAccessFile
read()read(byte[])read(byte[],int,int)

write()write(byte[])write(byte[],int,int)
,Stringread()write()
seek(long pos)

getFilePointer()
skipBytes(int n)n
TestRandom.java
2



DataOutputStreamwriteChar(A)

A1AA
A88
65A
int 65010000016501000001A

RGBR,G,B3R0-255B0255G0-255

8
ASCII
A-65B-66C-67Z-90

ASCIIASCII


1250

1250



ASCII81Byte28=256
25628
ASCIIASCII
ASCII
ASCIIASCII


ASCII

ISO-8859-111
GB2312-8GB
265535
GB2312
GB2312GBK
GBK
Big5
Unicode

ABCD4810002000
DataStreamString, writeUTF()readUTF()
UTFUnicodeutf-8UTF1B,
2B,3B,4B
TestCode.java


Reader/Writer
ReaderWriter

FileReader/FileWriter
Reader/Writer


Reader/Writer

CharArrayReaderCharArrayWriter
BufferedReaderBufferedWriter
InputStreamReaderOutputStreamWriter
PipedReaderPipedWriter


InputStreamReaderOutputStreamWriter
InputStreamReaderOutpurStreamWriter
InputStream/OutputStream
Reader/Writer

InputStreamReader(InputStream in)

InputStreamReader(InputStream in,String charsetName)


charsetName

OutputStreamWriter(OutputStream os)

OutputStreamWriter(OutputStream os,String charsetName)


charsetName

getEncoding()

InputStreamReaderOutputStreamWriter
BufferedReader
BufferedWriterBufferedReader
BufferedWriter
BufferedReaderreadLine()
StringBufferedWriterwrite(String)
newLine()
BufferedReader/BufferedWriter
Reader/Writer
BufferedReader/BufferedWriter
BufferedReader/BufferedWriter
TestReaderWriter.java

newLine()I/O
newLine()readLine()

FileReaderInputStreamReader

Day16

PipedReaderPipedWriter
PrintWriter
I/O


Tokenized
Properties

OSITCP/IP
TCPSocket
TCP Socket

-PipedReader/PipedWriter

PipedReaderPipedWriter
PipedInputStreamPipedOutputStream
PipedReader/PipedWriter


T2
T1
PipedWriter
PipedReader

BufferedReader
readLine()

BufferedWriter
write(String)
newLine()


PrintWriter

-PrintWriter
WriterPrintWriter

PrintWriter
PrintWriter
jkd5.0
PrintWriterprint()8println()
write(int)write(byte[])

PrintWriterPrintWriter
nullPrintWriter

PrintWriterPrintWriter
PrintWriterprintln(Object o)
toString()
TestReaderWriter.javaPrintWriter
I/O
javaI/O
I/O

I/O

javaI/O
System.inInputStream
System.in
System.outPrintStream
System.out

System.errPrintStream
System.err
I/Ojvm


System.inInputStream


InputStreamReaderSystem.inReader
BufferedReaderSystem.outPrintWriter


TestStandInOut.java:

WeiJuan:27:female:80997901:95.5
name:WeiJuan age:27 sex:female phone:80997901
greed:95.5
ctrl+c

Stringsplit()split()String[]

I/O
class Student{String name;int age;double mark;}
3DataStream
Student

ObjectInputStreamObjectOutputStream


javaObjectInputStream/ObjectOutputStream
InputStreamOutputStream
ObjectInputStreamObjectOutputStream8String
readObject()writeObject()
read()write()
String
ObjectInputStream/ObjectOutputStreamInputStream
OutputStream

FileStreamObjectStream
ObjectStream
ObjectStream
Serializable

Serializable
APISerializable
Cloneable
TestObjectStream.java
toString()Object
toString()@
StudenttoString()ObjecttoString()

StudenttoString()


StudenttoString()
StudentStudent
StudentTeacherTeacher

TeacherStudent

java.io.Serializable
/
Serializable
StudentList ts=new new ArrayList();ts
Teacherts,TeacherSerializable
Javajava
Serializable
LinuxbinSerialver

..>Serialver Student
StudentSerializable
StudentSerializable
Serialver

ADSL



transientTransient

TestObjectStream.javaStudentmark
Object
ObjectSerializable
StudentObject obj

Studentobjstatic
objObject

ObjectStreamEOFException
ObjectStreamclose()


read-1while((len=read(byte))!=1){..}
readLine()null
while((str=readLine())!=null){..}
readObject()-1null

readObject()
EOFException

EOFException

TestObjectAdd.java

ACED
s1s1
ACEDs2ACED
student1.datstudents.dat

TestObjectAppend.java
Tokenized
StringTokenizer
StringTokenzier
StringTokenizerhasMoreTokens()
StringTokenizer
nextToken()

StringTokenizer
TestStringTokenizer.java

Properties
PropertiesjavaMap
PropertiesStringHashtable
PropertiesHashtable

properties
Properties

Properties
()

PropertiesStringHashtable
put,putAll
getProperties(String key)StringkeyString value
setProperties(String key,String value)Properties
Load(InputStream in)Properties

Store(OutputStream os,String)Properties

Properties/

TestProperties.javaPropertiesADSL
ipsidnamepasswdphone
a.propertiesADSL

java
ip
ipip
40-255
Ipipip

0-655352

22
http80
8080
ip
ipABCDE40-255.

ipport
A0-126A
B128-191B
C192-223CC

D224D

0-65535
0-1023

1024-48xxx

48xxx-65535

ftp 21http 80telnet 23


echo 7
Oracle 1521Tomcat
8080Oraclehttp 8080Weblogic 7001

ipport
A

PA1 port:22
PA2 port:24
PA3

port:27

port:23 PB1
port:25 PB2
port:26 PB3

2
B
PB2 25
APA224
B23
B24A
23
2

ip
ipportip

ip


OSI
OSI
OSI


OSI Model

TCP/IP Stack

Scenario

Application Application app app app


Presentation (Http,Ftp,Telnet,
Pop3,Smpt,)
Session
port port port
Transport
TCP or UDP
Transport
(TCP,UDP)
Network
Data Link

Network
(IP,ICMP,ARP,RARP,)

Link
(Device driver)

data
port#

data

Physical

OSI

Mic

Mic

OSI

OSI


httphttp

ftp
telnet
Pop3 Smpt

Tcp
Udp

TCP/IPSocket
IP
IP
ip
ipipARP
ipRARP
ipMACICMP
TCP/IP
OSIOSI

TCP/IP
HttpFtpTelnetPop3SmptTcpUdp
IpIcmp,ARP,RARPOSI

Socket
SocketserverclientSocket
Socket2Tcp SocketUdp Socket
TcpUdp
Tcp
Tcp

ServerSocketSocket
UdpUdp

Udp
Udp
ServerSocketSocketTcp

Socketip+2
ServerSocketSocketSocket

SocketServerSocketjava.netSocket
I/OSocket
ServerSocketSocket
ServerSocket


ip
jdk1.4 5.0

ip
ServerSocket

ServerSocketSocket

ServerSocketSocketclose()
ServerSocketSocket
Socket
ServerSocketaccept()
SocketServerSocket
Socket
accept(..)

accept(..)while(true){..}
Socket
Socket(ip,port)
ip
new Socket(ip,port)accept()

Socket
getInputStream(),getOutputStream()

close()Socket
Tcp Socket
2jvm22

Tcp Socket

Tcp Socket
Client

Server
ServerSocket ss=new Socket(port)
ServerSocket

Socket ss=new Socket(ip,port)


Socketip
port

Socket s=ss.accept()accept Socket


accept()

SocketSocket
I/O
SocketSocket String

InputStream is=s.getInputStream();
InputStream is=s.getInputStream();
is
OutputStream os=s.getOutputStream();
os

is
OutputStream os=s.getOutputStream();
os

DataInputStream dis=new DataInputStream(is);


DataInputStream dis=new DataInputStream(is);

InputStreamReaer isr=new InputStreamReader(is)


InputStreamReaer isr=new InputStreamReader(is)
BufferedReader br=new BufferedReader(isr)
BufferedReader br=new BufferedReader(isr)
DataOutputStream dos=new DataOutputStream(os);
DataOutputStream dos=new DataOutputStream(os);
OutputStreamWriter osw=new OutputStreamWriter(os)
OutputStreamWriter osw=new OutputStreamWriter(os)
BufferedWriter bw=new BufferedWriter(osw)
BufferedWriter bw=new BufferedWriter(osw)
PrintWriter pw=new PrintWriter(os)
PrintWriter pw=new PrintWriter(os)

dis.close(),dos.close()
br.close(),pw.close()
ss.close()ServerSocket

dis.close(),dos.close()
br.close(),pw.close()
s.close()Socket

Tcp Socket

Welcome login +
3Hello
TcpServer1.java,TcpClient.java

2

ConnectExceptionconnect refused

(2)
BindExceptionip
OK


System.in

client
clientbye

TcpServer1.java,TcpClient.java
TcpServer2.java,TcpClient2.java
bye

Tcp Socket


Properties
Employee

Java
Java
Day16-Day17

Day17
TCP Socket

UDP Socket
UDP Socket
UDP Socket
URL
URL
qq
qq
qq

TCP Socket

Tcp Socket
ServerSocket
accept()
accept()

accept()
accept1
234
acceptaccept
socket
TcpServer3.javaTcpClient3.java

InetAddress
InetAddressipipip
InetAddress24ip
InetAddress6ipInetAddress
InetAddressequals(),hashCode()
InetAddress

InetAddress
InetAddressgetAddress()ip
byte[]ip

UDP Socket
Ip192.168.0.21
10-127192.168
1byte
=256-
getAllByName(Host)InetAddress
getLocalHost()ipInetAddressstatic
TestInetAddress.javaip

UDP Socket
UDP
()2
DatagramPacketDatagramSocket

UDP Socket
UDP Socket
UDPUDP
TCP
UDP Socket

DatagramPacket
UDP SocketDatagramSocket

UDP Socket
UDP Socket

TCP SocketTcp

accept()
DatagramPacketDatagramSocketAPI
DatagramSocket
DatagramSocket()
DatagramSocket(DatagramImpl)
DatagramImplDatagramSocket
OK
DatagramSocket(port)
DatagramSocket(InetAddress)Socketip

DatagramPacket
DatagramPacket2SocketAddress

DatagramPacket(byte[],length),DatagramPacket(byte[],length,In
etAddress,port)
length
DatagramPacket(byte[],offset,length),DatagramPacket(byte[],off
set,length,InetAddress,port)offset
2offset

UDP Socket

DatagramSocket,DatagramPacket4
DatagramSocket(),DatagramSocket(port)
DatagramPacket(byte[],length)
DatagramPacket(byte[],length,InetAddress,port)

DatagramSocket()

DatagramSocket(port)

DatagramPacket(byte[],length,InetAddress,port)

DatagramPacket(byte[],length)
DatagramSocket

DatagramSocketsend(DatagramPacket)
receive(DatagramPacket)
DatagramPacket

receive

UDP Socket
DatagramPacketgetlength(),getOffset()

UDP Socket

DatagramSocket ds=new DatagramSocket(port)

DatagramPacket dp=new DatagramPacket(


buffer,len)
ds.receive(dp)dsreceive
dp
dp.getAddress();clientPort=dp.getPort();
getAddress,
getPortip
DatagramPacket dp1=
new DatagramPacket(buffer,length,
clientAddress,clientPort)

DatagramSocket ds=new DatagramSocket()

DatagramPacket dp=new DatagramPacket(


buffer,lenserverAddress,serverPort)

ds.send(dp);send
DatagramPacket dp1=
new DatagramPacket(buffer,length

ds.receive(dp1)dsreceive

ds.send(dp1);send

ds.close()

ds.close()

URL
UDPReceive.java,UDPSend.javaUDP

URL
URL
URL
URL
URLHttp,Ftp2HttpURL
FtpURL

URLAPI
URLfinal
URL


http://www.sina.com.cn:8080/phps/index.html
http:www.sina.com.cnIP8080
phps/index.html
URL
URL(String)4

URL
URL(String,String,String,String)4String

URLgetFile()

openStream()
URL

URL

openConnection()URLURLConnection(
)
URLConnectionURLURL
connect()URL
URLConnectgetInputStream()getOutputStream()
2

URLURL
URL
/
javajava

URL
TestURL.javaURL

java
URLConnection
getHeaderFieldKey(int)n
()
getHeaderField(int)n
getData()Data
getContentType()Content-Type
getExpiration()Expiration
getContentLength()Content-length
getLastModified()LastModified
getContentEncoding()content-encoding

content-typecontent-lengthcontent-encoding
100
TestURLConnection.java

You might also like