-
JDK1.8 ConcurrentHashMap源码阅读
所属栏目:[Java] 日期:2020-12-15 热度:125
1.? 带着问题去阅读 为什么说ConcurrentHashMap是线程安全的?或者说?ConcurrentHashMap是如何防止并发的? 2.? 字段和常量 首先,来看一下ConcurrentHashMap中的一些字段和常量,这些在接下来的操作中会用得到 2.1.? 常量 从中,我们可以获得以下信息: 数[详细]
-
AbstractQueuedSynchronizer源码分析(ReentrantLock锁的实现)
所属栏目:[Java] 日期:2020-12-15 热度:185
1.? 前言 Java中好多地方用到AbstractQueuedSynchronizer (PS:简称AQS) ,比如ReentrantLock、线程池,这部分在面试的时候也经常被问到,今天以ReentrantLock为例,通过源码来加深对AQS的理解 2.??lock 通常,我们的用法是这样的: 那么lock(),unlock()[详细]
-
Java8虚拟机内存模型
所属栏目:[Java] 日期:2020-12-15 热度:118
1.? Java虚拟机运行时数据区 在JDK1.8之前,JVM运行时数据区分为堆、虚拟机栈、本地方法栈、方法区、程序计数器。如下图所示: 虚拟机栈 :线程私有,随线程创建而创建。栈里面是一个一个“栈[详细]
-
Redisson基本用法
所属栏目:[Java] 日期:2020-12-15 热度:116
1.? Redisson Redisson是Redis官方推荐的Java版的Redis客户端。它提供的功能非常多,也非常强大,此处我们只用它的分布式锁功能。 https://github.com/redisson/redisson 1.1.? 基本用法 1 dependency 2 groupId org.redisson /groupId 3 artifactId redisso[详细]
-
Bitmap简介
所属栏目:[Java] 日期:2020-12-15 热度:82
1.? BitMap Bit-map的基本思想就是用一个bit位来标记某个元素对应的Value,而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节[详细]
-
FutureTask
所属栏目:[Java] 日期:2020-12-15 热度:167
能异步绝不同步,能并行绝不串行 1.??Future 一个Future代表一个异步计算的结果。Future提供检查计算是否完成、等待计算完成并获取计算结果的方法。只有当计算完成以后,才可以使用get方法检索结果,否则将会阻塞直到计算完成。通过调研cancel方法可以取消执[详细]
-
ThreadPoolExecutor线程池任务执行失败的时候会怎样
所属栏目:[Java] 日期:2020-12-15 热度:96
接上一篇 《 JDK1.8中的线程池 》 1.? 任务执行失败时的处理逻辑 1.1.? Worker Worker相当于线程池中的线程 可以看到,Worker有几个重要的属性: thread : 这是Worker运行的线程,可以理解为一个Worker就是一个线程 firstTask : 初始任务,可能为为null co[详细]
-
Java规则引擎 Easy Rules
所属栏目:[Java] 日期:2020-12-15 热度:55
1.? Easy Rules 概述 Easy Rules是一个Java规则引擎,灵感来自一篇名为《Should I use a Rules Engine?》的文章 ? 规则引擎就是提供一种可选的计算模型。与通常的命令式模型(由带有条件和循环的命令依次组成)不同,规则引擎基于生产规则系统。这是一组生产[详细]
-
JVM垃圾回收
所属栏目:[Java] 日期:2020-12-15 热度:198
1.? 概念理解 1.1.? 并行(Parallel)与并发(Concurrent) 并行:指多个垃圾收集线程并行工作,但此时用户线程仍然处于等待状态 并发:指用户线程与垃圾收集线程同时执行 1.2.? Minor GC 与 Major GC Minor GC:指发生在新生代的垃圾收集动作,因为Java对象[详细]
-
Reactive 简介
所属栏目:[Java] 日期:2020-12-15 热度:163
1. 概念 Reactive 非常适合低延迟、高吞吐量的工作负载。 Reactive Processing 是一种范式(规范),它使开发人员能够构建非阻塞的、异步的应用程序,这些应用程序能够处理背压(流控制) Reactive Streams 为无阻塞背压的异步流处理提供标准。 Reactor 是基[详细]
-
分布式事务
所属栏目:[Java] 日期:2020-12-15 热度:191
本质上来说,分布式事务就是为了保证不同数据库的数据一致性。 1.? 分布式理论 1.1.? CAP定律 CAP指的是: 一致性(Consistency) 、 可用性(Availability) 、 分区容错性(Partition tolerance) 。 CAP定律说的是,在一个分布式系统中,最多只能满足C、A[详细]
-
线程通信
所属栏目:[Java] 日期:2020-12-15 热度:136
1.? wait / notify 要想执行 wait() / notify() / notifyAll() 这些方法,必须首先获得对象的监视器 换言之,这些方法必须在?synchronized 中执行 package com.example.demo22; import java.util.LinkedList; public class App2 { static void main(String[][详细]
-
秒杀系统
所属栏目:[Java] 日期:2020-12-15 热度:127
秒杀商品页面静态化[详细]
-
Sharding-JDBC 快速入门第一课
所属栏目:[Java] 日期:2020-12-15 热度:128
1.? 概述 ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异[详细]
-
漫漫优化路,总会错几步(记一次接口优化)
所属栏目:[Java] 日期:2020-12-15 热度:145
最近做了一个搜索接口的优化,反复压测了四次,终于达到要求了,记录一下,晚上加个鸡腿[详细]
-
向上领导,向下赋能
所属栏目:[Java] 日期:2020-12-15 热度:177
入坑这么多年,作为一名java攻城狮,资深代码搬运工,我有话说: 1、提高技术壁垒,扩大公开象限 作为开发同学,从入行第一天开始就应该有持续不断地学习新技术的觉悟。积累的多了,说话的水平都不一样了,思路也会更开阔。如果有一个东西,别人都没听说过,[详细]
-
Maven下载与安装
所属栏目:[Java] 日期:2020-12-15 热度:143
Maven下载与安装 一、Maven概念 ?Maven 是一个基于Java平台 自动化构建工具 发展历程: Make --Ant--Maven--Gradle 功能 清理: 删除编译的结果,为重新编译做准备 编译: java--class 将java文件转变为class文件 测试: 针对项目中的关键点进行测试,亦可用[详细]
-
Lombok
所属栏目:[Java] 日期:2020-12-15 热度:177
一、简介 ?Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques方法,同时可以自动化日志变量 二、使用 使用Lombok需要的开发环境Java+Maven+IntelliJ IDEA或者Eclipse(安装Lombok Plugin) 2.1[详细]
-
文件上传
所属栏目:[Java] 日期:2020-12-15 热度:141
文件上传 目录 文件上传 1. 文件上传基础 2. 注意事项 3. index.jsp 4. 文件上传的Java代码 1. 文件上传基础 graph LRid1[用户]id2[客户端brC]id3[Web应用]id4[File System]id5[让浏览器能够支持文件上传]id1 --下载图片--id2id2 --Networkbr网络传输-- id3i[详细]
-
解决Maven的JDK版本问题
所属栏目:[Java] 日期:2020-12-15 热度:186
在pom文件中添加以下代码 build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-compiler-plugin/artifactId version3.1/version configuration source14/source!-- 源代码开发版本 -- target14/target!-- java编译版本 -- encodi[详细]
-
Servlet
所属栏目:[Java] 日期:2020-12-15 热度:164
Servlet 目录 Servlet 1. Servlet简介 2. HelloServlet 3. Servlet原理 4. Mapping问题 5. ServletContext 1. 共享数据 2. 获取初始化参数 3. 请求转发 4. 读取资源文件 6. HttpServletResponse 1. 简单分类 2. 常见应用 7. HttpServletRequset 1. Servlet简[详细]
-
JSP
所属栏目:[Java] 日期:2020-12-15 热度:81
JSP 目录 JSP 1. 什么是JSP 2. JSP原理 3. JSP基础语法 1. JSP表达式 2. JSP脚本片段 3. JSP声明 4. JSP指令 1. 定制错误页面 1. 利用JSP 2. 利用web.xml跳转 2. 使用公共资源 5. 九大内置对象 6. JSP标签JSTL标签EL表达式 1. EL表达式(Expression Language)[详细]
-
JavaBean
所属栏目:[Java] 日期:2020-12-15 热度:186
JavaBean 目录 JavaBean 1. JavaBean有特定的写法 实体类 1. JavaBean有特定的写法 必须要有一个无参构造 属性必须私有化 必须有对应的get/set方法 一般用来和数据库的字段做映射 ORM ORM: 对象关系映射 表 -- 类 字段 -- 属性 行记录 -- 对象 People表 id n[详细]
-
Maven
所属栏目:[Java] 日期:2020-12-15 热度:114
Maven 目录 Maven 1. 为什么要学Maven? 2. Maven项目架构管理工具 3. 下载安装Maven 4. 配置环境变量 5. 阿里云镜像 6. 本地仓库 7. 在IDEA中使用Maven 8. 在IDEA标记源码目录 9. 启动Tomcat 10. Maven的命令行以及插件 11. pom文件 12. 解决每次更新Maven[详细]
-
过滤器和监听器
所属栏目:[Java] 日期:2020-12-15 热度:150
Filter和Listener 目录 Filter和Listener 1. Filter概述 2. Filter开发步骤 3. 监听器 4. 过滤器,监听器的常见应用 1. 在GUI中使用监听器关闭窗口 2. Filter实现权限拦截 1. Filter概述 过滤器,用来过滤网站的数据 graph LRid1[Web浏览器] -- id2[Web服务器][详细]