自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 收藏
  • 关注

转载 SQL查询之执行顺序解析

一直对SQL的理解就处于半生不熟的状态,前段时间阿里面试三面的时候问道让写一个SQL语句,统计每个学生所有成绩平均分大于80分的结果,当时差不多能写出来,但是多少心里没底,索性就想好好温习一下SQL语言,不料发现几篇解释SQL语句执行逻辑顺序的文章,感觉挺有意思,仔细看完觉得困惑减少很多。想来以前我确实没有关注这个点,以前大学学习SQL仿佛也就是镜中花水中月一般,只是知道这么回事压根不清楚用在何处...

2019-03-26 21:44:47 303

转载 五分钟搞清楚MySQL事务隔离级别

好久没碰数据库了,只是想起自己当时在搞数据库的时候在事务隔离级别这块老是卡,似懂非懂的。现在想把这块整理出来,尽量用最简洁的语言描述出来,供新人参考。首先创建一个表account。创建表的过程略过(由于InnoDB存储引擎支持事务,所以将表的存储引擎设置为InnoDB)。表的结构如下:表结构然后往表中插入两条数据,插入后结果如下:数据为了说明问题,我们打开两个控制台分别...

2019-03-26 21:43:59 149

转载 linux内存映射mmap原理分析

个人分类:linux内核设计与实现内存映射,简而言之就是将用户空间的一段内存区域映射到内核空间,映射成功后,用户对这段内存区域的修改可以直接反映到内核空间,同样,内核空间对这段区域的修改也直接反映用户空间。那么对于内核空间<---->用户空间两者之间需要大量数据传输等操作的话效率是非常高的。以下是一个把普遍文件映射到用户空间的内存区域的示意图。图一:二、基本函数...

2019-03-26 21:43:20 124

转载 GC详解及Minor GC和Full GC触发条件总结

GC,即就是Java垃圾回收机制。目前主流的JVM(HotSpot)采用的是分代收集算法。与C++不同的是,Java采用的是类似于树形结构的可达性分析法来判断对象是否还存在引用。即:从gcroot开始,把所有可以搜索得到的对象标记为存活对象。GC机制要准确理解Java的垃圾回收机制,就要从:“什么时候”,“对什么东西”,“做了什么”三个方面来具体分析。第一:“什么时候”即就是GC触发的...

2019-03-26 21:42:19 238

转载 一个简单的rpc实现

使用到的技术1、动态代理生成 client stub和server stub需要用到 **Java 动态代理技术 **,我们可以使用JDK原生的动态代理机制,可以使用一些开源字节码工具框架 如:CgLib、Javassist等。2、序列化为了能在网络上传输和接收 Java对象,我们需要对它进行 序列化和反序列化操作。序列化:将Java对象转换成byte[]的过程,也就是编码的...

2019-03-26 21:32:58 198

转载 rpc 框架的学习

RPC概述RPC(Remote Procedure Call)即远程过程调用,允许一台计算机调用另一台计算机上的程序得到结果,而代码中不需要做额外的编程,就像在本地调用一样。现在互联网应用的量级越来越大,单台计算机的能力有限,需要借助可扩展的计算机集群来完成,分布式的应用可以借助RPC来完成机器之间的调用。RPC框架原理在RPC框架中主要有三个角色:Provider、Cons...

2019-03-26 21:27:51 235

转载 为什么要用单例模式?

我们在编程中最常用的模式就是单例模式了,然而单例模式都用在什么场合?为什么不用静态方法而要用单例模式呢?要搞清这些问题,需要从静态方法和非静态方法的区别和联系说起。一、静态方法常驻内存,非静态方法只有使用的时候才分配内存?一般都认为是这样,并且怕静态方法占用过多内存而建议使用非静态方法,其实这个理解是错误的。为什么会这样,先从内存分配开始说起:托管堆的定义:对于32位的...

2019-03-26 21:14:59 5767

转载 求数组,左边的数都小于等于它,右边的数都大于等于它

题目在一个 int 数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数。直观想法是用两个数组 a、b。a[i]、b[i]分别保存从前到 i 的最大的数和从后到 i 的最小的数,一个解答:这需要两次遍历,然后再遍历一次原数组,将所有 data[i]>=a[i-1]&&data[i]<=b[i]的 data[i]找出即可。给出这个解答后,面试官有要求只能用一个...

