自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 资源 (1)
  • 收藏
  • 关注

原创 性能优化的关注点

性能优化的关注点1 写缓冲2 复用2.1 读缓存2.2 资源复用3 并发4 分片5 亲密度分享一下在性能方面经常考虑的一些关注点,可以分为以下方面1 写缓冲因为各级存储介质速度的不同,经常可以运用缓冲提高性能经典应用例如linux中的bufferCache或者mysql中的redolog2 复用复用可以分为两个方面,2.1 读缓存多次读取的数据可以在某一端缓存下来,避免每次都做完全部的操作经典应用例如页面缓存、redis。。。等等等等2.2 资源复用在某个资源创建、销毁、复制代价很高昂

2020-08-24 11:22:13 227

原创 leetcode:84. 柱状图中最大的矩形

题目:给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3]输出: 10分析:这题有点东西,有三种思路,大概看...

2019-12-25 18:30:09 204

原创 leetcode:83. 删除排序链表中的重复元素

题目:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3分析:递归,把next的递归结果作为当前节点的next,只是82题更简单的形式代码: public ListNode deleteDup...

2019-12-25 14:56:10 184

原创 leetcode:82. 删除排序链表中的重复元素 II

题目:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3分析:两种做法,1:递归,把next的递归结果作为当前节点的next2...

2019-12-24 17:28:27 129

原创 leetcode:80. 删除排序数组中的重复项 II

题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。你不需要考虑数组中超出新长度后...

2019-12-23 13:28:30 86

原创 leetcode:79. 单词搜索

题目:给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[[‘A’,‘B’,‘C’,‘E’],[‘S’,‘F’,‘C’,‘S’],[‘A’,‘D’,‘E’,‘E’]]给定 word = “ABCCED”, 返回 ...

2019-12-23 10:46:03 134 1

原创 CAP原则以及zookeeper和eureka的区别

之前裸辞了最近在找工作,有点忙,更新会少很多,后续稳定再多看看1.CAP原则指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容忍性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。在分区的情况下,各节点如果无法相互进行网络通信,那就只能在一致性和可用性中选取其一如果选择在连接不...

2019-07-12 22:37:33 1709

原创 使用GroboUtils进行多线程的单元测试

1.背景测试一个方法是否多线程并发安全,编写单元测试用例时发现Junit启动多线程会使用System.exit退出用例执行,无法进行多线程的测试,使用GroboUtils2.配置使用maven配置依赖<dependency> <groupId>net.sourceforge.groboutils</groupId> <artif...

2019-05-08 15:09:59 247

原创 事务与锁介绍(3)

1.前文前面介绍了数据库锁的作用和mvcc实现的隔离级别,这里探讨一下mysql中mvcc的实现前文:https://blog.csdn.net/qq_24516549/article/details/89374174https://blog.csdn.net/qq_24516549/article/details/894059832.mvcc实现下面引用高性能mysql里的说法:...

2019-04-23 15:58:06 222

原创 事务与锁介绍(2)

1.背景https://blog.csdn.net/qq_24516549/article/details/89374174之前介绍了不加以mvcc的经典情况,下面介绍一下会出现的问题:Read committed(读已提交)(这里介绍的是不用mvcc的情况,与真实情况有出入)事务对当前被读取的数据加 行级S锁,一旦读完该行,立即释放该锁;事务在修改数据的时候对数据增加行级X排他锁,在事...

2019-04-22 17:03:22 98

原创 事务与锁介绍(1)

1.事务概念介绍事务是一系列数据库操作的有序集合事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性 (isolation)和持久性(durability)的缩写。事务的原子性:事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据改操作要全部执行,要么全部不执行。事务的一致性:指在一个事务...

2019-04-18 11:00:02 290

原创 java8新特性:stream

