随笔分类 - Java
摘要:1、消息队列的适用场景:商品秒杀、系统解耦、日志记录等 2、使用Queue实现消息对列 双端队列(Deque)是 Queue 的子类也是 Queue 的补充类,头部和尾部都支持元素插入和获取阻塞队列指的是在元素操作时(添加或删除),如果没有成功,会阻塞等待执行,比如当添加元素时,如果队列元素已满,队
阅读全文
摘要:1、缓存 将程序或系统中常用的数据对象存储在像内存这样特定的介质中,以避免在每次程序调用时,重新创建或组织数据所带来的性能损耗,从而提高了系统的整体运行速度 以目前的系统架构来说,用户的请求一般会先经过缓存系统,如果缓存中没有相关的数据,就会在其他系统中查询到相应的数据并保存在缓存中,最后返回给调用
阅读全文
摘要:1、动态代理 动态代理的目标就是在运行时改变目标类,对目标类的参数或者方法做扩展 当想要给实现了某个接口的类中的方法,加一些额外的处理。比如说加日志,加事务等。可以给这个类创建一个代理,故名思议就是创建一个新的类,这个类不仅包含原来类方法的功能,而且还在原来的基础上添加了额外处理的新类。这个代理类并
阅读全文
摘要:1、克隆 假设有一个对象object1,在某处又需要一个跟object1一样的实例object2,这两个对象是绝对独立的,不会因为某一个修改另一个随之改变,这样,我们不能直接将对象objec1t的引用赋予object2,object2=object, 这样两个引用仍然指向的是同一个对象,不是两个对象
阅读全文
摘要:1、锁 当一个共享资源被多方访问时为了避免发生冲突而施加的一种机制 2、乐观锁和悲观锁 Java中锁在宏观分为乐观锁和悲观锁 乐观锁:是一种乐观思想,认为多读少写,一般情况下数据在修改时不会出现冲突,所以在数据访问之前不会加锁,只是在数据提交更改时,才会对数据进行检测 适用场景:比较适合读取操作比较
阅读全文
摘要:1、线程池 线程池是为了避免线程频繁的创建和销毁带来的性能消耗,而建立的一种池化技术,它是把已创建的线程放入“池”中,当有任务来临时就可以重用已有的线程,无需等待创建的过程,这样就可以有效提高程序的响应速度 阿里巴巴的《Java 开发手册》中是这样规定线程池的:线程池不允许使用 Executors
阅读全文
摘要:1、什么是线程 线程(Thread)是并发编程的基础,也是程序执行的最小单元,它依托进程而存在,一个进程中可以包含多个线程,多线程可以共享一块内存空间和一组系统资源,因此线程之间的切换更加节省资源、更加轻量化,也因此被称为轻量级的进程 线程的状态在 JDK 1.5 之后以枚举的方式被定义在 Thre
阅读全文
摘要:1、HashMap底层的实现 JDK 1.7 中 HashMap 是以数组+链表的形式组成的 JDK 1.8 之后数组+链表/红黑树的组成的,当链表大于 8 并且容量大于 64 时,链表结构会转换成红黑树结构,链表长度过长,影响性能,红黑树具有快速增删改查的功能 JDK1.中HashMap的几个重要
阅读全文
摘要:1、String的特点是什么?它有那些重要方法? String 内部实际存储结构为 char 数组 public final class String implements java.io.Serializable, Comparable<String>, CharSequence { //用于存储
阅读全文
摘要:(1)什么是webservice? webservice是一种可以跨编程语言和跨平台进行远程调用的一种技术,是同步进行。 webservice主要分为两种,一种是基于浏览器的瘦客户端应用程序,一种是基于浏览器的富客户端应用程序(RIA)。 webservice其实就是一个系统主动暴露到外面的API,
阅读全文
摘要:并行:多个操作题在同一时间段同时发生的多个动作。 不同的代码模块通时执行。 并发:单个操作题在同一时间点同时发生的动作。 不同的代码模块轮回交替执行。 如果一个操作系统可以支持多个操作动作同时存在,这是一个并发系统。 如果一个操作系统可以支持多个操作动作同时执行,这是一个并行系统。
阅读全文

浙公网安备 33010602011771号