dream天空
这个作者很懒,什么都没留下…
展开
-
IO多路复用
I/O多路复用(事件驱动模型) 多进程、多进程模型会因为开销巨大和调度困难而导致并不能承受高并发量。但不适用这种模型的话,无论是阻塞还是非阻塞方式都会导致整个服务器停滞。所以对于大并发量,我们需要一种代理模型可以帮助我们集中去管理所有的socket连接,一旦某个socket数据到达了就执行其对应的用户进程,I/O多路复用就是这么一种模型。Linux下I/O多路复用的系统调用有s原创 2017-08-04 14:36:55 · 258 阅读 · 0 评论 -
java消息服务
java消息服务JMS(Java MessageService, Java消息服务)API是一个消息服务的标准/规范,允许应用程序组件基于JavaEE平台创建、发送、接收和读取消息。它使分布式通信耦合度更低,消息服务更加可靠以及异步性。消息模型在JMS标准中,有两种消息模型P2P(Point to Point),Publish/Subscribe(Pub/Sub)。P2P模原创 2017-08-11 17:00:17 · 232 阅读 · 0 评论 -
IO与NIO的区别
IO与NIO的区别面向流与面向缓冲 Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方。此外,它不能前后移动流中的数据。如果需要前后移动从流中读取的数据,需要先将它缓存到一个缓冲区。 Java NIO的缓冲导向方法略有不同。数据读取到一个它稍后处理原创 2017-08-18 19:19:39 · 397 阅读 · 0 评论 -
hashmap原理
1.hashmap put方法的实现:12345678910111213141516171819public V put(K key, V value) { if (key原创 2017-08-04 16:54:39 · 200 阅读 · 0 评论 -
java线程
Java线程线程的从创建方式一:继承Thread类创建线程类class PrimeThread extends Thread { long minPrime; PrimeThread(long minPrime) { this.minPrime = minPrime; } public void原创 2017-08-12 10:46:25 · 314 阅读 · 0 评论 -
Java并发
1,Java内存模型是什么? Java内存模型规定和指引Java程序在不同的内存架构、CPU和操作系统间有确定性地行为。它在多线程的情况下尤其重要。Java内存模型对一个线程所做的变动能被其它线程可见提供了保证,它们之间是先行发生关系。这个关系定义了一些规则让程序员在并发编程时思路更清晰。比如,先行发生关系确保了: 线程内的代码能够按先后顺序执行,这被称为程序次序规则。原创 2017-08-19 21:18:41 · 205 阅读 · 0 评论 -
JDBC中Statement、PreparedStatement 、CallableStatement 区别和联系
Statement、PreparedStatement 、CallableStatement 区别和联系1. Statement、PreparedStatement和CallableStatement都是接口(interface)。2. Statement继承自Wrapper、PreparedStatement继承自Statement、CallableStatement继承自Prepare...原创 2019-11-19 09:47:57 · 285 阅读 · 0 评论 -
JDBC中Statement、PreparedStatement 、CallableStatement 区别和联系
Statement、PreparedStatement 、CallableStatement 区别和联系1. Statement、PreparedStatement和CallableStatement都是接口(interface)。2. Statement继承自Wrapper、PreparedStatement继承自Statement、CallableStatement继承自Prepare原创 2017-08-15 10:24:36 · 430 阅读 · 0 评论 -
java集合面试题
1、Java集合框架是什么?说出一些集合框架的优点? 答:每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。集合框架的部分优原创 2017-08-04 11:28:39 · 589 阅读 · 0 评论 -
java注解annotation
注解Java注解用于为 Java代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。Java注解是从 Java5开始添加到 Java的。注解语法注解通过 @interface关键字进行定义。public @interface TestAnnotation {}它的形式跟接口很类似,不过前面多了一个原创 2017-08-11 10:49:14 · 205 阅读 · 0 评论 -
线程池
线程池:a) 线程池的原因: i. 虽然与进程相比,线程是一种轻量级的工具,但其创建和关闭依然需要花费时间,如果为每一个小的任务都创建一个线程,很有可能出现创建和销毁线程所占用的时间大于该线程真实工作所消耗的时间的情况,反而会得不偿失。 ii. 对线程的使用必须要有一个度,在有限的范围内,原创 2017-07-06 20:54:05 · 221 阅读 · 0 评论 -
JDK动态代理解析
JDK动态代理源码解析首先我们来看一下Proxy类的newProxyInstance方法究竟是如何生成一个代理实例的,通过其源码展开说明:@CallerSensitive public static Object newProxyInstance(ClassLoader loader, Clas原创 2017-08-01 15:28:31 · 177 阅读 · 0 评论 -
java线程池
java线程池介绍一下java中线程池最重要的一个类ThreadPoolExecutorThreadPoolExecutor 构造器:有四个构造器的,挑了参数最长的一个进行讲解。七个参数:corePoolSize:核心池的大小,在创建了线程池后,默认情况下,线程池中并没有任何线程,而是等待有任务到来才创建线程去执行任务,当有任务来之后,就会创建一个线程去原创 2017-08-01 15:40:16 · 197 阅读 · 0 评论 -
fail-fast快速失败机制分析
Fail-fast总结:1. Fail-fast机制式java集合中的一种异常机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast。抛出java.util.ConcurrentModificationException异常时,也即产生fail-fast事件2. Fail-fast机制,是一种错误检测机制。它只能被用来检测错误,因为JDK并不保原创 2017-08-08 20:50:54 · 580 阅读 · 0 评论 -
面向对象编程 vs 函数式编程
OOP和FP 什么是函数式编程?在维基百科中给出了详细的定义,函数式编程(英语:functional programming,缩写FP)或称函数程序设计,又称泛函编程,是一种编程范型,它将电脑运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。函数编程语言最重要的基础是λ演算(lambda calculus)。而且λ演算的函数可以接受函数当作输入(引数)和输出(传出值)。原创 2017-08-02 08:49:57 · 642 阅读 · 0 评论 -
java8中lambda表达式
函数式接口什么是函数式接口函数式接口具有两个主要特征,是一个接口,这个接口具有唯一的一个抽像方法,我们将满足这两个特性的接口称为函数式接口。函数式接口是Java 8为支持Lambda表达式新发明的。Lambda表达式不能脱离目标类型存在,这个目录类型就是函数式接口。函数式接口可以使用@FunctionalInterface进行标注。lambda表达式概念原创 2017-08-02 11:09:39 · 247 阅读 · 0 评论 -
线程的状态及转化
线程状态1.新建状态(New): 当用new操作符创建一个线程时, 例如new Thread(r),线程还没有开始运行,此时线程处在新建状态。当一个线程处于新生状态时,程序还没有开始运行线程中的代码。2.就绪状态(Runnable) 一个新创建的线程并不自动开始运行,要执行线程,必须调用线程的start()方法。当线程对象调用start()方法即启原创 2017-08-10 16:35:30 · 217 阅读 · 0 评论 -
cglib动态代理
CGLIB动态代理 由于jdk中的动态代理通过反射类Proxy和InvocationHandler回调接口实现,要求委托类必须实现一个接口,只能对该类接口中定义的方法实现代理,这在实际编程中有一定的局限性。那么我们如何实现类的代理呢?CGLIB概念 CGLIB(Code Generation Library)是一个开源项目,是一个强大的,高性能,高质量的Code生原创 2017-08-03 20:31:39 · 295 阅读 · 0 评论 -
ArrayList和LinkedList的区别
LinkedList和ArrayList性能差异分析:为什么LinkedList中插入元素很快,而ArrayList中插入元素很慢?1. 通过add(int index, E element)向LinkedList插入元素时。先是在双向链表中找到要插入节点的位置index;找到之后,再插入一个新节点。双向链表查找index位置的节点时,有一个加速动作:若index 2.原创 2017-07-09 22:48:08 · 241 阅读 · 0 评论