java
文章平均质量分 87
码bug的小砖家
栈和队列的区别是啥?吃多了拉就是队列;吃多了吐就是栈
展开
-
Springboot集成GraphicsMagick
上一节我们已经本地安装了GM这个工具:手把手教你本地安装GraphicsMagick,本章看看如何将这个工具集成到项目中进行开发。以什么方式集成?JNI / 命令行(im4java)在im4java官网中提到:翻译过来就是: 从Java内部使用JNI运行本机代码始终会带来其他风险,对于长时间运行的进程(通常是Web应用程序服务器)尤其危险。内存损坏或分段错误(可能由故意操纵的图像触发)可能会使整个服务器瘫痪。所以我们选择使用命令行的方式进行调用。项目集成1、将gm命令行工具引入到项目中.原创 2021-05-23 03:16:16 · 446 阅读 · 0 评论 -
搞懂Java集合框架之TreeMap
搞懂Java集合框架之TreeMap简述红黑树源码分析1、TreeMap的基本框架2、get方法3、put方法4、remove方法小结简述 在Map集合框架中,除了HashMap以外,我们比较常用的还有TreeMap。HashMap是无序的,而TreeMap底层由红黑树实现,可以根据对应的排序规则对key进行排序。TreeMap的继承关系图红黑树概述红黑树是一种自平衡的二叉查找树红黑树的每一个节点要么是红色,要么是黑色红黑树是一种弱平衡的二叉树,它的平衡是由“红黑树的特性”实原创 2020-06-12 00:58:00 · 479 阅读 · 0 评论 -
死磕JUC之AQS源码,一篇就够
AQS(抽象队列同步器)前言简单了解AQS的应用同步组件JUC中的锁AQS的结构Node节点AQS 队列结构图独占锁acquire(获取锁)1、tryAcquire(尝试获取锁)2、addWaiter(添加等待节点)3、acquireQueued(排队获取锁)获取独占锁的流程图总结release(释放锁)1、tryRelease(尝试释放锁)2、unparkSuccessor(唤醒后继节点)共享锁acquireShared(获取同步状态)1、tryAcquireShared(尝试获取锁)2、doAcquir原创 2020-06-08 00:40:05 · 621 阅读 · 0 评论 -
吐血整理:Redis的基本数据类型,你懂多少?
前言之前项目有使用过redis做缓存,对redis的五种基本类型只是一知半解,懂得如何去使用,但是没有深入探究。最近在读老钱的《redis深度历险:核心原理与应用实践》这本书,觉得书上对redis的探索还是比较深入的,同学们有兴趣可以去了解一下。话不多说,直接上干货。Redis的基本数据类型redis有5种基本的数据类型:string(字符串)list(有序列表)hash(字典)set(集合)zset(有序集合)1、string(字符串)数据结构:内部是一个字符数组,通原创 2020-06-05 21:40:21 · 206 阅读 · 0 评论 -
你该不会还不知道Java线程的几种状态吧?
Java线程分为几种状态,在网上一搜,答案不尽人意。很多文章还写着分为五种状态,其实线程分为几种状态,我们看看 jdk 源码便知。Java线程分为六种状态:NEW(新建):创建线程对象后尚未启动的线程,即未调用start方法;RUNNABLE(运行):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,调用了该对象的start()方法,该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。就绪状态原创 2020-06-05 13:59:40 · 117 阅读 · 0 评论 -
一文搞懂Java的回调机制
一文搞懂Java的回调机制什么是回调函数(Callback)Java里回调机制的实现同步调用异步回调异步回调的实现扩展不同系统之间进行回调什么是回调函数(Callback)回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。我们为什么需要回调机制呢?简单理解,就是 A类的 a() 方法调用原创 2020-06-03 16:22:23 · 363 阅读 · 0 评论 -
SpringMVC controller 接收对象类型的参数,正确打开方式
在我们工作中,有时候接口要接收很多参数,然后转化为对象,能不能直接在controller方法中直接接收对象参数呢?答案是可以的,只要前端传过来的参数名跟对象的属性一一对应的json格式就可以,同时必须引入json解析的依赖。首先,我们在项目中引入json解析的依赖:<dependency> <groupId>com.fasterxml.jackso...原创 2019-12-07 15:45:17 · 5366 阅读 · 0 评论 -
Jeesite4.x学习笔记(一):环境搭建中遇到的问题及解决办法
jeesite官方文档:https://jeesite.gitee.io/docs/install-deploy/注:在进行学习之前,要先进行环境搭建,本文重点对遇到的问题进行详细描述,对于简单的步骤,参照官方文档进行简单描述。接下来,跟着官方文档步骤进行操作:(我采用的开发软件是idea)①环境要求:1、Java SDK 1.8下载2、Eclipse IDE for ...原创 2019-03-30 23:47:53 · 2618 阅读 · 0 评论 -
Mybatis接收Integer参数的问题
最近在做项目的时候,在mybatis中用标签判断分页参数时,出现了问题。<if test="startRow != null and startRow != '' and selectRow != null and selectRow != ''"> LIMIT #{startRow},#{selectRow}</if>这段代码是为了在SQL中设置分页参数,接...原创 2019-03-30 13:27:37 · 1912 阅读 · 0 评论 -
idea编译项目时报错:java:-source 1.5 中不支持 diamond 运算符
问题引出:在idea里面导入了一个maven项目,编译项目 build->build project 时,报错:java:-source 1.5 中不支持 diamond 运算符。解决办法: 在pom.xml中引入:<plugin> <groupId>org.apache.maven.plugins</groupId> <...原创 2019-03-30 14:43:00 · 1800 阅读 · 0 评论