java

SpringBoot默认包扫描机制及@ComponentScan指定扫描路

目录 SpringBoot默认包扫描机制 @ComponentScan的使用 常用参数含义 @Component与@ComponentScan SpringBoot默认包扫描机制 标注了@Component和@Component的衍生注解如@Controller,@Service,@Repository就可以把当前...

Java 二叉树遍历特别篇之Morris遍历

在前面,我们简单提及过二叉树的遍历方式,有递归和非递归两个版本的遍历。仔细想一想,不管是递归的,还是非递归的遍历,两种版本的遍历都是需要耗费大量的、额外的空间。比...

Java 虚拟机栈详解分析

Java虚拟机栈 1. 定义 栈:线程运行时需要的内存空间,一个栈存在多个栈帧。栈具有先入后出,后入先出的特点。 栈帧:每个方法运行时需要的内存(局部变量表、操作数栈、动态链接...

Java面向对象基础知识之封装,继承,多态和抽象

目录 一、封装 二、继承 三、多态 四、抽象 总结 一、封装 封装 :是面向对象方法的重要原则,就是把对象的属性和行为(数据)结合为一个独立的整体,并尽可能隐藏对象的内部实...

Java反射技术详解

目录 前言 一、基本反射技术 1.1 根据一个字符串得到一个类 getClass方法 Class.forName Type属性 二、获取类的成员 获取类中特定的构造方法 调用构造方法 调用类的私有方法 获取类的私有字...

Java 运算符详情

目录 1、算术运算符 2、关系运算符 3、逻辑运算符 4、位运算符 5、赋值运算符 6、条件运算符 7、instanceof 运算符 Java 中的运算符与 C 语言基本一致。 1、算术运算符 操作符 描述 例子...

Java1.7全网最深入HashMap源码解析

目录 存储结构 属性成员 构造函数: hash方法 Map中添加数据 put方法 流程图 源码 inflateTable方法 putForNullKey方法 addEntry方法 createEntry方法 扩容方法 resize方法 transfer方法 从HashMap中获取数据...

springboot+mybatis-plus基于拦截器实现分表的示例代码

目录 前言 一、设计思路 二、实现思路 三、代码实现 接口描述 核心组成部分 1.本地线程工具类 2.注解部分 3.拦截器实现 四、测试 后记 前言 最近在工作遇到数据量比较多的情况,单表...

mybatis-plus拦截器、字段填充器、类型处理器、表

目录 组件介绍 表名处理器 字段填充器 类型处理器 补充 最近有个练手的小例子,大概就是配置两个数据源,从一个数据源读取数据写到另一个数据源,虽然最后做了出来,但是不支持...

java冷知识:javac AbstractProcessor详解

目录 它可以做什么? Processor AbstractProcessor 源码 google的 auto-service javapoet 你喜欢的lombok实现原理是怎样的呢? 它可以做什么? 它做的事情当然是生成新类或修改原始的类,比如你遇到...

java图搜索算法之图的对象化描述示例详解

目录 一、前言 二、什么是图 三、怎么存储一个图的结构 1、邻接矩阵 2、邻接表 3、图对象化表示 四、图的作用 你好,我是小黄,一名独角兽企业的Java开发工程师。 校招收获数十个...

springboot 项目容器启动后如何自动执行指定方法

目录 springboot 项目容器启动后自动执行指定 springboot 容器及启动过程 问题1:为什么要启动父子两个容器? 问题2:在什么时候启动父容器? 问题3:父容器和子容器的区别? 问题4:怎...

Mybatis-plus 批量插入太慢的问题解决(提升插入性能

MyBatis-Plus(简称MP)是一个MyBatis的增强工具,旨在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。 特点 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如...

MyBatis-Plus实现字段自动填充功能的示例

目录 一、前言 二、实现 1. 实体类 2. 公用字段 - 使用注解填充字段 3. 自定义MyMetaObjectHandler字段自动填充处理类继承MetaObjectHandler 一、前言 在项目中,我们有一些公共的字段需要做修改...

Spring Boot 访问安全之认证和鉴权详解

目录 拦截器 认证 鉴权 在web应用中有大量场景需要对用户进行安全校,一般人的做法就是硬编码的方式直接埋到到业务代码中,但可曾想过这样做法会导致代码不够简洁(大量重复代码...

Java 数据结构中二叉树前中后序遍历非递归的具体

目录 一、前序遍历 1.题目描述 2.输入输出示例 3.解题思路 4.代码实现 二、中序遍历 1.题目描述 2.输入输出示例 3.解题思路 4.代码实现 三、后序遍历 1.题目描述 2.输入输出示例 3.解题思...

Java面向对象编程之继承和多态以及包的解析与使

目录 1.继承 1.1继承的基本使用 1.2 protected 关键字 1.3 final 关键字 2.多态 2.1向上转型 2.2动态绑定 2.3方法重写 2.4向下转型 2.5super 关键字 2.5.1 super 关键字的基本用法 2.5.2 this和super的区别...

Java 多线程等待优雅的实现方式之Phaser同步屏障

前言 是否会遇到这样的场景,你向线程池提交了多个任务,你希望这批任务全部完成后能够反向通知你。 你可能会使用线程计数的方式,等到计数器累加到提交的线程数量,然后通知...

Java 详解循环屏障CyclicBarrier如何实现多线程分段

前言 工作中是否有这样的场景,多个线程任务,如果所有线程完成到某个阶段,你希望知道所有线程均完成该阶段。当然你使用线程计数可以实现,只是不够优雅。 所以我即:Java 多线...

Java 重试框架 Sisyphus 配置的两种方式

目录 1、函数式配置概览 1.1 默认配置 2、方法说明 2.1 condition 2.2 retryWaitContext 2.3 maxAttempt 2.4 listen 2.5 recover 2.6 callable 2.7 retryCall 3、接口的详细介绍 3.1 接口及其实现 3.2 用户自定义 3.3...

详解JAVA之运算符

目录 一、算术运算符 二、赋值运算符 三、自增自减运算符 四、关系运算符 五、逻辑运算符 六、三元运算符 七、数据输入 总结 一、算术运算符 运算符 :常见的±*/等 表达式 :运算...

深入理解Java8新特性之Lambda表达式的基本语法和自

1.写在前面 目前我们学习Java主要用到的应该就是Java8了,或者说大部分企业当前使用的也是Java8。那么既然Java8的应用如此之广泛,一定有一些亮点所在: Lambda 表达式 函数式接口 方法...

Java 实战项目之家居购物商城系统详解流程

一、项目简述 功能: Java Web精品项目源码,家居商城分类展示,商品展示, 商品下单,购物车,个人中心,后台管理,用户管理,商品管理,分类管理等等。 二、项目运行 环境配置:...

Java 中的内存映射 mmap

目录 1、mmap 基础概念 2、Java 中的 mmap 3、mmap 不是银弹 4、mmap vs FileChannel 4.1 pageCache 4.2 缺页中断 4.3 内存拷贝次数 4.4 用户态与内核态 5、mmap 细节补充 5.1 copy on write 模式 5.2 回收 mmap 内...

java连接zookeeper实现zookeeper教程

目录 java连接zookeeper实现zookeeper ZookeeperJavaAPI基本操作 1.连接客户端 2.恢复回话 3.创建节点 4.修改节点 5.删除节点 6.查询节点 7.查询子节点 8.使用递归得到所有的节点 9.判断节点是否存在...

java连接zookeeper的3种方式小结

目录 java连接zookeeper3种方式 1、使用zookeeper原始api 2、使用ZkClient客户端连接,这种连接比较简单 3、使用curator连接 Java集成zookeeper笔记 一、引入zookeeper-3.4.5.jar(原生zk包) 二、手写Zookee...

深入理解Java8新特性之Stream API的创建方式和中间

目录 1.什么是StreamAPI? 2.Stream API操作的三个步骤 2.1 创建Stream 2.2 中间操作 2.2.1 中间操作之筛选与切片 2.2.2 中间操作之映射 2.2.3 中间操作之排序 1.什么是StreamAPI? Java8中有两大最为重...

Java中操作Redis的详细方法

目录 1.准备操作 1.1 新建工程 1.2 sca-jedis工程依赖 1.3 sca-tempalte工程依赖 1.4 测试是否可以连接Redis 1.5 修改redis.conf文件 2. 基于Jedis实现对redis中字符串的操作 3. 模式总结 4. 连接池JedisPo...

熟练掌握Java8新特性之Stream API的全面应用

1.写在前面 关于Stream API的内容,已经基本上说完了。大家可以参考我的这两篇文章: 深入理解Java8新特性之Stream API的创建方式和中间操作步骤、深入理解Java8新特性之Stream API的终止操...

深入浅出理解Java Lambda表达式之四大核心函数式的

目录 1.四大核心函数式接口 1.1 ConsumerT : 消费型接口 1.2 SupplierT : 供给型接口 1.3 FunctionT, R : 函数型接口 1.4 PredicateT : 断言型接口 2.方法引用 2.1 对象 :: 实例方法 2.2 类 :: 静态方法 2.3 类...

Springmvc调用存储过程,并返回存储过程返还的数据

目录 Springmvc调用存储过程,并返回存储过程返还的数据 实现如下 这里要重点说明一下 Springmvc调用存储过程,entity文件写法 Springmvc调用存储过程,并返回存储过程返还的数据 java后端很多...

Java 深入浅出掌握Map集合之双列集合

目录 前言 Map集合 Map概述 Map特点 Map集合的功能 Map集合的遍历 Map集合的各个子类 集合框架图 总结 前言 友友们,大家好哇!这一期我为大家带来双列集合(Map)的相关知识点讲解,那...

Spring-Retry的使用详解

目录 1 Spring-Retry的简介 2 Spring中的应用 1 导入maven坐标 2 添加被调用类 3 添加测试类 3 SpringBoot中的应用 1 导入maven坐标 2 添加一个管理类 3 启动类上添加注解@EnableRetry 4 添加测试类 1 S...

springboot使用外置tomcat启动方式

目录 使用外置tomcat启动 使用外置的tomcat启动注意事项 使用外置tomcat启动 打开pom文件,把打包格式设置为war packagingwar/packaging SpringBoot默认有内置的tomcat运行模块,可以在Application(继承...

Springboot+Spring Security实现前后端分离登录认证及权

目录 前言 本文主要的功能 一、准备工作 1、统一错误码枚举 2、统一json返回体 3、返回体构造工具 4、pom 5、配置文件 二、数据库表设计 初始化表数据语句 三、Spring Security核心配置:...

Java 实战项目锤炼之仿天猫网上商城的实现流程

一、项目简述 功能: 前台: * 用户模块 * 分类模块 * 商品模块 * 购物车模块 * 订单模块 后台: * 管理员模块 * 分类管理模块 * 商品管理模块 * 订单模块 二、项目运行 环境配置: Jdk...

java 使用Graphics2D在图片上写字

目录 使用Graphics2D在图片上写字 Graphics2D 的使用 1、Graphics2D和Graphics的区别 2、setRenderingHint的具体用处 3、Stroke的使用方法 使用Graphics2D在图片上写字 首先jsp页面:src是一个方法地址 然后...

java返回集合为null还是空集合及空集合的三种写法

目录 返回集合为null还是空集合及空集合的三种写法 返回空List的方式 方式一:new ArrayList() 方式二:new ArrayList(0) 方式三:Collections.emptyList()(推荐) 返回集合为null还是空集合及空集合...

SpringBoot事件发布和监听详解

目录 概述 事件监听的结构 Publisher,Event和Listener的关系 事件 发布者 监听者 总结 概述 ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设...

Java 实战范例之线上婚纱摄影预定系统的实现

一、项目简述 功能: 前后用户的登录注册,婚纱照片分类,查看,摄影师预 订,后台订单管理,图片管理等等。 二、项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Ec...

Java 实战范例之线上新闻平台系统的实现

一、项目简述 功能: 用户的登录注册,新闻的分类查询,评论留言,投稿,新闻的后台管理,发布,审核,投稿管理以及汇总统计等等。 二、项目运行 环境配置: Jdk1.8 + Tomcat8.5 + m...

Graphics2D 写图片中文乱码问题及解决

目录 Graphics2D 写图片中文乱码 概述 问题原因解决 Graphics2D 显示文字时乱码 Graphics2D 写图片中文乱码 概述 由于工作的需求,需要往图片写字,写中文的时候出现了乱码,网上找了很多资...

解决java Graphics drawImage 无法显示图片的问题

目录 java Graphics drawImage无法显示图片 解决方案:总结为两个问题 drawImage()第一次调用图片不成功 解决方案:把所有图片都加载一次 解决方案:使用MediaTracker类 java Graphics drawImage无法显...

Java 实战范例之员工管理系统的实现

一、项目简述 本系统功能包括:分为前端翻后端部分,包括用户,区分晋通用户以及誉里员用户,包括首页展示,部门管理,人事管理,员工管理三个模块等等。 二、项目运行 环境配...

Java线程状态及同步锁的操作方法

线程的生命历程 线程的五大状态 创建状态:简而言之,当创建线程对象的代码出现的时候,此时线程就进入了创建状态。这时候的线程只是行代码而已。只有调用线程的start()方法时...

MyBatis多表操作查询功能

一对一查询 用户表和订单表的关系为,一个用户多个订单,一个订单只从属一个用户 一对一查询的需求:查询一个订单,与此同时查询出该订单所属的用户 在只查询order表的时候,也...

基于springboot实现一个简单的aop实例

简介 AOP(Aspect-Oriented Programming:面向切面编程) aop能将一些繁琐、重复、无关业务的逻辑封装起来,在一个地方进行统一处理,常用于日志记录、事务管理、权限控制等,aop能在不改变原...

Springboot常用注解及配置文件加载顺序详解

Springboot常用注解及底层实现 1、@SpringBootApplication:这个注解标识了一个SpringBoot工程,她实际上是另外三个注解的组合,分别是: @SpringBootConfiguration:源码可以看到,这个注解除了元注...

详解Java使用JMH进行基准性能测试

目录 一、前言 二、JMH概述 1、什么是JMH 2、JMH适用的典型场景 3、JMH基本概念 三、JMH的使用 1、快速跑起来 2、JMH常用注解详细介绍 四、小结 附: 一、前言 在日常开发工作当中,开发...

深入理解Java虚拟机之经典垃圾收集器

目录 1. 综述 1. 总述: 2. 图示总述 3. 应用中应如何做出选择? 2. Serial收集器 1. 简介 2. 图解工作过程 3.使用的垃圾收集算法 4. 优点 5. 缺点 6. 主要应用场景 3. ParNew收集器 1. 简介 2. 图解...