自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ForeverSen的博客

非合格程序员

  • 博客(53)
  • 收藏
  • 关注

原创 Jackson 反序列化失败,出现JSON: Unrecognized field

jackson反序列化失败,Unrecognized field xxx

2023-10-24 14:09:25 530

原创 Spring 事务相关学习

实际开发过程中经常遇到很多情况下需要进行事务的控制,因为不是所有操作都是单表的操作,所以对于事务是否掌握的好就很重要,本文讲解下Spring相关的事务知识点1、事务失效的7种情况未启用spring事务管理功能方法不是public类型的数据源未配置事务管理器自身调用问题异常类型错误异常被吞了业务和spring事务代码必须在一个线程中1.1、未启用spring事务管理功能@EnableTransactionManagement 注解用来启用spring事务自动管理事务的功能,这个注解千万

2021-07-14 16:41:16 177

原创 读人性的弱点

人性的弱点趁着周末得空,拜读了卡耐基的《人性的弱点》,经典之所以为经典,肯定有其中的价值所在,于是对书中的一些内容进行了简单的总结概括(害,其实就是书中总结)。1. 待人接物基本技巧切忌批评、责怪或抱怨他人给予他人由衷而诚恳的赞赏激起对方某种迫切的需求2. 让人喜欢你的六种方法:真切地关注他人保持微笑记住一个人的名字做一位优秀的听众,鼓励他人多谈论他们自己为他人的利益说话让他人自觉重要,且必须做的真诚3. 如何赢得他人赞同你的想法在辩论中获得最大利益的唯一方法就是避免辩

2020-11-15 23:28:31 213

原创 Java正则工具类从地址中提取省市区

Java正则工具类从地址中提取省市区最近有个需求,从一串地址中提取出省市区,然后开始寻找解决方案,最终通过网上一些正则,再加上自己改动的,貌似弄成一个比较匹配的工具类,其中代码如下,有需要的可以参考下。其中一些自治区还有直辖市均已兼容,自己测试的代码也好多emmimport org.apache.commons.lang3.StringUtils;import java.util.Ar...

2020-04-10 22:38:10 5524 4

原创 2019.12

12月最后一个月。1. JRebel实现热部署减少重启时间平时我们在开发中总是需要不断修改Service层或者其他层的代码,这时候如果项目大的话,重启一次要几十秒,这是十分痛苦的事情,这时候热部署就生效了。这里使用JRebel的热部署,在IDEA中装插件就可以了。破解的话需要半年一次。破解可以参考这篇文章然后需要重新生成id,在这然后填写具体路径即可。http://127.0.0.1...

2019-12-31 23:55:19 204

原创 SSH免密登录服务器及SSH内网穿透

SSH真是个强大的工具,可以做到好多东西,最近学习了一点皮毛,总结下:1.SSH目录├── authorized_keys --服务器的已授权秘钥信息├── config --本地配置├── id_rsa --私钥├── id_rsa.pub --公钥└── known_hosts --已知认证的主机足迹如果本机没有ssh目录的话...

2019-12-13 09:32:10 670

原创 《高效能人士的七个习惯》读书笔记

读《高效能人士的七个习惯》最近读完了 史蒂芬·科维的『高效能人士的七个习惯』,对于初入职场的人来说,收获挺多,从中你可以在如今的生活中发现自己很多需要去提高的地方。希望能好好践行这七个习惯,对生活还有工作会很有帮助。是本经典好书。简单讲下这几个习惯还有自己的理解吧。个人领域的成功1、积极主动(BE PROACTIVE)采取主动,为自己的过去和未来负责,不要被环境左右。选择创造自...

2019-12-01 23:41:09 262

原创 2019.11️

1. Spring中@RequestParam和@RequestBody区别注解@RequestParam接收的参数是来自requestHeader中,即请求头。通常用于GET请求,像POST、DELETE等其它类型的请求也可以使用。@RequestParam用来处理 Content-Type 为 application/x-www-form-urlencoded 编码的内容,Content-T...

2019-11-29 21:47:25 288

