摘要:本文代码样例均已上传至Gitee:https://gitee.com/tqbx/springboot-samples-learn 只对自动注入的sql起效: 插入: 不作限制 查找: 追加where条件过滤掉已删除数据,且使用 wrapper.entity 生成的where条件会忽略该字段 更新: 阅读全文
posted @ 2020-10-25 20:11 天乔巴夏丶 阅读(2) 评论(0) 推荐(0) 编辑
摘要:注:本文代码样例及sql脚本均已上传至gitee:spring-boot-mybatis-plus学习 Mybatis支持的主键策略 MybatisPlus支持的主键策略定义在IdType中: 值 描述 AUTO 数据库ID自增 NONE 无状态,该类型为未设置主键类型(注解里等于跟随全局,全局里约 阅读全文
posted @ 2020-10-24 19:25 天乔巴夏丶 阅读(5) 评论(0) 推荐(0) 编辑
摘要:注:本文代码样例及sql脚本均已上传至gitee:spring-boot-mybatis-plus学习 基本查询 /** * id=? */ @Test void selectById() { User user = mapper.selectById(1087982257332887553L); 阅读全文
posted @ 2020-10-24 13:49 天乔巴夏丶 阅读(8) 评论(0) 推荐(0) 编辑
摘要:本文样例已上传至码云:https://gitee.com/tqbx/springboot-samples-learn/tree/master/spring-boot-freemarker 详细文档地址:http://freemarker.foofun.cn/index.html FreeMarker 阅读全文
posted @ 2020-10-23 19:00 天乔巴夏丶 阅读(9) 评论(0) 推荐(0) 编辑
摘要:51. N 皇后 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 上图为 8 皇后问题的一种解法。 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。 每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代 阅读全文
posted @ 2020-10-09 23:34 天乔巴夏丶 阅读(16) 评论(0) 推荐(0) 编辑
摘要:41. 缺失的第一个正数 给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输入: [7,8,9,11,12] 输出: 1 提示: 你的算法的时间复杂度应为O(n),并且只 阅读全文
posted @ 2020-10-08 12:36 天乔巴夏丶 阅读(15) 评论(0) 推荐(0) 编辑
摘要:31. 下一个排列 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须**原地**修改,只允许使用额外常数空间。 以下是一些例子,输入位于左侧列,其相应输出位于右侧列。 1,2,3 → 阅读全文
posted @ 2020-10-05 20:40 天乔巴夏丶 阅读(16) 评论(0) 推荐(0) 编辑
摘要:21. 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 归并思想 public ListNode mergeTwoLists(ListNode 阅读全文
posted @ 2020-10-04 20:37 天乔巴夏丶 阅读(13) 评论(0) 推荐(0) 编辑
摘要:11. 盛最多水的容器 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 **说明:**你不能倾斜 阅读全文
posted @ 2020-10-04 01:44 天乔巴夏丶 阅读(22) 评论(0) 推荐(0) 编辑
摘要:1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因 阅读全文
posted @ 2020-10-03 17:54 天乔巴夏丶 阅读(20) 评论(0) 推荐(0) 编辑
摘要:URL和URI的区别 URL(Uniform Resource Location) 是统一资源定位符,可以提供该资源的路径。它是一种具体的 URI,即 URL 可以用来标识一个资源,而且还指明了如何 locate 这个资源。 URI(Uniform Resource Identifier) 是统一资 阅读全文
posted @ 2020-10-02 20:03 天乔巴夏丶 阅读(48) 评论(0) 推荐(0) 编辑
摘要:本文基于JDK1.8 ThreadLocal是啥?用来干啥? public class Thread implements Runnable { //线程内部局部变量 ThreadLocal.ThreadLocalMap threadLocals = null; //子线程继承父线程的变量 Thre 阅读全文
posted @ 2020-09-26 17:00 天乔巴夏丶 阅读(231) 评论(0) 推荐(1) 编辑
摘要:本文基于JDK1.8 Atomic原子类 原子类是具有原子操作特征的类。 原子类存在于java.util.concurrent.atmic包下。 根据操作的数据类型,原子类可以分为以下几类。 基本类型 AtomicInteger:整型原子类 AtomicLong:长整型原子类 AtomicBoole 阅读全文
posted @ 2020-09-25 22:34 天乔巴夏丶 阅读(41) 评论(0) 推荐(0) 编辑
摘要:CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作。类似于join的操作,可以进行类比: join用于让当前执行线程等待join线程执行结束,如A.join()方法,将不停检查A线程是否存活,如果A存活,则当前线程永远等待。 public class J 阅读全文
posted @ 2020-09-24 23:50 天乔巴夏丶 阅读(32) 评论(0) 推荐(0) 编辑
摘要:几种Executors创建的常见线程池总结 FixedThreadPool 可重用固定线程池数的线程池,任务队列使用的是无界的LinkedBlockingQueue。 FixedThreadPool运行示意图【图片来源《Java并发编程的艺术》】 如果当前运行的线程数小于 corePoolSize, 阅读全文
posted @ 2020-09-24 16:04 天乔巴夏丶 阅读(44) 评论(0) 推荐(0) 编辑
摘要:并发编程三大特性 原子性 一个操作或者多次操作,要么所有的操作全部都得到执行并且不会受到任何因素的干扰而中断,要么所有的操作都执行,要么都不执行。 对于基本数据类型的访问,读写都是原子性的【long和double可能例外】。 如果需要更大范围的原子性保证,可以使用synchronized关键字满足。 阅读全文
posted @ 2020-09-21 18:27 天乔巴夏丶 阅读(191) 评论(0) 推荐(1) 编辑
摘要:说说自己对于synchronized关键字的了解 synchronized关键字用于解决多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。 值得注意的是,在Java早期,JDK1.6之前,synchronized属于重量级锁,效 阅读全文
posted @ 2020-09-21 00:03 天乔巴夏丶 阅读(232) 评论(2) 推荐(2) 编辑
摘要:进程和线程? 进程? 进程是程序的一次执行过程,是系统运行程序的基本单位,进程是动态的。 系统运行一个程序就是一个进程从创建,运行到消亡的过程。 Java中,启动main函数的时候其实就是启动了一个JVM进程,而main函数所在的线程就是这个进程的主线程。 线程? 线程是一个比进程更小的执行单位。 阅读全文
posted @ 2020-09-18 16:07 天乔巴夏丶 阅读(27) 评论(0) 推荐(0) 编辑
摘要:为什么要用线程池? 池化技术:减少每次获取资源的消耗,提高对资源的利用率。 线程池提供了一种限制和管理资源(包括执行一个任务)。 每个线程池还维护一些基本统计信息,例如已完成任务的数量。 使用线程池的好处: 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到 阅读全文
posted @ 2020-09-18 16:05 天乔巴夏丶 阅读(33) 评论(0) 推荐(0) 编辑
摘要:类加载器 Java虚拟机设计团队有意把类加载阶段中的“通过一个类的全限定名来获取描述该类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需的类。实现这个动作的代码被称为“类加载器”(Class Loader)。 对于任意一个类,都必须由加载它的类加载器和这个类 阅读全文
posted @ 2020-09-18 12:57 天乔巴夏丶 阅读(34) 评论(0) 推荐(0) 编辑
摘要:类加载机制:Java虚拟机将描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 类加载的时机 加载阶段合适开始,《Java虚拟机规范》并没有强制约束,交由虚拟机自己实现。 而初始化阶段,严格规定有且只有以下六种情况,如果类型没有进 阅读全文
posted @ 2020-09-15 16:21 天乔巴夏丶 阅读(23) 评论(0) 推荐(0) 编辑
摘要:强引用 在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到 JVM 也不会回收。因此强引用是造成 Java 内存泄漏的主要原因之一。 软引用 软引用需 阅读全文
posted @ 2020-09-15 16:18 天乔巴夏丶 阅读(29) 评论(0) 推荐(0) 编辑
摘要:参考于:JavaGuide JVM内存区域 JDK1.8前后,JVM内存区域的变化 一、JDK1.8前 二、JDK1.8之后 线程共享 一、堆 Java 虚拟机所管理的内存中最大的一块,Java 堆是所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象 阅读全文
posted @ 2020-09-15 16:16 天乔巴夏丶 阅读(46) 评论(0) 推荐(0) 编辑
摘要:79. 单词搜索 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: board = [ ['A','B','C','E'], ['S','F 阅读全文
posted @ 2020-09-13 23:29 天乔巴夏丶 阅读(34) 评论(0) 推荐(0) 编辑
摘要:这个是不久前在面试的时候遇到的一个问题,当时直接懵了,两个单拎出来,虽然不太完全,但都大概知道可以对请求进行拦截,放在一起比较,可真是头疼。 其实之前面试完就去学习了一波,只不过那个时候没及时总结,现在总结一下,以免日后遇到这类问题又给忘咯。 要理解这类问题,光靠死记硬背可能当时有用,过一阵子就差不 阅读全文
posted @ 2020-09-12 21:36 天乔巴夏丶 阅读(391) 评论(0) 推荐(2) 编辑
摘要:文章首发于:https://blog.csdn.net/Sky_QiaoBa_Sum/article/details/105042151 Filter过滤器 与Servlet一样,Filter也是一门web开发中的三大核心技术之一。 见名知义,过滤器的功能其实很好理解:我允许你通过,你就能通过,不允 阅读全文
posted @ 2020-09-12 16:11 天乔巴夏丶 阅读(33) 评论(0) 推荐(0) 编辑
摘要:一、SpringMVC简介 参考于:https://www.cnblogs.com/myitnews/p/11565941.html#autoid-1-0-0 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想, 阅读全文
posted @ 2020-09-12 00:15 天乔巴夏丶 阅读(54) 评论(0) 推荐(1) 编辑
摘要:本文是对近期学习知识的一个总结,附带源码注释及流程图,如有不足之处,还望评论区批评指正。 此处感谢javadoop的源码解析,收益匪浅:https://javadoop.com/post/spring-aop-intro 一、AOP、SpringAOP、AspectJ的区别 AOP为Aspect O 阅读全文
posted @ 2020-09-11 17:28 天乔巴夏丶 阅读(300) 评论(0) 推荐(2) 编辑
摘要:啥是循环依赖? 下面这种情况比较常见,A中注入了属性B,B中注入了A属性。 @Component public class A { @Autowired private B b; //在A中注入B } @Component public class B { @Autowired private A 阅读全文
posted @ 2020-09-10 21:01 天乔巴夏丶 阅读(304) 评论(4) 推荐(1) 编辑
摘要:1、横向流程图源码格式 ​```mermaid graph LR A[方形] -->B(圆角) B --> C{条件a} C -->|a=1| D[结果1] C -->|a=2| E[结果2] F[横向流程图] ​``` 2、竖向流程图源码格式 ​```mermaid graph TD A[方形] 阅读全文
posted @ 2020-09-10 13:17 天乔巴夏丶 阅读(54) 评论(0) 推荐(0) 编辑