Java源码解析之平衡二叉树

一、平衡二叉树的定义平衡二叉树是一种二叉排序树,其中每一个节点的左子树和右子树的高度差至多等于1 。它是一种高度平衡的二叉排序树。意思是说,要么它是一棵空树,要么它的左...

2021-06-28

Java 反射类型Type的用法说明

各个方法1. 得到class的成员变量首先得到object的class对象然后在class对象中用getDeclaredFields()方法来获得class的成员变量FieldTest ft = new FieldTest();Class ftCla...

2021-06-28

Spring Cloud调用Ribbon的步骤

一、简介
1. 是什么
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软...

2021-06-28

Java工具类之@RequestMapping注解

一、前言问题阐述:在某一场景下,我们的代码在 Service 实现相同,但却在 Controller 层访问时却希望不同的前缀可以访问。如下 :/say/hello。我们这里希望在不借助任何外部服务的...

2021-06-28

Mybatis 一级缓存与二级缓存的实现

mybatis缓存mybatis作为一个流行的持久化工具,缓存必然是缺少不了的组件。通过这篇文章,就让我们来了解一下mybatis的缓存。mybatis缓存类型说起mybatis的缓存,了解过的同学都...

2021-06-28

详解IntelliJ IDEA 自带的 HTTP Client 接口调用插件吊打 Postman

Java公众号【Java技术迷】一个在互联网领先地位,微信搜索【Java技术迷】第一时间阅读最新文章,通过下面下载链接,即可获得我精心整理的技术资料,电子书籍,一线大厂面试资料和优秀...

2021-06-28

解决在IDEA下使用JUnit的问题(解决过程)

遇到的问题我在做这次软件构造实验一时,实验中要求了需要使用JUnit来进行代码的实例测试,可是在经过了百度了其他人的使用JUnit的介绍方法,然后自己去尝试,却始终无法成功调用JU...

2021-06-28

SpringBoot配置ShedLock分布式定时任务

什么是ShedLock
ShedLock是一个在分布式环境中使用的定时任务框架,用于解决在分布式环境中的多个实例的相同定时任务在同一时间点重复执行的问题,解决思路是通过对公用的数据...

2021-06-28

基于OAuth2.0授权系统的验证码功能的实现

前言:前一阵子,我自己一直在写一套后台管理系统《hanxiaozhang 后台管理系统》,后台技术栈基于SpringCloud组件实现的,授权则是使用的OAuth2.0。为了让系统的功能更加健全,我在系...

2021-06-28

Spring源码解析之Configuration

一、@Configuration1.1 未加@Configuration<!--logback-test.xml,配置不打印日志--><&#63;xml version="1.0" encoding="UTF-8"&#63;><configuration> <include resource=...

2021-06-28

Java安全之Filter权限绕过的实现

前言在一些需要挖掘一些无条件RCE中,大部分类似于一些系统大部分地方都做了权限控制的,而这时候想要利用权限绕过就显得格外重要。在此来学习一波权限绕过的思路。0x01 权限控...

2021-06-28

浅谈SpringBoot如何自定义Starters

一、Starters原理1.1 Starters场景启动器1、场景需要用到的依赖是什么?比如依赖的jar2、如何编写自动配置?以WebMvcAutoConfiguration自动配置为例:@Configuration@Conditiona...

2021-06-28

Java实战之多线程模拟站点售票

一、实验题目二、分析哦吼,这次的实验题目是一道非常经典的多线程买票问题。题目要求我们创建5个线程来模拟卖票,当然这其中就包含多线程存在也就是我们要解决的问题,重复卖票...

2021-06-28

Spring Boot如何通过java -jar启动

Pre大家开发的基于Spring Boot 的应用 ,jar形式, 发布的时候,绝大部分都是使用java -jar 启动。 得益于Spring Boot 的封装 , 再也不用操心搭建tomcat等相关web容器le , 一切变...

2021-06-28

使用IDEA搭建MyBatis环境详细过程

创建一个项目这里根据需求自己选择在pom.xml中导入mybatis的核心jar包Mybatis 源码下载
https://github.com/mybatis/mybatis-3/releases在resources下创建一个mybatis-conf...

2021-06-28

Java基础之逻辑运算符知识总结

一、前言逻辑运算符 左右都是布尔类型的操作数,表达式的结果也是布尔类型 true或false二、逻辑运算符& 逻辑与 只要有一个操作数是false,那么结果一定是false && 短路与 效率...

