自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (3)
  • 收藏
  • 关注

原创 获取几分钟(几小时、几天、几个月、几年)前的时间

获取几分钟(几小时、几天、几个月、几年)前的时间 /** * 获取几分钟(几小时、几天、几个月、几年)前的时间 * * @param num * @param sdf 时间格式 * @return */ public static String getNumMinutesBefore(int num, String sdf) { SimpleDateFormat format = new SimpleDateFormat

2022-03-21 10:08:49 232

原创 缓存穿透、缓存雪崩、缓存击穿

为什么要用缓存?主要有两个用途:高性能、高并发。高性能假设这么个场景,有个操作,一个请求过来,耗时 600ms 操作 mysql查出来一个结果,但是这个结果可能接下来几个小时都不会变了,或者变了也可以不会立即反馈给用户。那么此时咋办?将折腾 600ms 查出来的结果放入缓存里,一个 key 对应一个 value,下次查找时不经过 mysql,直接从缓存里通过一个 key 查出来一个 val...

2019-04-01 14:03:18 247

转载 10分钟搞懂蚁群算法

蚂蚁几乎没有视力,但他们却能够在黑暗的世界中找到食物,而且能够找到一条从洞穴到食物的最短路径。它们是如何做到的呢?蚂蚁寻找食物的过程单只蚂蚁的行为及其简单,行为数量在10种以内,但成千上万只蚂蚁组成的蚁群却能拥有巨大的智慧,这离不开它们信息传递的方式——信息素。蚂蚁在行走过程中会释放一种称为“信息素”的物质,用来标识自己的行走路径。在寻找食物的过程中,根据信息素的浓度选择行走的方向,并最终到...

2019-03-23 21:32:45 2043

原创 解决windows无法启动MySQL服务问题

1. 启动MySQL服务时会出现下图所示对话框2. 找到mysql安装目录,将其配置文件my.ini移至bin目录下。3. 以管理员权限在命令行模式下进入bin目录下。4. 接下来,在命令行执行命令:mysqld --initialize --user=mysql --console。注意,这一步骤会获得一个临时密码,需要记录,之后会用到。5. 接下来在命令行模式下输入: mys...

2019-03-12 15:33:48 10722

原创 linux下搭建ZooKeeper集群(伪集群)

搭建Zookeeper集群1. 搭建要求真实的集群是需要部署在不同的服务器上的,但是在我们测试时同时启动十几个虚拟机内存会吃不消,所以这里我们搭建伪集群,也就是把所有的服务都搭建在一台虚拟机上,用端口进行区分。我们这里要求搭建一个三个节点的Zookeeper集群(伪集群)。2. 准备工作重新部署一台虚拟机作为我们搭建集群的测试服务器。(1)安装JDK 【此步骤省略】。(2)Zook...

2019-03-05 20:01:05 1112

原创 【剑指Offer】3.从尾到头打印链表(Java)

题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。package Algorithm.Offer.T3;import Algorithm.common.ListNode;import Algorithm.common.ListNodeUtil;import java.util.ArrayList;import java.util.Stack;/** * ...

2019-03-02 19:43:23 424

原创 【剑指Offer】1. 二维数组中的查找(Java)

题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。/** * 二维数组中的查找 * * @author wangfei */public class Solution { /** * 把每一行看成有序递增的数组,利用...

2019-03-01 13:03:23 184

原创 【LeetCode】122. Best Time to Buy and Sell Stock II(Java)

题目描述:假设有一个数组,其中第i个元素是给定股票在第i天的价格。设计一种寻找最大利润的算法。您可以完成任意多的交易(买一股,卖一股,多次)。注:阁下不得同时进行多项交易(即你必须先把股票卖了,然后再买。Example 1:Input: [7,1,5,3,6,4]Output: 7Explanation: Buy on day 2 (price = 1) and sell on day ...

2019-03-01 11:10:53 162

原创 【LeetCode】50. Pow(x, n)(Java)

题目描述:实现pow(x, n),它计算x的n (x^n)次方。Example 1:Input: 2.00000, 10Output: 1024.00000Example 3:Input: 2.00000, -2Output: 0.25000Explanation: 2-2 = 1/22 = 1/4 = 0.25/** * 求x的n次方幂 * * @author wangfe...

2019-03-01 10:46:20 306

原创 【LeetCode】703. Kth Largest Element in a Stream(Java)

题目描述:设计一个类来查找流中第k大的元素。注意,它是排序顺序中第k大的元素,而不是第k个不同的元素。第k大的类将有一个接受整数k和整数数组nums的构造函数,整数数组nums包含来自流的初始元素。对于对方法kthmaximum的每次调用。添加,返回表示流中第k个最大元素的元素Example:/** * 返回数据流中第k大元素 * * @author wangfei */publ...

2019-02-27 22:17:03 262

原创 【LeetCode】239. Sliding Window Maximum(Java)

题目描述:给定一个数组数字,有一个大小为k的滑动窗口,它从数组的最左边移动到最右边。你只能在窗口看到k个数字。每次滑动窗口右移一个位置。返回最大滑动窗口。Example:Input: nums = [1,3,-1,-3,5,3,6,7], and k = 3Output: [3,3,5,5,6,7]Explanation:package Algorithm.LeetCode.T239;...

2019-02-27 22:11:13 468

原创 【LeetCode】141. Linked List Cycle(Java)

题目描述:给定一个链表,确定其中是否有一个循环。为了表示给定链表中的循环,我们使用一个整数pos,它表示tail连接到的链表中的位置(0-index)。如果pos为-1,则链表中没有循环。Example 1:Input: head = [3,2,0,-4], pos = 1Output: true** * 判断链表是否有环 * * @author wangfei */publ...

2019-02-27 22:05:04 287

原创 【LeetCode】24. Swap Nodes in Pairs(Java)

题目描述:给定一个链表,每交换两个相邻节点并返回其头部。您不能修改列表节点中的值,只能修改节点本身。Example:Given 1->2->3->4, you should return the list as 2->1->4->3.public static ListNode swapPairs(ListNode head) { if ...

2019-02-27 21:58:41 269

原创 【LeetCode】206. Reverse Linked List(Java)

题目描述:反转单链表。Example:Input: 1->2->3->4->5->NULLOutput: 5->4->3->2->1->NULLclass Solution { public ListNode reverseList(ListNode head) { ListNode cur = head;...

2019-02-25 14:19:46 179

原创 【LeetCode】20. Valid Parentheses(Java)

题目描述:给定一个只包含字符’(’,’)’,’{’,’}’,’[‘和’]'的字符串,判断输入字符串是否有效。输入字符串是有效的,如果:1.开括号必须由相同类型的括号关闭。2.开括号必须按正确顺序关闭。注意,空字符串也被认为是有效的。Example 1:Input: “()”Output: trueExample 2:Input: “()[]{}”Output: trueE...

2019-02-25 13:17:33 238

原创 【LeetCode】1. Two Sum(Java)

题目描述:给定一个整数数组,返回两个数字的索引,使它们相加成为一个特定的目标。您可能假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素。Example:Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].import java.util.Arr...

2019-02-25 13:09:05 316

原创 【LeetCode】242. Valid Anagram(Java)

题目描述:给定两个字符串s和t,编写一个函数来确定t是否是s的变位。Example:Input: s = “anagram”, t = “nagaram”Output: true/** * 有效的回文构词法 * @author wangfei * */public class Solution { public static void main(String[] args) ...

2019-02-25 12:13:42 231

原创 《Redis设计与实现》笔记 -- 数据结构与对象

1 简单动态字符串Redis没有直接使用C语言传统的字符串表示,而是自己构建了一种简单动态字符串(SDS),使用SDS作为Redis的默认字符串表示。1.1 SDS 定义struct sdshdr { // 记录 buf 数组中已经使用字节的数量,等于 SDS 所保存字符串的长度 int len; // 记录 buf 数组中未使用字节的数量 ...

2019-01-12 22:26:17 206

原创 SecureCRT中文乱码解决方法

默认设置下,通SecureCTR与Linux系统连接可能出现中文乱码的情况。这是由于字符编码不一致造成的,应该将SecureCTR的字符编码设置为UTF-8。设置步骤如下图所示:1、选项——>全局选项2、默认会话——>编辑默认设置——>确定3、外观——>字符编码(UTF-8)——>字体4、字体(新宋体)——>字符集(中文GB2...

2019-01-09 11:29:00 479

原创 设计模式[1] -- 单例模式

核心作用:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。优点:由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决。 单例模式可以在系统设置全局的访问点,优化环共享资源访问,例如可以设计一个单例类,负责所有数据表的映射处理。常见的五种单例...

2019-01-08 10:27:08 173

原创 Java基础面试题

1.集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList;HashSet,TreeSet)List:元素是有顺序的且可以重复,因为每个元素有自己的角标(索引)ArrayList:底层是数组结构,特点是查询很快,增删稍微慢点。线程不同步,A线程将元素放在索引0位置,CPU调度线程A停止,B运行,也将元素放在索引0位置,当A和B同时运行的时候Si...

2019-01-02 11:12:56 174

原创 数据结构与算法 -- 树结构与图结构

树的概念形式化定义:算法的集合树(Tree)是由一个或多个结点组成的有限集合T,其中有一个特定的称为根的结点;其余结点可分为(m≥0)个互不相交的有限集T1,T2,T3,…,Tm,每一个集合本身又是一棵树,且称为根的子树。逻辑结构:树的表示:图形表示法 表表示法:(A(B(E,F),C(G),D(H,I,J)))树的术语:结点的度:结点子树个数为结点的度 树的度:树中...

2018-12-27 20:12:35 4695

转载 Java常见面试题及答案 11-20(JVM)

11.JVM内存分哪几个区,每个区的作用是什么?java虚拟机主要分为以下一个区:方法区:1. 有时候也成为永久代,在该区内很少发生垃圾回收,但是并不代表不发生GC,在这里进行的GC主要是对方法区里的常量池和对类型的卸载2. 方法区主要用来存储已被虚拟机加载的类的信息、常量、静态变量和即时编译器编译后的代码等数据。3. 该区域是被线程共享的。4. 方法区里有一个运行时常量池...

2018-11-29 10:00:34 164

转载 Java常见面试题及答案 21-30(集合类)

21.HashMap的工作原理是什么?HashMap内部是通过一个数组实现的,只是这个数组比较特殊,数组里存储的元素是一个Entry实体(jdk 8为Node),这个Entry实体主要包含key、value以及一个指向自身的next指针。HashMap是基于hashing实现的,当我们进行put操作时,根据传递的key值得到它的hashcode,然后再用这个hashcode与数组的长度进行模运...

2018-11-29 09:59:54 147

转载 java常见面试题及答案 1-10

1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编译成能被 Java 虚拟机执行的字节码文件。Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java 虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。 2...

2018-11-29 09:46:56 154

转载 Java面试题之线程

1、Thread类中的yield方法有什么作用? Yield方法可以暂停当前正在执行的线程对象,让其它有相同优先级的线程执行。它是一个静态方法而且只保证当前线程放弃CPU占用而不能保证使其它线程一定能占用CPU,执行yield()的线程有可能在进入到暂停状态后马上又被执行。点击这里查看更多yield方法的相关内容。 2、Runnable接⼝和Callable接⼝的区别 Ru...

2018-11-29 09:34:05 271

转载 纯手写SpringMVC到SpringBoot框架项目实战

引言Spring Boot其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,springboot是一个快速整合第三方框架的,简化了xml的配置,项目中再也不包含web.xml文件了,完全使用注解来完成操作的,并且内部自带tomcat启动。直接使用jar文件运行即可。好了大概了解了spri...

2018-11-29 09:25:51 455

转载 Spring面试题

Spring 概述1. 什么是spring?Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。2. 使用Spring框架的好处是什么?轻量:Spring 是轻量的,基本的版本大约2MB。控制...

2018-11-29 09:14:15 145

转载 了解Nginx到底能做什么

前言本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是我个人使用过和了解到过得。所以还请见谅,同时欢迎留言交流Nginx能做什么1.反向代理2.负载均衡3.HTTP服务器(包含动静分离)4.正向代理以上就是我了解到的Nginx在不依赖第三方模块能处理的事情,下面详细说明每种功能怎么做...

2018-11-28 22:47:35 134

原创 八种常用排序算法(Java)

01算法分类02时间复杂度03相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面。时间复杂度:对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规律。空间复杂度:是指算法在计算机内执行时所需存储空间的度量,它也是数据规模n的函数。 1、冒泡排序(Bubble S...

2018-11-21 12:42:29 301

转载 ZooKeeper的安装与部署

一、系统要求ZooKeeper可以运行在多种系统平台上面,表1展示了zk支持的系统平台,以及在该平台上是否支持开发环境或者生产环境。表1:ZooKeeper支持的运行平台二、下载ZooKeeper是用Java编写的,运行在Java环境上,因此,在部署zk的机器上需要安装Java运行环境。为了正常运行zk,我们需要JRE1.6或者以上的版本。 对于集群模式下的ZooKeeper...

2018-10-24 12:56:14 174

转载 《从 PAXOS 到 ZOOKEEPER:分布式一致性原理与实践》学习笔记[3]——Zookeeper 技术内幕

1 系统模型1.1 数据模型Zookeeper 中,每一个数据节点都被称为一个 ZNode,所有 ZNode 按层次化结构进行组织,节点路径标识方式和 Unix 文件系统路径相似,由一系列使用 / 进行分割的路径表示,开发人员可以向这个节点中写入数据,也可以在节点下面创建子节点Zookeeper 对于每一个事务请求,都会为其分配一个全局唯一的事务 ID,用 ZXID 来表示,通常是一个...

2018-10-23 09:50:58 231

转载 《从 PAXOS 到 ZOOKEEPER:分布式一致性原理与实践》学习笔记[2]——初识 Zookeeper

1 Zookeeper 概论Zookeeper 是一个分布式数据管理与协调框架,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。分布式应用程序可以基于它实现诸如数据发布/订阅,负载均衡,命名服务,分布式协调/通知,集群管理,Master 选举,分布式锁和分布式队列等功能。Zookeeper 可以保证如下分布式一致性特性:顺序一致性:从同一个客户端发起的...

2018-10-23 09:47:12 201

转载 《从 PAXOS 到 ZOOKEEPER:分布式一致性原理与实践》学习笔记[1]——一致性协议

1 分布式1.1 定义分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统1.2 特点分布性、对等性、并发性、缺乏全局时钟、故障总是会发生2 CAP 和 BASE2.1 CAPCAP 理论:一个分布式系统不可能同时满足一致性、可用性和分区容错性一致性:一致性是指数据在多个副本之间是否能够保持一致的特性可用性:可用性...

2018-10-23 09:45:23 195

转载 分布式锁

1 为什么需要分布式锁分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或同一个系统的不同主机之间共享了一个或者一组资源,那么访问这些资源的时候,往往需要通过一些互斥手段来防止彼此之间干扰,保证一致性。2 分布式锁需要具备哪些条件获取锁和释放锁的性能要好 判断是否获得锁必须是原子性的,否则可能导致多个请求都能获取到锁 网络中断或者宕机无法释放锁时,锁必须被清除,...

2018-10-23 09:41:19 505

原创 compareTo()函数用法-Comparable

public int compareTo(String anotherString) 按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象在参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一...

2018-09-18 11:16:59 724

转载 mybatis面试题(二)

Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重?不同的Xml映射文件,如果配置了namespace,那么id可以重复;如果没有配置namespace,那么id不能重复;毕竟namespace不是必须的,只是最佳实践而已。原因就是namespace+id是作为Map<String, MappedStatement>的key使用的,如果没有namespace...

2018-09-07 22:40:26 154

转载 mybatis面试题(一)

1、#{}和${}的区别是什么?#{}是预编译处理,${}是字符串替换。Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;Mybatis在处理${}时,就是把${}替换成变量的值。使用#{}可以有效的防止SQL注入,提高系统安全性。 2、当实体类中的属性名和表中的字段名不一样 ,怎么办 ?第1种: 通...

2018-09-07 22:37:34 150

转载 Python面试攻略(coding篇)

写在前面之前为各位小伙伴推出了python面试(嗨谈篇)的内容,主要为各位小伙伴介绍了一些关于python面试中经常出现的概念性问题,那么今天就要从代码入手了,让各位Pythoner在面试的时候遇到这些代码问题也能完全不慌乱,从容解决。当然,如果你在面试的过程中,正巧遇到了这其中没提及的问题,你认为比较有意思的,也可以在后面的留言板中分享出来让别的小伙伴参考一下看看~ 1.台阶问题...

2018-08-25 10:32:53 193

转载 彻底解决Spring MVC中文乱码问题

1:表单提交controller获得中文参数后乱码解决方案注意: jsp页面编码设置为UTF-8form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><form action="${ctx}/...

2018-08-20 09:36:44 241

SecureCRT&SecureFX; v7.3安装和破解

64位系统安装和破解SecureCRT&SecureFX; v7.3,内附安装包、注册机和破解教程

2018-09-18

舵机控制TIM1

STM32利用定时器TIM1模拟PWM波控制舵机转动,通过串口通信进行无线指令控制并将结果返回,在上位机上显示。

2018-08-21

零死角玩转stm32(初级+中级+高级+系统)

stm32学习文档,分为初级篇、中级篇、高级篇和系统篇,详细讲解了stm32的各个模块和功能,手把手教学,有利于不同阶段的爱好者进行学习。

2018-08-21

空空如也

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

TA关注的人

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