Java知识点
qq_27378875
哈哈
展开
-
多态与继承结合知识点
多态与继承结合知识点 package sdada; class A { private String show(D obj) { return ("A and D"); } public String show(A obj) { return ("A and A"); ...原创 2018-07-23 16:57:44 · 142 阅读 · 0 评论 -
Java并发包-java.util.concurrent详解
转载自https://blog.csdn.net/axi295309066/article/details/65665090一.阻塞队列BlockingQueueBlockingQueue通常用于一个线程生产对象,另外一个线程消费这些对象的场景BlockingQueue 具有 4 组不同的方法用于插入、移除以及对队列中的元素进行检查。如果请求的操作不能得到立即执行的话,每个方法的表现也...转载 2018-08-14 13:22:57 · 36650 阅读 · 5 评论 -
BIO NIO AIO
BIO:采用BIO通信模型的服务端通常由一个独立的Acceptor线程负责接收客户端的连接,它接收到客户端的连接后,会为每一个客户端创建一个新的线程进行处理,返回数据后会销毁线程,典型的一请求一应答模型,该模型缺乏弹性伸缩能力,当服务端接收并发数量比较多时, 系统将会发生堆栈溢出和不能创建新线程,导致服务端不能对外提供服务线程数与客户端请求数1:1 伪异步IO通信当一个客户端请...转载 2018-08-15 20:46:52 · 326 阅读 · 0 评论 -
线程池的使用2
ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue:这三个队列各有特色SynchronousQueue:队列不存任务,需要不停的创建线程包括非核心线程来处理LinkedBlockingQueue:只有核心线程来处理,队列可以无限延长ArrayBlockingQueue:先用核心线程来处理任务,核心线程都在工作时加入队列,队列满...转载 2018-08-12 15:09:10 · 312 阅读 · 0 评论 -
Collections和Arrays的默认排序
参考https://blog.csdn.net/bruce_6/article/details/38299199总图:Arrays.sort(str); str为Object[]Collections.sort(array); array为List<Type>JDK 1.6及1.6以前使用,不加比较器是因为其实现了Comparable接口,加入比较器就按照比...原创 2018-08-11 21:17:22 · 399 阅读 · 0 评论 -
线程池详解1
Java线程池主要是Executor接口,实现(间接实现该接口)类具体为ThreadPoolExecutor类,下面是关于该类的详解一.ThreadPoolExecutor提供了四个构造函数public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, ...转载 2018-08-12 10:42:00 · 245 阅读 · 0 评论 -
Java构造函数初始化过程
子类在创建对象时会执行以下代码:(1)父类静态代码块(java虚拟机加载类时,会执行代码仅一次)(2)子类静态代码块(java虚拟机加载类时,会执行代码仅一次)以上发生在JVM虚拟机类加载过程(3)初始化父类的普通成员变量和代码块,再执行父类构造方法(每次创建新对象都会执行)(4)初始化子类的普通成员变量和代码块,再执行子类构造方法(每次创建新对象都会执行) ...原创 2018-08-02 08:38:40 · 1505 阅读 · 0 评论 -
为什么UUID是唯一的
UUID是一种通用唯一识别码,而且本机生成不耗费资源,目的是用于分布式环境中唯一生成标志码,是由32个16进制数组成,主要包括三部分:(1)当前日期和时间,UUID的第一个部分是当前日期和时间,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。(2)时钟序列(3)全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得)例如...原创 2018-08-07 12:59:37 · 8945 阅读 · 0 评论 -
NIO
转载自https://www.cnblogs.com/geason/p/5774096.html初识NIO: 在 JDK 1. 4 中 新 加入 了 NIO( New Input/ Output) 类, 引入了一种基于通道和缓冲区的 I/O 方式,它可以使用 Native 函数库直接分配堆外内存,然后通过一个存储在 Java 堆的 DirectByteBuffer 对象作为这块内存的...转载 2018-07-31 21:10:35 · 133 阅读 · 0 评论 -
JDK 1.8新特性
1.HashMap系列采用红黑树(超过一定数量)2.更少的代码-lambda表达式3.强大的Stream API-Stream4.便于并行-Parallel5.最大化减少空指针异常-Optional 1.lambda表达式:左侧:lambda表达式的参数列表右侧:lambda表达式中需要执行的功能,即函数体语法:(1)无参数,无返回值Runnab...转载 2018-08-07 13:00:15 · 116 阅读 · 0 评论 -
Cglib代理原理剖析
Cglib代理原理剖析package Cglib第三方代理; import java.lang.reflect.Method; import net.sf.cglib.proxy.Enhancer;import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cglib.proxy.MethodProxy; public ...原创 2018-08-04 11:27:45 · 185 阅读 · 0 评论 -
Cglib动态代理反编译生成类
JDK的反编译较为简单,看本机源代码1.下面是代理类和真实类的源代码package Cglib第三方代理;import java.lang.reflect.Method;import net.sf.cglib.proxy.Enhancer;import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cglib.proxy...原创 2018-08-04 10:31:56 · 3042 阅读 · 0 评论 -
Java各种代理
1.简单代理:代理类与真实类组合在一起,代理类与组合类具有相同的方法名package 动态代理;/*abstract class*/ interface Interface{ void doSomething(); void somethingElse(String arg); int a=6;}class RealObject implements Interface{...转载 2018-08-04 10:12:37 · 141 阅读 · 0 评论 -
Java构造函数初始化过程
子类实例化执行下面过程:(1)父类静态代码块(2)子类静态代码块以上发生在JVM类加载过程,包括加载、验证、准备、解析和初始化,下面是实例化(3)父类属性初始化(4)父类构造函数初始化(5)子类属性初始化(6)子类构造函数初始化...原创 2018-07-30 11:31:07 · 1234 阅读 · 0 评论 -
同步之Synchronized与ReentrantLock的区别 栈上逃逸技术
相比Synchronized,ReentrantLock主要增加了三个条件:等待可中断,可实现公平锁和锁绑定多个条件1.等待可中断是指当前持有锁的线程长期不释放锁的时候,正在等待的线程可以选择放弃等待,改为处理其他事情,可中断特性对处理执行时间非常长的同步块很有帮助2.公平锁指多个线程在等待同一个锁时,必须按照申请锁的时间顺序来依次获得锁,而非公平锁则不保证这一点,在锁被释放时,任何一个等...原创 2018-07-26 15:13:34 · 105 阅读 · 0 评论 -
线程实现的三种方法
https://blog.csdn.net/shenggaofei/article/details/52643137转载 2018-08-13 19:55:14 · 189 阅读 · 0 评论