基础回顾

----------------

1.跨平台 os

JVM : sandbox

1995

2.基本数据类型

byte //1 -128 ~ 127

short //2 -32768 - 32767

int //4

long //8

float //4

doule //8

char //2

boolean //1


3.引用类型

[]

class

interface

4.运算符

&& //短路

|| //短路

& //

| //

^ //抑或,相同0,不同为1

>>> //

>> //

负数的存储 : 补码 -- 取反 + 1.


5.byte = -1 ; //1111 1111


数组

-------------------

1.定长

2.类型相同.

3.IndexOutofBounds

4.[0]...[length - 1]

5.


6.OOP,面向对象。

类: //现实世界对事物的软件抽象。图纸.

面向过程,

封装 : //private 

继承 : //重用。extends ,父类引用任何子类的对象,接口引用任何实现类的对象。

多态 : //多种形态。接口

对象 : //实例。切实存在的实体。


构造函数 //跟类同名,没有返回值。

重载 //同名,返回值。

重写 //子类对父类的方法的重新解释。方法可以覆盖,属性不可以覆盖。属性是资产。

对象构造 //包含整个继承树的创建。

匿名内部类对象 //new IRich(){

xxx(){....}

}

Xxxx$1InnerClass

抽象类 //abstract class 

abstract + final // 非法

abstract + private // 非法

abstract + static // 非法的


类可以多层继承,只能单重继承。

类可以实现多个接口。

接口可以继承多个接口。



public //

private //

protected //受保护的

static //和对象无关。ClassName.

final //方法 -- 不能重写

 类中 -- 不能继承

 Field -- 不能修改

finally //try-catch-finally{...}


class Object{

hashcode() //内存地址

wait() //

toString() //

notify() //

notifyAll() //

wait(int n) //

getClass() //

equals() //

}

7.反射

动态访问对象的属性和方法。

Class //类描述符

Method //方法

Field //字段

Constructor //

修改类成员的可访问性。



8.内省

操纵javabean

java.beans.Introspector

PropertyDescriptor

MethodDescriptor


8.设计模式

------------------

1.单例模式

某个类有且只有一个实例。

保证

构造私有

静态的指向自身的引用。

synchronized if(instance == null){

}

2.Factory模式

XxxFactory.createObject(){...}

3.适配器

GUI

MouseAdapter;

9.interface

1.降低耦合(交互程度)度.

2.高内聚(内部),低耦合(之间)。



10.集合

--------------------

1.List | Set ---|> Collection  Map<key-value>

2.ArrayList //数组

 LinkedList //链表,不是环.

3.HashMap

hash //散列。bucket

 Key : 数组 + 链表.

TreeMap //sort

4.HashSet //hashMap

TreeSet //

Comparator | Comprable



11.Thread

-------------------

1.应用程序中并发执行的代码段。共享内存的。 javaw.exe

2.extends Thread | implements Runnable

void run(){

}

3.每个线程对应的是方法栈。

start() //

run() //

yield() //放弃 CPU抢占权。和监视权无关。

join() //等待指定结束.内部wait()实现

setDaemon() //

sleep(int n)//休眠,放弃 CPU抢占权。不释放锁。

wait() //

wait(int n) //

notify() //通知等待队列中随机选取一个线程.

notifyAll() //全部通知

线程的状态

-------------

1.NEW //还未启动

2.RUNNABLE //正在JVM中执行(等待OS的其他资源(例如CPU))

3.BLOCKED //阻塞态,等待检视器的锁。

4.WAITING //wait() wait(int n ) ,park , join

5.TIMED_WAITING //限时等待. wait(int n) join

6.TERMINATED //终止.

4.生产者和消费者

notify() wait();必须在同步代码中调用。


synchronized(lock){

...

wait();

.

.

.

}


synchronized(lock){

...

notify();

.

.

.

}


//


IO:input / output

----------------

1.InpuStream OutputStream

2.Reader | Writer  

3.InputStreamReader,OutputStreamWriter

4.BufferedInpuStream BufferedReader

5.ByteArrayInputStream / ByteArrayOutputStream

6.DataInputStream/DataOutputStream

dos.writeByte(byte)

dos.writeInt(int);

...

dis.readByte(); //

7.ObjectOutputStream/OIS

8.java.io.Serializable //标识性接口 jvm SID : 反串行。

串行化 / 序列化 //java --> byte[]    byte[] -- > java

9.File //文件 isDirectory() | isFile()

递归.

10.FileReader | FileWriter

11.FileInputStream FileOuputStream(file,boolean append);

12.RandomAccessFile //任意定位

seek(); //定位

skip(); //跳过

13.使用读行方法访问字节流

new BuffedReader(new InputStreamReader(System.in));

14.Socket编程·

java.net.ServerSocket / java.net.socket

InetAddress //ip

SocketInetAddress //ipt + port


java.nio.channels.ServerSocketChannel

java.nio.channels.SocketChannel

java.nio.channels.Selector

java.nio.ByteBuffer //

17.物理层 -> 数据链路层->网络层-> 传输层 -> 表示层->会话层-> 应用层

TCP : transfer control protocal,传输控制协议。

ip  : internet protocal.

udp : user datagram protocal. //realtime实时要求较高,

装饰模式

-------------

1.decorate .


DataSource

-----------------

1.javax.sql.DataSource LinkedList


RDBMS

--------------

1.relation database management system

2.二维表 table , 结构化数据

3.NoSQL : not  only sql.

4.SQL //structrual query language.

insert into 

udpate

delete

select * from where limit

select id,name,age from 

select avg() max min sum() count() from ...

select fxxx as newname from  ... ;


[DDL data define language]

create table

drop table

alter table


create procedure 



JDBC

-------------

1.Connection

conn.autcommit(false);

conn.commit() ; //conn.rollback();

2.Statement < PreparedStatement(addBatch() + executeBatch(),sql注入) < CallalbeStatment

3.ResultSet

rs.next()

rs.getInt(1) //从1开始.

rs.getString()

4.ResultSetMeatadata

5.mysql

longblob | text

ppst.setBinaryStream(,,is.available);

ppst.getBinaryStream(xxx);



6.transaction //事务

一组操作。

a //atomic,原子性

c //consistent,一致性

i //isolate,隔离性

d //durable,永久性

7.mysql client cmd

set autocommit = 0 ; //自动关闭mysql的自动提交

start transaction ;

commit ; //rollback;

8.事务并发执行现象

1.脏读 //读未提交

2.不可重复读 //读不回去。 other == update xxx

3.幻读(虚读) //读多了.   == insert xxx

9.事务隔离级别

1.读未提交 //set session transaction isoaltion level read uncommitted;

2.读已提交 //set session transaction isoaltion level read committed;

4.可以重复读 //set session transaction isoaltion level repeatable read;

8.串行化 //set session transaction isoaltion level serializable;

10.mysql查询隔离级别

select @@global.tx_isolation;

select @@session.tx_isolation;

select @@tx_isolation;

11.行级锁

delete from 

12.lock tables xxx  ...

13.show engines

14.InnoDB / memory.