Java 基础总结

xiaoxiao2021-02-27  137

Java 基础总结

特点 跨平台os jvm : java virtual machine ,java虚拟机jdk : java development kit, java软件开发包 = jvm + 开发工具jre : java runtime environment java运行时环境 = jvm + 核心类库一次编译,多出运行.java —javac—- .class —-java —– APPjavac -classpath ;;; Hello.javajava oop 封装继承,多层单重多态接口,可多重继承抽象类finalprivate protected publicstatic ,与对象无关new Xxx(); 构造函数,抽象函数也有 第一句默认super();this 内置成员变量,还有super,数据类型 [基本数据类型] byte : 1 , -128~127short : 2 , -32768 ~ 32767int : 4 , -long : 8float : 4double : 8boolean : 1char : 2 ‘\u0909’[引用类型] classinterfaceJVM runtime data area:Method area 所有线程共享java stack FILOmethod framejava -Xss1M 死递归native method stackheap(所有线程共享) 数组 + 对象java -Xmx100M -Xms100M年轻代(伊甸区,幸存一区,幸存二区) + 年老代 + 永久代(非堆)program counter register静态代码块,在类加载时执行。集合 List,Set继承Collection List有序,重复,equals()ArrayList , 数组列表,查询快,insert()LinkedList , 链表,写入地,查询慢Set无序,不可重复HashSetMapKey - Value(Entry:条目)HashMap 数组+表,判断hashcode是否相等,是否是同一对象,equalsHash , 散列多线程 implements Runnableextends Threadnew Thread (new Runnable(...)).start();开辟java stack,一个线程一个java stack线程状态 NEWRUNNABLEWAITING //等待,队列、产生死锁,改用notifyAll()/wait(some time)TIMED_WAITINGBLOCKED ,//阻塞TERMINATED //结束sleep wait线程安全 同步代码块,synchronized(lock){…},串行,保证同步代码块执行时间短同步方法,public static synchronized void xxx(){}yield() //放弃,谦让join() //等待线程执行完毕后,再继续执行其它线程daemon() //守护线程NIO 新 IO。异步,非阻塞,ByteBufferchannel 通道ByteBuffer 0 <= mark <= position <= limit <= capacityByteBuffer.allocate(size); //堆内存缓冲区 jvm heapByteBuffer.allocateDirect(size); // 直接内存缓冲区 off-heap cleaner。clean()反射Selector 挑选器ch.register(sel,OP_ACCEPT|OP_READ|);IO Input/OutputInputStream/OutputStreamReader/WriterBufferedInputStreamBufferedReaderInputStreamReader //转换流ByteArrayInputStreamByteArrayOutputStreamZipInputStreamZipOutputStream串行化 将java对象转成字节数组。 implement java.io.Serializable{seri UID(反序列化)ObjectOutputStream oos = new ObjectOutputStream(baos);oos.writeObject(xxx);oos.close()byte[] arr = baos.toByteArray();ObjectInputStream深度复制 复制整个对象图 , transient装饰模式 增强类的功能反射 动态访问对象的属性和方法。破坏了封装规则 Class //类类class.forName(); //加载类,放到方法区 class.forName(xxx,”xxx”,false); 不执行静态代码快newInstance() 创建实例,通过Construct的空构造,Constructor //构造函数 setAccessibale(true);设置可访问性Method //方法Field //字段创建对象不经过new,可通过反序列化[内省] 操纵javabeanIntrospector:javabeanjava.bean.BeanInfo PropertyDescriptorMethodDescriptorSocket编程 TCP/IP 面向连接安全没有容量限制UDP 无连接不安全基于DatagramPacket 64K拆包、切割、定制协议ServerSocket(); accept() //阻塞的,引出NIO,一个线程轮询Socket new Socket(ip,port)getInputStream()getOutputStream()[UDP] Sender + receiverDatagramSocketDataJdbc URLdriverclassusername
转载请注明原文地址: https://www.6miu.com/read-14369.html

最新回复(0)