摘要:
利用threadLocal 把拦截器中的对象传递到controller或service中 1.可以用 request 携带数据。 2.更优雅的方式是用threadlocal。 请求进入tomcat 和产生响应前,都处于同一个线程中比如在一个登录拦截器中,在preHandle方法中登录成功后,放行前, 阅读全文
摘要:
ThreadLocal是什么 ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。 ThreadLocal和Synchonized都 阅读全文
摘要:
1. 这是一个基本的微服务+DDD演示 "例子" : 基于 Spring Boot 1.5.6 , Spring Cloud Edgware.SR4 Version 微服务 + DDD,个人觉得应该是首先是从微服务的角度(如何划分微服务)考虑去划分大的业务模块,每一个微服务都应该是一个可以单独部署, 阅读全文
摘要:
阅读目录 1 基础知识回顾 2 I/O模式 3 事件驱动编程模型 网络编程里常听到阻塞IO、非阻塞IO、同步IO、异步IO等概念,搞清楚这些概念之前,还得先回顾一些基础的概念。 1 基础知识回顾 注意:咱们下面说的都是Linux环境下,跟Windows不一样哈。 1.1 用户空间和内核空间 现在操作 阅读全文
摘要:
现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 "内存泄露" 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具 阅读全文
摘要:
来这里找志同道合的小伙伴! 这里总结一下 Intellij IDEA 插件开发的知识,供大家参考,本篇文章包含以下内容: 开发环境搭建 Component 介绍 Extension Point And Extension 介绍 Service 介绍 持久化状态 添加插件依赖 GUI 工具介绍 >>> 阅读全文
摘要:
二进制是计算技术中广泛采用的一种数制。 二进制数据是用0和1两个数码来表示的数。 二进制的表现形式 计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。 正数在计算机中以原码的形式存在,而 阅读全文
摘要:
Java常用的八种排序算法与代码实现 排序问题一直是程序员工作与面试的重点,今天特意整理研究下与大家共勉!这里列出8种常见的经典排序,基本涵盖了所有的排序算法。 1.直接插入排序 我们经常会到这样一类排序问题:把新的数据插入到已经排好的数据列中。将第一个数和第二个数排序,然后构成一个有序序列将第三个 阅读全文
摘要:
使用redis常见的四大问题: 1.缓存一致性问题 2.缓存穿透问题 3.缓存击穿问题 4.缓存雪崩 阅读全文
摘要:
BitMap位图算法https://blog.csdn.net/varyall/article/details/79662029常见面试题题1:在2.5亿个整数找出不重复的整数,内存不足以容纳着2.5亿个整数。 方案1:使用2-Bitmap 每个数分配2bit,00表示不存在,01表示出现一次,10 阅读全文
摘要:
编程思想 POP 面向过程编程 Process oriented programming 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整 阅读全文
摘要:
案发现场 经常听说final修饰的字段是常量不能改变的他的值,但是以外发现 Integer.java源码中的字段“value”是final,但是可以通过反射改变他的值。 验证final修饰的字段是否可以修改 对final修饰的成员非静态变量做强制修改 结果打印: 结论:对于非静态的final成员变量 阅读全文
摘要:
数据结构中常见的树 (BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树) 参考: https://blog.csdn.net/sup_heaven/article/details/39313731 红黑树: https://www.cnblogs.com/ysocean/p/ 阅读全文