2019-03-25 23:44:15 4807 1

转载 二叉树的镜像

/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: ...

2019-03-25 18:23:17 74

转载 Kafka入门三:几种消费方式

1.消费位移确认Kafka消费者消费位移确认有自动提交与手动提交两种策略。在创建KafkaConsumer对象时,通过参数enable.auto.commit设定,true表示自动提交(默认)。自动提交策略由消费者协调器(ConsumerCoordinator)每隔${auto.commit.interval.ms}毫秒执行一次偏移量的提交。手动提交需要由客户端自己控制偏移量的提交。...

2019-03-25 18:03:16 1324

转载 缺失的第一个正数

个人分类:面试给出一个无序的正数数组,找出其中没有出现的最小正整数。样例如果给出[1,2,0], return3如果给出[3,4,-1,1], return2挑战只允许时间复杂度O(n)的算法,并且只能使用常数级别的空间。分析:把当前数放到该放的位置即可,如1应该放到第0个位置,2应该放到第1个位置。代码:class Solution {public...

2019-03-25 17:49:52 53

转载 数组循环移动的几种做法

题目描述:设计一个算法,把一个含有N个元素的数组循环右移K位。解法一:最容易想到的就是每次将数组中的元素右移一位,循环K次。#include<iostream>using namespace std;void RightShift(int *arr, int N, int K){ while(K--){ int t = arr[N-1...

2019-03-25 17:30:00 511

转载 找出一个无序数组的中位数

要解决这个问题首先要了解什仫是中位数,所谓的中位数就是在一组有序的数字中找到中间的那个数字。如果数字的个数是奇数则直接返回中间的那个数,如果数字的个数是偶数此时这组数据的中位数有两个,取中间两个数的平均值即可。想法一、不论用什仫排序算法使得该组数据有序,直接取中间值即可。这种只要你掌握常见的排序算法就可以了,在这里就不实现了。想法二、利用快排的思想1、先进行一趟快排,使得div左边...

2019-03-25 08:47:40 4396

转载 数组中一个数出现一次,其余出现3次

class Solution {public: int singleNumber(int A[], int n) { // 将每一位 进右用移动 相加 int result=0; for(int i=0;i<32;++i){ int bits=0; for(int j=0;j<n;++j){ bits+=(A[j]>>i)&a...

2019-03-25 08:43:16 303

转载 有序数组中的个数平方的个数

题目如下:给你一个有序整数数组,数组中的数可以是正数、负数、零,请实现一个函数,这个函数返回一个整数:返回这个数组所有数的平方值中有多少种不同的取值。举例:nums = {-1,1,1,1},那么你应该返回的是:1。因为这个数组所有数的平方取值都是1,只有一种取值nums = {-1,0,1,2,3}你应该返回4,因为nums数组所有元素的平方值一共4种取值:1,0,4,9...

2019-03-25 08:41:30 516

转载 洗牌算法,概率问题

洗牌可以抽象为:给定一组排列,输出该排列的一个随机组合,本文代码中均以字符数组代表该排列算法1-算法3 都是在原序列的基础上进行交换,算法空间复杂度为O(1)算法1(错误):随机交换序列中的两张牌,交换n次(n为序列的长度),代码如下: 1 void Shuffle_randomSwap(char *arr, const int len) 2 { 3 for(int ...

2019-03-25 08:38:54 836

转载 小括号能够产生正确的对数

class Solution {public: int num; vector<string> generateParenthesis(int n) { vector<string> res; if(n<=0){ return res; } num=...

2019-03-25 08:38:27 152

转载 矩阵有序的搜索

class Solution {public: bool searchMatrix(vector<vector<int> > &matrix, int target) { //从右上角 或者 左下角开始查找 因为位中间值 int row=matrix.size(); int col=ma...

2019-03-25 08:38:00 189

转载 二叉树中寻找一条路径和最大

/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; *///给出一棵二叉树,...

2019-03-25 08:37:26 576

转载 Google面试题 3| 矩阵中的最长上升路径

题目描述Given an integer matrix, find the length of the longest increasing path.From each cell, you can either move to four directions: left, right, up or down. You may NOT move diagonally or move outs...

2019-03-25 08:35:46 534

转载 最长01字串

题目描述: 已知一个长度为N的字符串,只由0和1组成, 求一个最长的子串,要求该子串出0和1出现的次数相等。 要求算法时间复杂度尽可能的低。 比如: 1000010111000001,加粗的部分有4个0、4个1思路:(1) 最简单的想法就是遍历所有的子串,之后判断该子串是否满足条件 N^2子串,每个子串扫一遍判断0、1是否出现的次...

2019-03-25 08:33:55 1611

转载 编程之美3.8:求二叉树中节点的最大距离

如果把二叉树看成一个图,父子节点之间的连线看成是双向的,定义“距离”为两个节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点之间的距离。1 分析二叉树中节点的最大距离必定是两个叶子节点的距离。求某个子树的节点的最大距离,有三种情况:1.两个叶子节点都出现在左子树;2.两个叶子节点都出现在右子树;3.一个叶子节点在左子树,一个叶子节点在右子树。只要求得三种情况的最大值,结果就是...

2019-03-25 08:31:51 301

转载 给定能随机生成整数 1 到 5 的函数,写出能随机生成整数 1 到 7 的函数。

链接:https://www.nowcoder.com/questionTerminal/a475db9aa74747709e65399c0c7d86d2?from=14pdf来源:牛客网int rand7(){int n=25;while(n>21){n=5*(rand5()-1)+rand5();}r...

2019-03-25 08:31:11 745

转载 POJ 2796:Feel Good 单调栈经典题(求一区间,使得区间元素和乘以区间最小值最大)

解答解法一:暴力解法穷举所有数组中所有子数组,并计算所有子数组中最小值*子数组所有数的和,求出其中的最大值即可,代码如下:int enum_method(vector<int> &num) { int n = num.size(); int maxSum = INT_MIN; vector<int> tmp; for ...

2019-03-25 08:30:15 1790

转载 mysql获得自增字段下一个值

作者:@keenleung本文为作者原创,转载请注明出处:http://www.cnblogs.com/KeenLeung/p/3864614.html目录初次研究:表:sql:show table status from carsale_db LIKE 'tb_car'结果:想办法取得这其中的值....在Internet上找到这个资料:...

2019-03-24 13:06:35 1644

转载 INNODB自增主键的一些问题

背景: 自增长是一个很常见的数据属性,在MySQL中大家都很愿意让自增长属性的字段当一个主键。特别是InnoDB,因为InnoDB的聚集索引的特性,使用自增长属性的字段当主键性能更好,这里要说明下自增主键需要注意的几个事项。问题一:表锁在MySQL5.1.22之前,InnoDB自增值是通过其本身的自增长计数器来获取值,该实现方式是通过表锁机制来完成的(AUTO-I...

2019-03-24 13:04:00 595 1

转载 什么是java OOM?如何分析及解决oom问题?

最近查找了很多关于OOM,甚至于Java内存管理以及JVM的相关资料,发现这方面的东西太多了,竟有一种眼花缭乱的感觉,要想了解全面的话,恐非一篇文章能说清的,因此按照自己的理解整理了一篇,剩下的还需要继续学习。1)什么是OOM?OOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,来源于java.lang.OutOfMemoryError。看下关于的官方说明:Throw...

2019-03-23 12:23:58 152

转载 74 Java 对象在内存中状态

2019-03-23 12:09:32 209

转载 Linux CPU性能分析与监控——vmstat、top

Linux性能监控工具汇总:iostat 磁盘性能监控 vmstat 虚拟内存性能监控、CPU监控(进程上下文切换、CPU利用率) top 系统负载、CPU使用率、各个进程的详细报告(CPU使用率、内存使用情况)等 free 内存使用情况。 ps ps命令不算是性能监控工具,但是可以使用ps配合上述命令,找到占有系统资源较高的进程本文重点讲下vmstat的用法,其他如top不做讲解,...

2019-03-23 12:00:28 1089

转载 对于Java Web中的Filter和Interceptor的理解

写在前面:因为部门项目中有用户登录验证方面的需求,故而学习了一下相关的验证技术,本文仅是作者个人学习的心得,由于水平有限,如有错误之处还请指出、见谅。1. 背景在设计web应用的时候,用户登录/注册是必不可少的功能,对用户登录信息进行验证的方法也是多种多样,大致可以认为如下模式:前端验证+后台验证。根据笔者的经验,一般会在前端进行一些例如是否输入数据、输入的数据的格式是否正确等一系列的验证...

2019-03-23 11:26:25 252

转载 过滤器(Filter)和拦截器(Interceptor)的区别

过滤器(Filter)和拦截器(Interceptor)的区别Filter介绍 Filter可以认为是Servlet的一种“加强版”,它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链。Filter也可以对用户请求生成响应,这一点与Servlet相同,但实际上很少会使用Filter向用户请求生成响应。使用Filter完整的流...

2019-03-23 11:25:11 83

转载 优化MySql中explain的时候出现using filesort

在explain我们所使用的sql的时候,经常会遇到using filesort这种情况,原以为是由于有相同列值的原因引起,结果昨天看到公司的一个sql,跟同事讨论了下加上自己又做了一些测试,突然发现自己原来的想法是错误的。首先,只有在order by 数据列的时候才可能会出现using filesort,而且如果你不对进行order by的这一列设置索引的话,无论列值是否有相同的都会出现us...

2019-03-22 16:55:58 1449

转载 JAVA中类、实例与Class对象

类 类是面向对象编程语言的一个重要概念,它是对一项事物的抽象概括,可以包含该事物的一些属性定义,以及操作属性的方法。面向对象编程中,我们都是以类来编码。实例简单理解,就是new,就是对类的实例化,创建这个类对应的实际对象,类只是对事物的描述,而实例化就相当于为这个描述新开辟了一块内存,可以改变这块区域里的各种属性(成员变量),当然,也可以实例化多块区域,只是不同的对象而...

2019-03-22 14:29:41 2051

转载 回溯法--深度优先搜索

1、概念回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。许多复杂的,...

2019-03-22 00:07:56 1201

转载 矩阵中字符串的查找

关键点:首先要找到对应的字符串的首位,然后就可以进行深度优先搜素,也就是4个方向的搜索,并且要记录走过的路,设置成为特殊字符,后面还要回溯。class Solution {public: bool exist(vector<vector<char> > &board, string word) { int rows=board.size(), cols...

2019-03-21 23:53:50 904

转载 m转换为n的次数

要点:1 异或2 数组中1的个数class Solution {public: /** *@param a, b: Two integer *return: An integer */ int bitSwapRequired(int a, int b) { // write your code here ...

2019-03-21 23:50:36 200

转载 磁道、柱面、扇区、磁盘簇、寻道时间、旋转延迟、存取时间

1.磁道以盘片中心为圆心,用不同的半径,划分出不同的很窄的圆环形区域,称为磁道。2.柱面上下一串盘片中,相同半径的磁道所组成的一个圆柱型的环壁,就称为柱面。3.扇区磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区.扇区是磁盘最小的物理存储单元4.磁盘簇(windows)windows将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理5.寻道时间磁头...

2019-03-21 23:48:26 3677

转载 Merge Intervals 合并区间

Given a collection of intervals, merge all overlapping intervals.For example,Given[1,3],[2,6],[8,10],[15,18],return[1,6],[8,10],[15,18].这道和之前那道Insert Interval很类似,这次题目要求我们合并区间,之前那题明确了输入区间集...

2019-03-21 23:47:19 97

转载 单例模式

public class Singleton { private static volatile Singleton singleton; private Singleton() { } public static Singleton getInstance() { if (singleto...

2019-03-21 23:46:40 58

转载 priority_queue的堆

priority_queue本质是一个堆。1. 头文件是#include<queue>2. 关于priority_queue中元素的比较  模板申明带3个参数:priority_queue<Type, Container, Functional>,其中Type 为数据类型,Container为保存数据的容器,Functional 为元素比较方式。  Cont...

2019-03-21 08:46:58 237

空空如也

空空如也

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

TA关注的人

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