2021-06-28

手写mybatis完整sql插件问题及实现思路

问题产生我们在使用mybatis的过程中,如果开启了mysql的日志功能的话,会在控制台打印一些sql的信息,但是日志中的sql语句,是没有拼接参数的,也就是说,是不可以直接放到数据库中执行...

2021-06-28

SpringBoot环境配置知识总结

一、pom文件配置<!-- SpringBoot的父级依赖。只有设置了parent标签,项目才是SpringBoot项目 --><parent> <groupId>org.springframework.boot</groupId> <artifactId>spring...

2021-06-28

Java网络编程之基于TCP协议

一、单向通信功能:客户端发送一句话到服务器:客户端:public class TestClient {//客户端 //这是一个main方法,是程序的入口: public static void main(String[] args) thro...

2021-06-28

SpringBoot @ConfigurationProperties注解的简单使用

源码@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface ConfigurationProperties { @AliasFor("prefi...

2021-06-28

SpringBoot实现单文件与多文件上传

一、公共文件存储代码
1.FileUploadUtils.javapackage com.springcloud.blog.admin.util.file;/** * @description: 文件上传工具类 * @author: youcong * @time: 2020/9/28...

2021-06-28

Java数据结构之实现跳表

一、跳表的定义跳跃表是一种随机化数据结构,基于并联的链表,其效率可比拟于二叉查找树(对于大多数操作需要O(log n)平均时间),并且对并发算法友好。SkipList(跳表)是一种可以代...

2021-06-28

如何利用JAVA实现走迷宫程序

本Demo使用三个类一个Test类一个自定义的Stack类一个自定义的Queue类可以实现的功能:1.对于一个写在文本文件中的迷宫,能够将其转换为二维数组用广度优先搜索实现查找最短路径...

2021-06-27

springboot bean循环依赖实现以及源码分析

前言本文基于springboot版本2.5.1 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId>...

2021-06-27

Java中PriorityQueue实现最小堆和最大堆的用法

一、基本介绍 1、介绍学习很多算法知识,力争做到最优解的学习过程中,很多时候都会遇到PriorityQueue(优先队列)。一个基于优先级堆的无界优先级队列。优先级队列的元素按照其自...

2021-06-27

SpringBoot+STOMP协议实现私聊、群聊

一、为什么需要STOMP&#63; WebSocket 协议是一种相当低级的协议。它定义了如何将字节流转换为帧。帧可以包含文本或二进制消息。由于消息本身不提供有关如何路由或处...

2021-06-10

解决scala.collection.mutable.Map写入的问题

在scala中可变Map写入使用val no2ID = scala.collection.mutable.Map[Int,String]()no2ID += (1 -> "something")而在以下代码中,Map不能添加元素val no2ID = scala.collecti...

2021-06-10

详解Spring容器的使用流程

前言Spring容器的API有 BeanFactory 和 ApplicationContext 两大类,他们都是顶级接口。其中ApplicationContext 是 BeanFactory 的子接口。对于两者的说明请参考面试题讲解Sp...

2021-06-10

详解Java网络编程

一、网络编程1.1、概述1、计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共享和数据传输的系统。网络编程就就是编写程序...

2021-06-10

解析ConcurrentHashMap: get、remove方法分析

前面几篇文章分析了并发HashMap的put方法及其相关方法,transfer方法,那么接下来本篇文章相对之前几篇难度会小一些。本篇文章介绍ConcurrentHashMap的get方法和remove方法。
1...

2021-06-10

Spring源码解析之编程式事务

一、前言在Spring中,事务有两种实现方式:编程式事务管理: 编程式事务管理使用TransactionTemplate可实现更细粒度的事务控制。声明式事务管理: 基于Spring AOP实现。其本质是对...

2021-06-10

解析ConcurrentHashMap: 红黑树的代理类(TreeBin)

前一章是get、remove方法分析,喜欢的朋友点击查看。本篇为ConcurrentHashMap源码系列的最后一篇,来分析一下TreeBin 红黑树代理节点的源码:1、TreeBin内部类分析TreeBin是红黑...

2021-06-10

详解Java中的ThreadLocal

一、ThreadLocal简介多线程访问同一个共享变量的时候容易出现并发问题,特别是多个线程对一个变量进行写入的时候,为了保证线程安全,一般使用者在访问共享变量的时候需要进行额...

2021-06-10

基于hashmap 的扩容和树形化全面分析

一、树形化//链表转红黑树的阈值static final int TREEIFY_THRESHOLD = 8;//红黑树转链表的阈值static final int UNTREEIFY_THRESHOLD = 6;/***最小树形化容量阈值:即 当哈...

2021-06-10

你知道在Java中Integer和int的这些区别吗?

一、基本概念(重要) Integer 是 int 的包装类,int 则是 java 的一种基本数据类型; Integer 变量必须实例化后才能使用,而int变量不需要; Integer 实际是对象的引用,当new...

2021-06-10

深入理解Java中的HashMap

一、HashMap的结构图示&#8203;本文主要说的是jdk1.8版本中的实现。而1.8中HashMap是数组+链表+红黑树实现的,大概如下图所示。后面还是主要介绍Hash Map中主要的一些成员以及...

2021-06-10

详解Java中的反射机制和动态代理

一、反射概述反射机制指的是Java在运行时候有一种自观的能力,能够了解自身的情况为下一步做准备,其想表达的意思就是:在运行状态中,对于任意一个类,都能够获取到这个类的所有属性...

2021-06-10

SpringBoot中定位切点的两种常用方法

有时候,我们使用AOP来进行放的增强,编写切面类的时候,需要定位在哪个方法上试用该切面进行增强,本片文章主要讲解两种在SpringBoot中定位切点的方法,一种是使用execution表达式的...

2021-06-09

Java使用字节流实现图片音频的复制

Java字节流复制图片音频java中的字节流可以实现文本的读入写入,当然也可以实现字节流对于图片的读入写入,就只需要写一个复制文本的字节输入输出流,然后在源文件和目标文件更换...

2021-06-09

Java多线程之多种锁和阻塞队列

一、悲观锁和乐观锁1.1. 乐观锁顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使...

2021-06-09

ssm框架+PageHelper插件实现分页查询功能

通过搭建ssm框架,然后通过mybatis的分页插件pagehelp进行分页查询。
源码:https://gitee.com/smfx1314/pagehelper看一下项目结构:首先创建一个maven工程,pom中引入相关jar包<de...

2021-06-09

教你在一分钟之内理解Java Lambda表达式并学会使用

一、前言 Lambda表达式是java 8中包含的重要功能之一。 Lambda表达式用于为由一个方法组成的接口编写简洁的代码,即函数接口(functional interface)。 Lambda表...

2021-06-09

如何解决Spring in action @valid验证不生效的问题

解决Spring in action @valid验证不生效按照书上的示例代码来实现但是,添加了验证但是没有生效。Spring提供了校验Api是使用但是没有提供实现,所以需要自己导入实现包。所以导...

2021-06-09

Java8新特性之接口中的默认方法和静态方法详解

一、前言Java 8 引入了默认方法以及可以在接口中定义的静态方法。默认方法是一个普通的 java 方法,但以 default 关键字开头,静态方法像往常一样用 static 关键字声明。二、为...

2021-06-09

Spring源码解析之BeanPostProcessor知识总结

一、简介BeanPostProcessor是Spring IOC容器给我们提供的一个扩展接口。实例化Bean做前置处理、后置处理二、接口定义@Componentpublic class BeanPost implements BeanPos...

2021-06-09

为何修改equals方法时还要重写hashcode方法的原因分析

为何修改equals方法时还要重写hashcode方法虽然在实际开发中,我们已经使用到散列集合(如HashMap),或也单独学过散列(Hash)。但是也会有很多人像我一样,看到有些时候别人写的pojo...

2021-06-09

Spring4下validation数据校验无效(maven)的解决

SpringMVC4使用数据校验的时候需要使用hibernate-validator的包第一步添加依赖 <dependency> <groupId>javax.validation</groupId> <artifactId>validation-a...

2021-06-09

Java基础入门语法--String类

今天带大家了解一下java的基础法语---String字符串是我们以后工作中非常常用到的类型. 使用起来都非常简单方便, 我们一定要使用熟练。那么C语言中是否有字符串类型? 答案是...

2021-06-09

Spring启动时实现初始化有哪些方式?

一、Spring启动时实现初始化的几种方式准确的说是spring容器实例化完成后,几种初始化的方式。为什么这么说呢?下看面示例:@Slf4j@Componentpublic class InitBeanDemo { @Au...

2021-06-09

Java求解二叉树的最近公共祖先实例代码

一、题目给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是...

2021-06-09
返回顶部
顶部