随笔分类 - Java
摘要:HashMap底层原理图 put方法原理 1. 计算key的hash值,然后根据hash值计算得到在数组table中的下标,取得对应的node 2. 若node为空,则直接新建一个节点Node放入数组table中去 3. node不为空,则首先判断node节点的key和hash是否就是传入的key与
阅读全文
摘要:缓存机制流程图 缓存问题的概念 常见的解决方案 缓存穿透 缓存击穿 缓存雪崩
阅读全文
摘要:/** * json工具类 */ public class JsonUtil { private static final Gson gson; private static final String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; static { //
阅读全文
摘要:1.JMV架构图: 2.什么是类装载器? ClassLoader负责加载class文件,class文件在文件开头有特定的文件标识(cafe babe),将class文件字节码内容加载到内存中,并将这些内容转换成方法区中的运行时数据结构。ClassLoader只负责class文件的加载,至于是否可以运
阅读全文
摘要:1.创建线程的方式? 2.为什么使用线程池?有什么优势? 3.线程池的3个常用方式? 4.线程池的7大参数? 5.线程池底层工作原理? 6.线程池的拒绝策略? 7.线程池工作原理的代码验证? public static void main(String[] args) throws Exceptio
阅读全文
摘要:CountDownLatch 倒计时锁 CyclicBarrier 循环栅栏 Semaphore 信号量 主要用于两个目的,一个是用于多个共享资源的互斥使用,另一个用于并发线程数的控制 线程顺序控制示例 实现三个线程A->B->C启动,要求如下: AAA打印5次,BBB打印10次,CCC打印15次
阅读全文
摘要:1.公平锁与非公平锁? 公平锁:遵循FIFO(先进先出)的原则,先到的线程优先获取资源 非公平锁:后到的线程有可能先获取到资源 ReentrantLock,ReentrantReadWriteLock 默认构造都是非公平锁,非公平锁的优点在于吞吐量比公平锁大。synchronized也是非公平锁 2
阅读全文
摘要:1.首先运行这两段代码会抛出一个java.util.ConcurrentModificationException的异常 public class ContainerNotSafeDemo { public static void main(String[] args) { List<String>
阅读全文
摘要:1.CAS是什么? Compare And Swap,比较并交换,它是一条CPU并发原语。功能是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的。 调用Unsafe类中的CAS方法,JVM会帮我们实现出CAS的汇编指令,这是依赖与硬件的功能实现的原子操作。CAS是一种系统原语
阅读全文
摘要:1.volatile是什么? volatile是java虚拟机提供的轻量级的同步机制,具有如下特性: a.保证可见性 b.不保证原子性 c.禁止指令重排 2.JMM内存模型? JMM——https://www.cnblogs.com/zhouxuezheng/p/14950302.html 3.vo
阅读全文
摘要:一、JMM定义 Java内存模型(Java Memory Model)是在硬件内存模型基础上更高层的抽象,它屏蔽了各种硬件和操作系统对内存访问的差异性,从而实现让Java程序在各种平台下都能达到一致的并发效果。 二、JMM中关于线程同步的约定 1、线程在解锁前,必须把共享的变量立刻刷新回主存 2、线
阅读全文
摘要:代码: class Parent { public Parent() { System.out.println("4 父类构造方法"); } static { System.out.println("1 父类静态代码块"); } { System.out.println("3 父类普通代码块");
阅读全文
摘要:实现Ioc的大体思路 1.自定义一个AnnotationConfigApplicationContext类,构造器传入要扫描的包 2.获取包下所有的类 3.遍历这些类,找出添加了@Component 注解的类,获取他的class和beanName,封装成一个BeanDefinition,存入集合Se
阅读全文
摘要:冒泡排序 1.动图演示 2.代码实现 private static void bubbleSort(int[] arr) { if (arr.length <= 1) return; for (int i = 0; i < arr.length; i++) { // 用于标识数组是否有序 boole
阅读全文
摘要:package com.zxz.study.util; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServ
阅读全文
摘要:最近做一个Android APP,由于离线业务需求,需要在启动APP时候同步大量数据到APP上,遇到了JSON性能瓶颈。从下方的图片中可以看出,当使用 json 传输数据,在解析json的时候会产生大量的对象,使得内存疯狂飙升,不论是配置低端的平板还是配置比较高端的手机都会 GC 。而在使用 fla
阅读全文
摘要:单点登录SSO(Single Sign ON) 如:在学校登录了OA系统,再打开考试系统、教务系统,都会实现自动登录。 统一身份认证CAS(Central Authentication Service) CAS 是由耶鲁大学发起的企业级开源项目,历经20多年的完善,具有较高的稳定性、安全性。国内多数
阅读全文
摘要:日志记录器(Logger)的行为是分等级的。分为 OFF 、FATAL 、ERROR、WARN 、INFO 、DEBUG 、TRACE 、ALL Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信
阅读全文

浙公网安备 33010602011771号