Java复习之知识点整理(三十四)---Java基础总结

一.基础语法
----------------------------------------------------------
    byte    //1 -128 ~ 127
    short    //2
    int        //4
    long    //8
    float    //4
    double    //8
    boolean    //1
    char    //2 unicode gbk utf8 ansi ascii
            //'' 'abc' '\n' \r \t
            char c = 'a' ;
                 c = 97 ;
                 c = '\u0061'
                 c = '' ;
    String //常量."" null
    StringBuffer(安全) | StringBuilder(不安全)
    synchronized


二.OOP
-----------------------------------------------------------
    封装
    继承
    多态:成员变量,
    extends 
    implements
    单层继承
    面向接口编程:降低耦合。
    抽象类:

    类的成员:成员变量,成员函数,构造函数,构造代码块,静态代码块,内部类,
    创建对象过程:1.开辟内存
                 2.初始化默认值.
                 3.构造代码块或成员变量的赋值。
                 4.构造函数。

    final:    
        类        //不能继承
        方法    //不能重写
        字段    //只能被赋值一次。

        abstract + final        //非法
        abstract + private        //非法
        abstrat + static        //非法
        final + private            //不非法
        
        
三.IO
------------------------------------------------------------------
    CharSet                        //
    InputStream/OuputStream
    Reader/Writer
    BuffedInputStream/BufferedOutputStream(8k)
    BufferedReader/BufferedWriter
    InputStreamReader/OuputStreamWriter
    new BufferedReader(new ...(System.in));
    ObjectInputStream/ObjectOutputStream
    ByteArrayOutputStream
    将对象转换成byte[]
    java.io.Serializable    //标识性接口
                            //long serializableUID,反串行。

    while((len = is.read()) != -1){
    
    }
    
    

四.NIO
------------------------------------------------------------------
    非阻塞
    SelectionKey.OP.ACCEPT
    Selector
    ServerSocketChannel
    SocketChannel
    FileChannel
    
    while(true)
    {
        sel.select();
    }
    
    ByteBuffer
    ByteBuffer.allocate();
    ByteBuffer.allocateDirect();
    
    Cleaner.clean()
    
    flip();
    clear();
    reset();
    
    
    
    
五.Socket
-----------------------------------------------------------------
    TCP    //
    UDP

    七层协议
    --------------
        物理层
        数据链路层
        网络层
        传输层    //transfer control protocal,user datagram protoca.
        会话层    //
        表示层
        应用层    //http(hyper text transfer ptotocal),ftp:file transfer pro, https smtp
    
    ServerSocket                    //统配ip0.0.0.0 + port
    Socket s = ss.accept()            //阻塞

    s.getInputStream()                //SocketInputStream
    s.getOutputStream()                //SocketOutputStream

    //全双工.

    DatagramSocket            //数据报套接字
    DatagramPacket            //数据报包,包里有地址。64K

扫描二维码关注公众号,回复: 2527146 查看本文章

六.JDBC
-----------------------------------------------------------------------
    标准,接口。
    
    //jdbc实现
    driver.jar    
        
    //数据操纵语言
    insert
    update
    select
    delete
    
    //数据定义语言
    DDL:    
    
    //语句
    statement
    pararedStatement
    callableStatement
    
    //事务 transaction
    A: 原子性
    C: 一致性
    I: 隔离性
    D: 持久性
    
    //
    commit()
    rollback()
    savepoint()
    
    //并发执行现象
    脏读
    不可重复读
    幻读
     
    //隔离级别
    1.read uncommitted        //读未提交,导致脏读 + 不可重复读 + 幻读
    2.read committed        //读已提交,避免脏读,导致不可重复读 + 幻读
    3.repeatable read        //可重复读,避免脏读,不可重复读,导致幻读
    4.serilizable            //串行化,避免脏读,不可重复读,幻读--悲观锁,并行变串行
    
    //悲观锁
    1.不能并发
    2.加锁旗标: 0/1
    
    //乐观锁
    1.版本
    2.时间戳
    
    //共享读锁,独占写锁
    1.A写,B不能写
    2.A写,B可读
    3.A读,B不一定能写(看A是否独占写锁,select for update或者隔离级别)
    4.A读,B能读
    
    //表级锁
    lock table xx
    unlock table;
    
    //MVCC
    多版本并发控制


七.反射
-----------------------------------------------------------
    class
    Method
    Field
    Constructor
    
    setAccessible(true)
    
    clazz.getDeclareMethods();
    clazz.getMethods();
    
    method.invoke();
    
    field.get();
    field.set();
    
    Introspector        //内省
    Beaninfo
    PropertyDscriptor
    MethodDescriptor
    read
    write
    
    Proxy                //代理,不改变源码,增加功能
    Proxy.newProxyInstance(classLoader, class[] , handler);


八.集合
---------------------------------------------------------------
    List    有序可重复(equals)
    -- ArrayList:封装数组
    -- LinkedList:封装链表
    
    Set        无序不重复(hash)
    -- 底层是map
    
    Map        <k,v>
    -- hash 散列
    -- hashmap
    -- 数组 + 链表
    

九.多线程
---------------------------------------------------------------

    java.lang.Thread
    java.lang.Runnable
    new Thread().start();
    yield()        //放弃本次,回头立马开抢cpu
    join()        //直到join线程结束,当前线程才能继续执行
    daemon()    //守护线程,守护非守护线程
    sleep()        //休眠。
    
    同步代码块  / 同步方法
    
    线程状态
    ------------------------
    new
    runnable
    blocked
    wait
    wait_timing
    terminate
    sleep
    
    wait() 
    ------------------------
    1.进入锁旗标的等待队列
    2.马上释放锁旗标
    3.notify() :通知
    4.notiflAll
    5.wait(n)


十.JVM
-------------------------------------------------------------------
    1.runtime data area
    -- method area
    -- heap
    -- java stack
    -- native method stack
    -- program counter register
    
    2.
    -- heap            //young(eden + s1 + s0) + old
    -- non-heap        //perment / metaspace
    -- off-heap        //jvm之外的,操作系统的内存,直接内存
    
    3.
    -- -Xmx
    -- -Xms
    -- -Xmn
    -- -Xss   设置栈
    -- -XX:NewSize


十一.异常
--------------------------------------------------------------
    throw  //抛异常
    throws  // 方法上,声明抛出异常
    
    try{}
    catch{}
    finally{}

猜你喜欢

转载自blog.csdn.net/xcvbxv01/article/details/81364457