一.demo11.代码package stream._01;import java.util.ArrayList;import java.util.List;public class App { public static void main(String[] args) { List<Apple> list = getApple(); list.stream...

2019-04-15 13:35:56 99

原创 java生成二维码合成背景图

一.背景接到个需求,要打印纸质红包,上面附二维码,然后每个红包的二维码不一样,扫描二维码去参加活动领真实的红包,需要给出对应的图片二.代码示例import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.awt.image.ColorModel;import java.awt.image.Writa...

2019-04-12 16:35:25 1051

原创 java中lambda表达式的实现

一.示例代码package lambda.examples._02;import java.util.ArrayList;import java.util.Comparator;import java.util.List;public class App { List<Apple> getAppleList() { List<Apple> list =...

2019-04-11 17:42:58 444

原创 spring中的动态代理

一.背景介绍之前介绍了动态代理的两种方式jdk动态代理:https://blog.csdn.net/qq_24516549/article/details/89085881cglib动态代理:https://blog.csdn.net/qq_24516549/article/details/89167591现在开始研究在spring中的实现有什么不同二.示例代码1.注解import ...

2019-04-11 16:37:23 898

原创 cglib动态代理

1.示例需要代码1.接口代码public interface People { public String workAndGetReward(); public String reward();}2.接口实现类代码public class Programmer implements People { @Override public String workAndGetR...

2019-04-10 00:52:30 160

原创 jdk动态代理

1.示例需要代码1.接口代码public interface People { public String workAndGetReward(); public String reward();}2.接口实现类代码public class Programmer implements People { @Override public String workAndGetR...

2019-04-08 12:38:12 216

原创 使用nio基本api处理tcp/ip服务端编程

一.示例代码package nio.base.socket.server;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import java.nio.channels.Selec...

2019-04-04 01:51:31 216

原创 使用springboot+netty处理tcp/ip服务端编程

1.添加依赖略2.netty服务器启动springboot的bean代码,另开一个线程启动@Componentpublic class NettyServer { private static Logger logger = LoggerFactory.getLogger(NettyServer.class); // 保存response的map public static M...

2019-04-03 00:36:30 12456 4

原创 接口防止恶意调用的安全策略

1.背景需要做一个微信分享的后端支持接口,请求响应中包含appid,为了避免对外暴露配置相应的安全策略2.步骤限制请求域名在后端cors过滤器中添加指定的域名作为allowedOrigins的值,非此域名无法访问接口\@Configurationpublic class CorsConfig implements WebMvcConfigurer { @Override ...

2019-03-29 16:17:34 2287 2

原创 JAVA I/O

一.File类1.目录列表器示例代码1public class DirList { public static void main(String[] args) { File path = new File("D:\\Work"); String[] list; list = path.list(new DirFilter("^.*\\.rar")); Arrays.sor...

2019-03-29 16:04:33 82

原创 线程的interrupt()方法解析

interrupt()方法是thread里的一个方法,具体先看源码注释1.方法描述 /** * Interrupts this thread. * * <p> Unless the current thread is interrupting itself, which is * always permitted, the {@link...

2019-03-27 16:40:23 1217

原创 leetcode:344. 反转字符串

题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:[...

2019-03-21 18:16:58 118

原创 leetcode:292. Nim游戏

题目:你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛;因为无论你拿走 1 块、2 块 还是 3 块石头,最...

2019-03-20 15:49:06 140

原创 leetcode:238. 除自身以外数组的乘积

题目:给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,...

2019-03-19 17:43:20 82

原创 leetcode:237. 删除链表中的节点

题目:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:...

2019-03-19 17:15:52 83

原创 leetcode:236. 二叉树的最近公共祖先

题目:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5...

2019-03-19 17:04:03 118

原创 leetcode:235. 二叉搜索树的最近公共祖先

题目:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root = ...

2019-03-19 16:45:57 209

原创 leetcode:231. 2的幂

题目:给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false分析:递归代码: public boolean isPowerOfTwo(int n) { if (n == 1) return true...

2019-03-19 16:36:12 97

原创 13.jdk的命令行工具

1.jps:虚拟机进程状况工具jps(JVM Process Status Tool),有点像linux的ps命令,通过这个命令你可以查看执行类的名称以及这些进程在本地虚拟机中对应的唯一ID(Local Virtual Machine Identifier, LVMID)。对于本地虚拟机来讲,LVMID与PID是一致的。一般用jps -l -m即可,查看启动的jar包的pid和端口号2.j...

2019-03-19 01:50:55 259

原创 12.内存分配和回收策略

通俗的讲,对象的内存分配就是在堆上的分配,对象主要分配在新生代的Eden上,如果启动了本地线程分配缓冲,讲按线程优先在TLAB上分配。少数情况下也是直接在老年代中分配。1.内存优先在Eden分配一般情况下对象都是优先分配在Eden上,当Eden没有足够的空间进行分配时,jvm会发起一次Minor GC。如果还是没有足够的空间分配,后面还有另外的措施,下面会提到。设置虚拟机的收集器日志参数-X...

2019-03-15 01:51:43 169

原创 leetcode:230. 二叉搜索树中第K小的元素

题目:给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k = 13/ 1 42输出: 1示例 2:输入: root = [5,3,6,2,4,null,null,1], k = 35/ 3...

2019-03-12 18:18:33 86

原创 RocketMq搭建demo

1.在linux上安装RocketMq1.1安装gityum updateyum install gitgit --version1.2安装wget依赖包yum install wget1.3安装jdkyum install java-1.8.0-openjdk* -y1.4安装mavenyum install maven1.5安装RocketMQ#使用git拉取...

2019-03-12 17:20:30 1141

原创 leetcode:217. 存在重复元素

题目:给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true分析:set代码: private Set...

2019-03-11 23:16:21 118

原创 leetcode:215. 数组中的第K个最大元素

题目:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。分析:意义不明,这难道不是呼叫...

2019-03-11 23:12:01 186

原创 leetcode:206. 反转链表

题目:反转一个单链表。示例:输入: 1-&gt;2-&gt;3-&gt;4-&gt;5-&gt;NULL输出: 5-&gt;4-&gt;3-&gt;2-&gt;1-&gt;NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?分析:递归,思路比较清晰代码: public ListNode reverseList(ListNode head) { if (he...

2019-03-11 23:04:02 111

原创 leetcode:169. 求众数

题目:给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2分析:遍历一遍(效率略低)代码: public int majorityElement(int[] nums) { ...

2019-03-11 22:28:09 126

原创 springboot使用注解和aspectJ进行AOP编程

1.注解类先新建注解类package cn.seiya2.modules.admin.annotation;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annot...

2019-03-11 18:16:34 1191

原创 11.内存回收的具体实现——垃圾收集器

1.Serial收集器最基本的垃圾收集器,一种单线程收集器,在GC时必须STW缺点:必须STW,并且STW时间占比太高优点:简单高效(与其他垃圾收集器的单线程模式相比)对于桌面应用在虚拟机中使用的只有几十兆乃至一两百兆的新生代内存来说,stw的停顿时间在最多一百毫秒以内,完全可以接受示例图:2.ParNew收集器是Serial的多线程版本参数,收集算法,STW对象分配规则...

2019-03-10 22:48:33 127

原创 leetcode:160. 相交链表

题目:编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意...

2019-03-06 00:03:10 88

netbeans 8.2 c++ linux 64位

netbeans 8.2 linux 64位版本,支持c++,可用于linux下编译jdk,实测centos7.4下可用

2018-11-27

空空如也

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

TA关注的人

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