原创 2019.10月总结

转眼已经11月份了,写下最近学到的一些知识以及这个月需要学习的知识,虽然出来实习后时间可能比较少,写博客的频率比较低,但是一个月还是必须要总结一下的:1. DO、DTO、VO、POJO的区别参考阿里巴巴代码规范:DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。DTO( Data Transfer Object):数据传输对象,Service或Ma...

2019-11-02 16:54:01 160

原创 剑指Offer(40-49)

还剩不多啦,继续加油刷完。。40. 数组中出现次数超过一半的数字题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。解题思路:一:如果有符合条件的数字,则它出现的次数比其他所有数字出现的次数和还要多。在遍历数组时保存两个值...

2019-10-11 23:31:00 99

原创 常见排序代码总结(Java语言实现)

最近继续重温下数据结构中得排序,其实之前在三月份得时候也有复习过了一遍,其实前人已经总结得很不错了,这次重新再过一遍,重新手写一下代码:冒泡排序:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没...

2019-09-15 12:11:10 200

原创 剑指Offer(30-39)

emm继续向前,保持激情 ~~顺便附带亮剑经典语录 四:什么他他娘的精锐,老子打的就是精锐!什么武士道,老子打的就是武士道!30. 栈的压入、弹出序列题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1...

2019-09-11 00:00:20 123

原创 剑指Offer(20-29)

继续向前,很快九月份就到了!第三波。。亮剑语录:“天下没有打不破的包围圈,对我们独立团来说,老子就不把它当成是突围战,当成什么?当成进攻。向我们正面的敌人发起进攻,记住,全团哪怕只剩一个人,也要继续进攻,死也要死在冲锋的路上。”20.链表中倒数第 K 个结点题目描述输入一个链表,输出该链表中倒数第k个结点。解题思路:这题在leetcode中也有出现,之前也做过,我的思路是首先遍历一次...

2019-09-04 10:19:49 210

原创 Java 并发编程复习(二)

1. JUC 包中的原子类是哪4类?参考synchronized采用的是悲观锁策略来达到线程安全的目的,这并不是特别高效的一种解决方案在J.U.C下的atomic包提供了一系列的操作简单,性能高效,并能保证线程安全的类去更新基本类型变量,数组元素,引用类型以及更新对象中的字段类型。atomic包下的这些类都是采用的是乐观锁策略去原子更新数据,在java中则是使用CAS操作具体实现。基本类...

2019-08-26 23:00:22 89

原创 剑指Offer(10-19)

