![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 89
ForeverSen
为什么
怎么解决
如何避免
展开
-
Spring 事务相关学习
实际开发过程中经常遇到很多情况下需要进行事务的控制,因为不是所有操作都是单表的操作,所以对于事务是否掌握的好就很重要,本文讲解下Spring相关的事务知识点1、事务失效的7种情况未启用spring事务管理功能方法不是public类型的数据源未配置事务管理器自身调用问题异常类型错误异常被吞了业务和spring事务代码必须在一个线程中1.1、未启用spring事务管理功能@EnableTransactionManagement 注解用来启用spring事务自动管理事务的功能,这个注解千万原创 2021-07-14 16:41:16 · 186 阅读 · 0 评论 -
Java正则工具类从地址中提取省市区
Java正则工具类从地址中提取省市区最近有个需求,从一串地址中提取出省市区,然后开始寻找解决方案,最终通过网上一些正则,再加上自己改动的,貌似弄成一个比较匹配的工具类,其中代码如下,有需要的可以参考下。其中一些自治区还有直辖市均已兼容,自己测试的代码也好多emmimport org.apache.commons.lang3.StringUtils;import java.util.Ar...原创 2020-04-10 22:38:10 · 5637 阅读 · 4 评论 -
2019.12
12月最后一个月。1. JRebel实现热部署减少重启时间平时我们在开发中总是需要不断修改Service层或者其他层的代码,这时候如果项目大的话,重启一次要几十秒,这是十分痛苦的事情,这时候热部署就生效了。这里使用JRebel的热部署,在IDEA中装插件就可以了。破解的话需要半年一次。破解可以参考这篇文章然后需要重新生成id,在这然后填写具体路径即可。http://127.0.0.1...原创 2019-12-31 23:55:19 · 229 阅读 · 0 评论 -
实战Java高并发程序设计学习
开始学习Java并发相关的知识,并对其做些总结:1. 走进并行世界同步和异步并发与并行临界区阻塞和非阻塞为什么要用到并发参考这里(JMM)Java内存模型happens-before规则参考这里...原创 2019-06-20 23:41:22 · 278 阅读 · 0 评论 -
深入理解Java虚拟机学习笔记
最近这段时间开始实习,比较少写博客了,利用下班时间看完了周志明的《深入理解Java虚拟机》,第一次看,感觉还是有点抽象的,一定要多通读几遍。关于Java 虚拟机的知识,很多大佬早已经总结的非常好了,在这里我就不再重复叙述了,列个大概的学习目录就行,全当是自己学习的过程吧。Java 内存区域(程序计数器、Java 虚拟机栈、本地方法栈、堆、方法区 各自得定义还有特点,运行时常量池 这里注意St...原创 2019-07-09 22:23:52 · 123 阅读 · 0 评论 -
LeetCode 中有关位运算题目
这阶段刷完了 LeetCode 上有关位运算的题目,感觉位运算还是挺难,很难get到点,有空还是要去加强学习,要掌握 与&、异或^、或|、非~,还有算术左移、算术右移、无符号右移 。还有 Java 中 Integer 类中常见位运算的方法(三个)。需要注意以下几点:1. 与&、异或^、或|、非~x ^ 1s = ~xx & 0s = 0 x & 1s =...原创 2019-07-26 22:29:34 · 237 阅读 · 0 评论 -
LeetCode 中有关递归的题目
递归,其实就是在运行的过程中调用自己。构成递归需具备的条件:子问题须与原始问题为同样的事,且更为简单;不能无限制地调用本身,须有个出口,化简为非递归状况处理。112. 路径总和题目描述:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 2...原创 2019-07-31 22:42:37 · 704 阅读 · 0 评论 -
剑指Offer(1-9Java语言描述)
很快秋招就来了,今天开始刷剑指,应该不会太慢吧,之前刷了一百道leetcode,按照tag刷的,想着这个月前把剑指刷一遍,记录下:3.重复的数字题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的...原创 2019-08-14 20:10:03 · 250 阅读 · 0 评论 -
剑指Offer(10-19)
最近想一天两道剑指,提高效率,第二波!亮剑经典语录 二:逢敌必亮剑,倒在对手的剑下不丢脸,丢脸的是不敢亮剑。10. 斐波那契数列题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39解题思路:斐波那契数列,经典递归说明例子,不过递归的话从上到下递归,而且有很多重复项,这里应当使用动态规划来解决,时间复杂度O(n...原创 2019-08-24 15:01:49 · 184 阅读 · 0 评论 -
剑指Offer(20-29)
继续向前,很快九月份就到了!第三波。。亮剑语录:“天下没有打不破的包围圈,对我们独立团来说,老子就不把它当成是突围战,当成什么?当成进攻。向我们正面的敌人发起进攻,记住,全团哪怕只剩一个人,也要继续进攻,死也要死在冲锋的路上。”20.链表中倒数第 K 个结点题目描述输入一个链表,输出该链表中倒数第k个结点。解题思路:这题在leetcode中也有出现,之前也做过,我的思路是首先遍历一次...原创 2019-09-04 10:19:49 · 223 阅读 · 0 评论 -
校园商铺平台1.0学习
开始做个校园商铺平台O2O小项目,记录一下平时遇到的问题数据库设计:数据库表的总体结构如下:注意:微信账号和本地账号是通过用户信息表中的user_id进行关联的,实现本地账号和微信账号的绑定。店铺信息表跟以下四个表的关联:商品信息表通过product_category_id跟商品类别表关联,通过product_id跟详情图片表进行关联...原创 2019-06-10 13:37:43 · 2431 阅读 · 0 评论 -
LeetCode中有关哈希表问题
对LeetCode中几道关于哈希表问题进行总结:1.两数之和题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] ...原创 2019-06-15 15:21:49 · 835 阅读 · 0 评论 -
二分查找
最近在看算法第四版,其中有说到二分搜索,也就是二分查找,也在leetcode上刷题,觉得也算是一种比较厉害的算法思想吧,总结下:定义二分查找又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。优缺点...原创 2019-04-01 09:27:27 · 1011 阅读 · 0 评论 -
用Java实现十大经典排序
也可以参考这里,很详细排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排序。内部排序是数据记录在内存中进行排序。而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:关于时间复杂度:...转载 2019-03-28 23:25:21 · 602 阅读 · 0 评论 -
拓扑排序
拓扑排序207. Course Schedule题目描述:共有n门课程你必须参加,标签从0到n-1。有些课程可能有先决条件,例如,要参加课程0,您必须首先参加课程1,这表示为一对:[0,1]考虑到课程总数和先决条件对列表,您是否可以完成所有课程?可以返回true,不可以返回falseInput: 2, [[1,0]] Output: trueInput: 2, [[1,0],[0...原创 2019-04-08 13:34:09 · 153 阅读 · 0 评论 -
LeetCode中经典的排序问题
最近看完算法4第二章排序后,对LeetCode中的排序题目作了以下总结:堆排序:LeetCode215: 题目描述:找到未排序数组中的第k个最大元素。请注意,它是排序顺序中的第k个最大元素,而不是第k个不同元素。Input: [3,2,1,5,6,4] and k = 2 Output: 5Input: [3,2,3,1,2,4,5,5,6] ...原创 2019-04-03 13:28:50 · 902 阅读 · 0 评论 -
LeetCode中典型的DFS问题
深度优先遍历DFS:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和v有路径相通的顶点都被访问到。 若此时尚有其他顶点未被访问到,则另选一个未被访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止。DFS应用:使用 DFS 对一个图进行遍历时,能够遍历到的节点都是从初始节点可达的,D...原创 2019-04-15 13:05:47 · 3954 阅读 · 0 评论 -
LeetCode中数学问题
素数:204. Count Primes题目描述:统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。解题思路:本题要使用埃拉托斯特尼筛法,这样运行不会超时。要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素数。给出要筛数值的范围n,找出以内的素数。先用...原创 2019-05-01 16:58:42 · 619 阅读 · 0 评论 -
LeetCode中的链表问题
开始对LeetCode中链表相关问题进行刷题:206. Reverse Linked List题目描述:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL解题思路:1 → 2 → 3 → 4→ 5→ Ø,改成 Ø ← 1 ← 2 ← 3←4←5定义一个前结...原创 2019-05-12 00:04:53 · 586 阅读 · 0 评论 -
贪心算法及LeetCode中相关问题
开始学习贪心算法思想,并在LeetCode上进行相关tag的刷题原创 2019-05-31 13:22:45 · 1451 阅读 · 3 评论 -
LeetCode中栈和队列问题
开始对数据结构中栈和队列相关题目进行刷题~232. 用栈实现队列题目描述:使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2)...原创 2019-06-12 21:33:42 · 318 阅读 · 0 评论 -
图解排序算法之堆排序
预备知识堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,...转载 2019-03-16 21:37:03 · 101 阅读 · 0 评论