![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 83
归去来兮★
这个作者很懒,什么都没留下…
展开
-
quarkus核心编程笔记
定义和使用拦截器一共需要做三件事定义:新增一个注解(假设为A),要用@InterceptorBinding修饰该注解实现:拦截器A到底要做什么事情,需要在一个类中实现,该类需要两个注解来修饰:A和Interceptor使用:用A来修饰要拦截器的Bean/*** Priority注解的作用 设定HandlerError 拦截器的优先级(值越小优先级越高),可以同时用多个拦截器拦截同一个方法/*** AroundInvoke注解的作用 是表明execute会在拦截bean方法时被调用。原创 2023-07-30 10:16:35 · 350 阅读 · 0 评论 -
ThreadLocal
ThreadLocal提供线程局部变量。这些变量与正常的变量不同,因为每一个线程在访问ThreadLocal实例的时候(通过其get或set方法)都有自己的、独立初始化的变量副本。ThreadLocal实例通常是类中的私有静态字段,使用它的目的是希望将状态(例如,用户ID或事务ID)与线程关联起来。原创 2023-05-06 20:45:08 · 61 阅读 · 1 评论 -
CAS & 原子操作类
只需要记住:CAS是靠硬件实现的从而在硬件层提升效率,底层还是交给硬件来保证原子性和可见性实现方式是基于硬件平台的汇编指令,在intel的CPU中(X86机器上,使用的是汇编指令cmpxchg)指令核心思想是:比较要更新变量的值V和预期值E(compare),相等才会将V的值设为新值N(swap),如果不相等自旋再来AtomicLong原理 CAS+自旋,incrementAndGet场景 低并发下的全局计算 AtomicLong能保证并发情况下计数的准确性,通过CAS来解决并发问题。原创 2023-05-05 21:45:12 · 405 阅读 · 0 评论 -
Java内存模型之JMM
JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念,并不真实存在,它仅仅描述的是一组约定和规范,通过这组规范定义了程序中(尤其是多线程)各个变量的读写访问方式并决定一个线程对共享变量的何时写入以及如何变成对另一个线程可见,关键技术点都是围绕 **原子性、可见性和有序性 **展开的原则:JMM的关键技术点都是围绕多线程的原子性、可见性和有序性展开的能干嘛?通过JMM来实现线程和主内存之间的抽象关系。原创 2023-05-04 21:57:47 · 676 阅读 · 0 评论 -
LockSupport与线程中断
首先一个线程不应该有其他线程来强制中断或停止,而是应该有线程自己自行停止,自己来决定自己的命运。所以,Thread.stop ,Thread.suspend , Thread.resume都已经被废弃了其次在java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,如取消一个耗时操作。因此java提供了一种用于停止线程的协商机制–中断,也即中断标识协商机制中断只是一种协作协商机制,java没有给中断增加任何语法,中断的过程完全需要程序猿自己实现。原创 2023-05-03 10:58:20 · 603 阅读 · 0 评论 -
Java的锁事
认为自己在使用数据的使用一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改synchronized关键字和Lock的实现都是悲观锁适合写操作多的场景,先加锁可以保证写操作时数据正确。原创 2023-05-02 20:55:00 · 570 阅读 · 0 评论 -
CompletableFuture
如果用户线程全部结束意味着程序需要完成的业务操作已经结束,守护线程随着JVM一同结束工作setDaemon(true) 方法必须在start() 之前设置,否则IllegalThreadStateException异常。原创 2023-05-02 16:12:06 · 1007 阅读 · 0 评论 -
Effective 1 用静态工厂方法代替构造器
newType 像newInstance一样,但是在工厂方法处于不同的类中的时候使用。Type表示工厂返回对象的类型。静态工厂方法能够为重复的调用返回相同对象,这样有助于累总能严格控制在某时刻哪些实例应该存在。静态工厂方法和设计模式中的工厂方法模式不同。本条目所指的静态工厂并不直接对应于设计模式中的工厂方法ss。所返回的对象的类可以随着每次调用而发生变化,这取决于静态方法的参数值。例如,将boolean基本类型转换为Boolean对象的引用。Type表示工厂返回对象的类型。原创 2023-04-29 13:55:25 · 993 阅读 · 0 评论 -
【无标题】
是用来构建锁或者其他同步器组件的重量级基础框架及整个juc体系的基石,通过内置的FIFO队列来完成资源获取线程的排队工作,并通过一个int类型的变量表示锁的持有状态和AQS有关的Semaphore。原创 2023-04-13 18:38:49 · 473 阅读 · 0 评论 -
JVM之运行时数据区 面试相关
jvm面试相关原创 2022-12-01 19:47:58 · 391 阅读 · 0 评论 -
JVM运行时数据 堆
JVM运行时数据 堆原创 2022-11-30 15:29:12 · 301 阅读 · 0 评论 -
JVM之类加载子系统
JVM之类加载子系统原创 2022-11-29 17:17:30 · 327 阅读 · 0 评论 -
nginx基础篇
nginx基础篇原创 2022-11-26 18:34:52 · 884 阅读 · 0 评论 -
Flink 状态编程
Flink 状态编程原创 2022-11-24 10:12:39 · 286 阅读 · 0 评论 -
Flink 多流转换
Flink 多流转换原创 2022-11-24 09:07:09 · 347 阅读 · 0 评论 -
Flink之ProcessFunction
ProcessFunction原创 2022-11-23 17:42:30 · 1463 阅读 · 0 评论 -
Flink时间窗口语义
Flink时间窗口语义原创 2022-11-23 16:50:36 · 273 阅读 · 0 评论 -
FlinkSql+Stream综合使用+广播流
FlinkSql+Stream综合使用+广播流原创 2022-11-22 21:04:05 · 1995 阅读 · 0 评论 -
大数据 为什么用
大数据 从为什么开始原创 2022-11-04 13:48:38 · 683 阅读 · 0 评论 -
Java爬虫
java HttpClient 爬虫原创 2022-07-19 09:40:47 · 326 阅读 · 0 评论 -
servlet快速实战
servlet快速实战原创 2022-06-10 01:59:29 · 271 阅读 · 0 评论 -
线程 安全
线程安全例子:public class Test {private static int num = 0;public static void main(String[] args) { Thread thread1 = new Thread(new Runnable() { @Override public void run() { for (int i = 0; i < 100000000; i++) {原创 2021-12-25 23:43:21 · 2246 阅读 · 1 评论 -
发送 邮件
/** * @author zhj * @Title: * @Package * @Description: * @date */public class Test { public static void main(String[] args) throws Exception { // 1 下载 mail包, 2 导包 // 邮件协议 // SMTP (Simple Mail Transfer Protocol)简单传输协议,中转站原创 2021-12-23 21:39:29 · 1174 阅读 · 0 评论 -
SpringSecurity
文章目录Spring Security 简介入门案例Spring Security基本原理WEB权限方案如何设置登录的用户名和密码注解的使用@Secured@PreAuthorize@PostAuthorize用户点击退出操作自动登录CSRFSpring Security 简介Spring 是非常流行和成功的java开发框架,Spring Security正是Spring 家族中的成员。Spring Security基于Spring框架,提供一套Web应用安全性的解决方案。正如您可能知道的关于安全方原创 2021-11-30 00:55:08 · 442 阅读 · 0 评论 -
MongoDB
MongoDB一.NoSQL简介NoSQL(Not Only SQL),指的是非关系型数据库,是一种全新的数据革命性运动.为什么使用NoSQL对数据库的高并发读写对海量数据的高效率存储和访问对数据库的高扩展性和高可用性弱点数据事务一致性需求数据库的写实时性和读实时性需求都复杂的SQL查询,特别是多表关联的查询二.什么是MongoDB?MongoDB 是由C++ 语言编写的,是一个基于分布式文件存储的开源数据系统.在高负载的情况下,添加更多的节点,可以保证服务器原创 2021-11-26 15:13:22 · 296 阅读 · 0 评论 -
单 例 模 式
单例模式文章目录单例模式立即加载模式(又称为 饿汉式)延迟加载模式(又称为 懒汉式)双重检测模式立即加载模式(又称为 饿汉式)public class SingleTon { // 1. 私有构造方法 private SingleTon(){} // 不允许外界访问 // 2. 私有静态不可变属性 private static final SingleTon SINGLE_TON = new SingleTon(); // 为什么使用static:保证原创 2021-11-06 20:20:34 · 81 阅读 · 0 评论 -
Shell
文章目录一.Shell概述为什么要学习Shell查看linux提供的解析器内核二.Shell脚本入门脚本编写脚本运行的方式三.变量系统预定义变量自定义变量特殊变量$n$#∗、* 、∗、@$?四.运算符五.条件判断六.if基本语法七.case语句八.for语句九While语句十控制台输入十一系统函数十二自定义函数十三.工具1.cut**2.awk**一.Shell概述Shell 是一个命令行解释器,他接受应用程序/用户命令,然后调用操作系统内核Shell 还是一个功能相当强大的编程语言,易编写,易调试原创 2021-10-31 09:59:59 · 90 阅读 · 0 评论 -
谷粒学院(三)
文章目录基本语法let声明变量const声明常量解构赋值模版字符串声明对象简写方法的简写对象拓展运算符箭头函数VUE入门案例在vs code中创建代码片段单向绑定 与 双向绑定事件绑定修饰符条件渲染循环遍历axios的使用和new Vue({})的基本格式Element-uiNode.jsWhat node.js?使用node.js 执行javaScript代码NPM一.简介二.使用npm管理项目1.项目初始化2.修改npm镜像3.npm install 命令4.其他命令Babel一.简介二.安装三.Bab原创 2021-10-21 00:11:39 · 297 阅读 · 0 评论 -
JDK8新特性
文章目录一.Lambda表达式二.接口中新增的方法1.默认方法2.静态方法3.默认方法与静态方法的区别三.函数式接口四.方法引用1为什么要有方法引用2方法引用的格式小结:五.StreamAPI一.Stream流式思想的概述二.流的获取方式1.根据Collection获取2.通过Stream的of方法获取三.Stream中的常用方法介绍一.Lambda表达式引入:以Thread类为例public static void main(String[] args) { new Thread(new R原创 2021-10-19 22:58:15 · 101 阅读 · 0 评论 -
谷粒学院(二)
文章目录一.搭建一个多模块Springboot项目创建一个名字为guli_parent 的Springboot项目创建service模块点击 service 创建 service_edu 的子子模块配置applicatioin.properties使用Mybatis-Plus自带的代码生成器,生成基本项目框架二.牛刀小试三.时间格式配置四.配置逻辑删除五.Swagger配置在这里 我们新建一个在项目根目录下 创建一个 common的公共模块,在common引入相关依赖在common下,在创建一个servic原创 2021-10-19 19:15:41 · 251 阅读 · 0 评论 -
谷粒学院(一)
文章目录概述1.介绍项目的背景2.介绍项目采用的商业模式3.介绍项目实现的功能模块4.介绍项目使用的技术5.学习技术-MybatisPlus**Mybatis-Plus 牛刀小试****Mybatis-Plus 之insert****Mybatis-Plus insert and update --> 自动填充功能****乐观锁****Mybatis-Plus 查询****Mybatis-Plus 之删除操作****性能分析**复杂查询操作根据 尚硅谷 的谷粒学院项目所做笔记 仅供参考概述1.介原创 2021-10-17 12:25:25 · 604 阅读 · 0 评论 -
Docker
文章目录一.为什么要用Docker1.什么是Docker2.docker的思想二.Docker的安装和配置1.环境准备2.安装docker安装依赖安装软件源3.仓库,镜像,容器的关系和区别4.拉取镜像5.镜像的使用运行容器查看容器启动容器停止容器查看所有容器查看运行的容器ID删除容器删除镜像三.部署springboot项目1.拉取Mysql容器2.修改pom文件3.修改启动类4.修改springboot 中 mysql的配置信息5.然后将项目重新达成war包,上传到服务器6.配置到tomcat中四.数据卷的原创 2021-10-14 19:52:29 · 122 阅读 · 0 评论 -
不可或缺 之 Vue
文章目录一.Vue.js 介绍1.什么是Vue.js2.Vue的特点响应式布局组件化3.Vue的优势4.Vue的响应式原理(MVVM)二.Vue 基础语法1.数据绑定2.钩子函数3.属性绑定4.内嵌html或文本5.if语句6.for循环7,双向绑定8.事件绑定9.Template 标签10.组件11.动态传值12.Watch监视三.Axios异步通信1.什么是Axios?2.Axios和Ajax的关系3.Axios的API四.前端工程化vue-cli1.创建第一个脚手架项目2.展示一个vue 组件3.页面原创 2021-10-11 19:25:37 · 117 阅读 · 0 评论 -
Redis
文章目录NoSQL1.什么是NoSQL2.为什么使用NoSQL3.NoSQL的优势4.NoSQL的劣势Redis安装与使用1.Redis介绍2.Redis的作用3.Redis的安装4.基本配置5.Redis客户端Redis基本命令1.沟通命令,查看状态2.查看当前数据库中key的数目:dbsize3.redis默认使用16个库4.切换命令5.删除当前数据库:flushdb6.退出命令:exit7.Redis的Key的操作命令string命令hash命令列表list集合类型set有序集合zsetRedis事.原创 2021-10-01 22:57:01 · 88 阅读 · 0 评论 -
springboot(CORS 与 Swagger)
文章目录Springboot中如何处理跨域请求一. 什么是跨域?二 . 什么是CORS?三. Springboot中CROS请求的使用第一种方式:在被请求的方法的一方加上注解 @CrossOrigin("允许请求的域名")(例如 :@CrossOrigin("http://localhost:8090"))第二种方式:配置 java 类 交由springboot进行管理SpringBoot 整合Swagger2 在线文档一. 什么是swagger?Swagger?二.Springboot中如何整合Swagg原创 2021-09-28 19:12:53 · 558 阅读 · 0 评论 -
springboot 整合 Redis
在本地集成redis文章目录1配置redis基本信息 (resources下application.properties进行配置)2配置连接池参数(resources下 创建redis.properties)3配置配置类 ,配置RedisTemplate(创建一个config包,在包下创建RedisConfig.java)4创建一个Redisutil工具类(在util包下)5创建service1配置redis基本信息 (resources下application.properties进行配置)# re原创 2021-09-26 07:13:45 · 138 阅读 · 1 评论 -
springboot(Logback 日志实现)
Springboot中统一日志管理为什么要用日志一般分为两大类:操作日志 和 系统日志操作日志:用户在操作软件时记录下来的操作步骤,便于用户自己查看,主要针对于用户系统日志:系统日志是记录系统中的硬件,软件和系统的信息,同时还可以监视系统中发生的事件。系统日志包括系统日志,应用程序日志和安全日志,主要针对开发人员(包括测试 和 维护人员)日志的作用:实时反应系统的运行状态日志级别使用日志级别的好处在于,调整级别,就可以屏蔽掉很多调试相关的日志输出。不同的日志框架定义的日志级别不太一样,不过也大原创 2021-09-18 22:15:03 · 227 阅读 · 0 评论 -
springboot(Restful风格)
Web开发的两种方式一 前后端不分离以前在没有互联网时,我们做的大部分应用都是前后端不分的,比如 Jsp 或者 thymeleaf灯后端分离模版,在这种架构应用中,数据基本上都是在后端熏染好,返回给前端展示的,也就是说后端控制前端展示,耦合度很高二 前后端分离在前后端分离的应用模式中,后端进返回前端所需要的数据,不再渲染HTML页面,不再控制前端的效果。至于前端用户看到什么效果,从后端请求的数据如何加载到前端,都是有前端自己决定的,网页有网页的处理方式,App 有 App 的处理方式,但无论哪原创 2021-09-18 07:18:58 · 372 阅读 · 0 评论 -
springboot(MyBatis多数据源配置与JPA)
文章目录基于Mybatis配置多数据源SpringBoot中如何集成spring data jpa一 什么是ORM二 什么是JPA三 什么是Spring Data Jpa?四 Spring Data JPA 和 Mybatis对比五 Springboot 中如何集成spring data jpa六 Spring Data Api 核心接口七 JpaRepository接口的基本应用八 spring data jpa 自定义查询九 自定义sql十 复杂查询十一 **JpaSpecificationExcuto原创 2021-09-16 15:31:45 · 782 阅读 · 0 评论 -
Git 版本控制系统
文章目录一. Git概述何为版本控制为什么需要版本控制版本控制工具git工作机制和代码托管中心二.Git常用命令三.版本穿梭四.分支五.GitHub操作六.团队协作一. Git概述 Git是一个免费的,开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目 Git 易于学习,占地面积小,性能极快,他有廉价的本地库,方便的暂存区和多个工作流分支等特性何为版本控制版本控制是一种记录文件内容变化,以便将来查询特定版本修订情况的系统版本控制其实最重要的是可以记录文件修改历史记录,从而原创 2021-08-10 19:55:01 · 112 阅读 · 0 评论