最近想一天两道剑指,提高效率,第二波!亮剑经典语录 二:逢敌必亮剑,倒在对手的剑下不丢脸,丢脸的是不敢亮剑。10. 斐波那契数列题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39解题思路:斐波那契数列,经典递归说明例子,不过递归的话从上到下递归,而且有很多重复项,这里应当使用动态规划来解决,时间复杂度O(n...

2019-08-24 15:01:49 178

原创 Java 并发编程复习(一)

1.synchronized是什么,实现原理怎样的?synchronized关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。java代码中使用synchronized是使用在代码块和方法中:synchronized可以用在方法上也可以使用在代码块中,其中方法是实例方法和静态方法分别锁的是该类的实例对象和...

2019-08-20 22:16:14 144

原创 剑指Offer(1-9Java语言描述)

很快秋招就来了,今天开始刷剑指,应该不会太慢吧,之前刷了一百道leetcode,按照tag刷的,想着这个月前把剑指刷一遍,记录下:3.重复的数字题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的...

2019-08-14 20:10:03 219

原创 MySQL面试常见题目

B树和B+树有什么区别?为什么索引不用B树?B-树是一种平衡的多路查找(又称排序)树,在文件系统中有所应用。主要用作文件的索引。其中的B就表示平衡(Balance)B-树 :定义任意非叶子结点最多只有M个儿子;且M>2;根结点的儿子数为[2, M];除根结点以外的非叶子结点的儿子数为[M/2, M];每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(...

2019-08-12 21:08:00 1859 1

原创 Linux 学习笔记(二)

我们得程序大多数都是运行在 Linux 上面得,因此平时或多或少接触了不少Linux 命令,最近在公司也用到了相关得命令,其中不外乎查看日志,排除错误,部署程序(目前没部署过公司程序)、编写脚本。CPUtoptop:查看每个进程的情况在top模式下,输入1:查看每个CPU的性能数据,注意观察是否有CPU100%占用率CPU参数含义:1)us过高表示Java应用程序消耗了大量CPU,...

2019-08-05 21:50:16 274

转载 Idea 常用快捷键列表(全)

IntelliJ Idea 常用快捷键 列表(开发必备!!!!)-----------自动代码--------常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码例如要输入for(User user : users)只需输入user.for+Tab再比如,要输入Date birthday = user.getBir...

2019-08-03 13:01:45 1595

原创 LeetCode 中有关递归的题目

递归,其实就是在运行的过程中调用自己。构成递归需具备的条件:子问题须与原始问题为同样的事,且更为简单;不能无限制地调用本身,须有个出口,化简为非递归状况处理。112. 路径总和题目描述:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 2...

2019-07-31 22:42:37 695

原创 Linux 学习笔记(一)

我们得程序大多数都是运行在 Linux 上面得,因此平时或多或少接触了不少Linux 命令,最近在公司也用到了相关得命令,其中不外乎查看日志,排除错误,部署程序(目前没部署过公司程序)、编写脚本。因此有必要好好学习一波,这次主要学习命令。使用Linux优点免费很多软件原生是在Linux下运行的,庞大的社区支持,生态环境好。开源,可被定制,开放,多用户的网络操作系统。相对安全稳定Li...

2019-07-29 23:06:34 84

原创 LeetCode 中有关位运算题目

这阶段刷完了 LeetCode 上有关位运算的题目,感觉位运算还是挺难,很难get到点,有空还是要去加强学习,要掌握 与&、异或^、或|、非~,还有算术左移、算术右移、无符号右移 。还有 Java 中 Integer 类中常见位运算的方法(三个)。需要注意以下几点:1. 与&、异或^、或|、非~x ^ 1s = ~xx & 0s = 0 x & 1s =...

2019-07-26 22:29:34 229

原创 还不会Dubbo?快来Pick这篇

在公司实习这段时间,虽然知道公司是使用 Dubbo 来调用服务的,但是没有深入理解Dubbo的原理,以及为什么要使用 Dubbo,因此重新深入学习了 Dubbo,总结下:1. 官方文档Dubbo中文官方文档感觉无论学习什么,看官方文档总是最最最深入学习知识的,另外,Dubbo的Github 地址:https://github.com/apache/incubator-dubbo 。2.什么...

2019-07-25 23:40:38 100

原创 计算机网络学习笔记

最近这两星期抽空来看看计算机网络相关的知识,虽然大三上学期有学这门课,但是很快就忘了,记忆不是很深,同时这阶段刷完了 LeetCode 上有关位运算的题目,感觉位运算还是挺难,很难get到点,有空还是要去加强学习,要掌握 与&、异或^、或|、非~,还有算术左移、算术右移、无符号右移 。还有 Java 中 Integer 类中常见位运算的方法(三个)。 等等。具体可参考这里位运算常见题目计...

2019-07-23 23:00:28 227

原创 深入理解Java虚拟机学习笔记

最近这段时间开始实习,比较少写博客了,利用下班时间看完了周志明的《深入理解Java虚拟机》,第一次看,感觉还是有点抽象的,一定要多通读几遍。关于Java 虚拟机的知识,很多大佬早已经总结的非常好了,在这里我就不再重复叙述了,列个大概的学习目录就行,全当是自己学习的过程吧。Java 内存区域(程序计数器、Java 虚拟机栈、本地方法栈、堆、方法区 各自得定义还有特点,运行时常量池 这里注意St...

2019-07-09 22:23:52 119

原创 实战Java高并发程序设计学习

开始学习Java并发相关的知识,并对其做些总结:1. 走进并行世界同步和异步并发与并行临界区阻塞和非阻塞为什么要用到并发参考这里(JMM)Java内存模型happens-before规则参考这里...

2019-06-20 23:41:22 272

原创 LeetCode中有关哈希表问题

对LeetCode中几道关于哈希表问题进行总结:1.两数之和题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] ...

2019-06-15 15:21:49 816

原创 LeetCode中栈和队列问题

开始对数据结构中栈和队列相关题目进行刷题~232. 用栈实现队列题目描述:使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2)...

2019-06-12 21:33:42 303

原创 校园商铺平台1.0学习

开始做个校园商铺平台O2O小项目,记录一下平时遇到的问题数据库设计:数据库表的总体结构如下:注意:微信账号和本地账号是通过用户信息表中的user_id进行关联的,实现本地账号和微信账号的绑定。店铺信息表跟以下四个表的关联:商品信息表通过product_category_id跟商品类别表关联,通过product_id跟详情图片表进行关联...

2019-06-10 13:37:43 2388

原创 贪心算法及LeetCode中相关问题

开始学习贪心算法思想,并在LeetCode上进行相关tag的刷题

2019-05-31 13:22:45 1440 3

原创 MySQL事务和隔离级别

事务基本概念是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。和程序比较:在关系数据库中,一个事务可以是一条或多条SQL语句,也可以包含一个或多个程序。一个程序通常包含多个事务。事务的特性(ACID特性)原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做;一致性(consis...

2019-05-29 10:53:48 170

原创 计算机操作系统学习(二)进程的调度、同步、通信、死锁

进程进程的组成PCB(进程控制块): 为了描述控制进程的运行,系统中存放进程的管理和控制信息的数据结构称为进程控制块(Process Control Block)。它是进程实体的一部分,是操作系统中最重要的记录性数据结构。它是进程管理和控制的最重要的数据结构,每一个进程均有一个PCB,在创建进程时,建立PCB,伴随进程运行的全过程,直到进程撤消而撤消。PCB是进程存在的唯一标识,所谓的创建进...

2019-05-13 00:05:25 973

原创 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 569

原创 计算机操作系统学习(一)操作系统基本概念

开始学习计算机操作系统,对其中一些内容进行了粗略的总结:操作系统基本概念操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境。它是计算机系统的最基本的系统软件。也是系统软硬资源的管理控制中心,它以尽量合理有效的方法组织多个用户(进程)共享计算机的各种资源并提供使用接口。操作系统的四个特征:并发(区...

2019-05-05 19:15:06 1437

原创 LeetCode中数学问题

素数:204. Count Primes题目描述:统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。解题思路:本题要使用埃拉托斯特尼筛法,这样运行不会超时。要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素数。给出要筛数值的范围n,找出以内的素数。先用...

2019-05-01 16:58:42 591

原创 23种设计模式全

23种设计模式设计模式的六大原则:1、开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类等。2、里氏替换原则(Liskov Substitution Princi...

2019-04-19 10:59:28 202

原创 设计模式——六大原则和创建型模式

初学设计模式,建议可以参考菜鸟教程,里面讲的很详细,这里我总结一下设计模式的六大原则和创建型模式:一、设计模式的六大原则:1、开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使...

2019-04-17 22:38:15 335

原创 LeetCode中典型的DFS问题

深度优先遍历DFS:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和v有路径相通的顶点都被访问到。 若此时尚有其他顶点未被访问到,则另选一个未被访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止。DFS应用:使用 DFS 对一个图进行遍历时,能够遍历到的节点都是从初始节点可达的,D...

2019-04-15 13:05:47 3913

原创 BFS问题及相关应用

LeetCode279. Perfect Square(Medium)题目描述:给定一个正整数n,求和为n的最小全平方数(例如,1,4,9,16,…)。Input: n = 12Output: 3Explanation: 12 = 4 + 4 + 4.Input: n = 13Output: 2Explanation: 13 = 4 + 9.解题思路:可以将每个整数看成图中的...

2019-04-13 13:46:25 439

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除