自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风雨雾凇的博客

业精于勤荒于嬉

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

转载 腾讯云CentOS Docker

安装前提CentOS 仅发行版本中的内核支持 DockerDocker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。使用 yum 安装(CentOS 7下)Docker 要求 CentOS 系统的内核版本高于...

2018-09-19 16:02:00 583

原创 RabbitMQ(Go语言操作) 知识汇总(一)

什么是RabbitMQ官网上的介绍是这样的: RabbitMQ is a message broker: it accepts and forwards messages. You can think about it as a post office: when you put the mail that you want posting in a post box, you can...

2018-07-06 17:30:52 2770

转载 红黑树

二叉查找树由于红黑树本质上就是一棵二叉查找树,所以在了解红黑树之前,咱们先来看下二叉查找树。二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树:若任意结点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若任意结点的右子树不空,则右子树上所有

2018-03-09 11:02:52 331

原创 阿里一面总结 (凉凉)

刚刚经历了人生中的第一次面试,感觉多半是要凉了,现在把问题总结一下:问题:1. 自我介绍2. TCP三次握手和四次挥手:三次握手: 四次挥手: 追问: time_wait状态必须等待多长时间:(答不上来) 2MSL什么是2MSLMSL是Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”,他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢

2018-03-08 22:36:37 8905 8

原创 ArrayList实现源码分析&与Vector的区别

以数组实现。节约空间,但数组有容量限制。超出限制时会增加50%容量,用System.arraycopy()复制到新的数组,因此最好能给出数组大小的与估值。默认第一次插入元素是创建大小为10的数组。按数组下标访问元素-get(i)/set(i,e)的性能很高,这是数组的基本优势。直接在数组末尾加入元素-add(e)的性能也很高,但如果按下标插入,删除元素--add(i,e),remove(i),remove(e)则要

2018-03-08 11:15:28 520

原创 java面试准备2

11. HashMap和ConcurrentHashMap的区别,HashMap的底层源码TreeMap、HashMap、LindedHashMap的区别。Collection包结构,与Collections的区别。try catch finally,try里有return,finally还执行么?Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况。J

2018-03-02 14:14:40 255

原创 (java面试) 11. HashMap和ConcurrentHashMap的区别,HashMap的底层源码

HashMap和ConcurrentHashMap的区别:Hashmap本质是数组加链表。根据key取得hash值,然后计算出数组下标,如果多个key对应到同一个下标,就用链表串起来,新插入的在前面。所以他不保证映射的顺序。ConcurrentHashMap:在hashMap的基础上,ConcurrentHashMap将数据分为多个segment,默认16个(concurrency level),然

2018-02-11 23:19:24 660 1

原创 输入网址后浏览器执行了什么?

输入网址后浏览器执行了什么?1. 连接 当我们输入这样一个请求时,首先要建立一个socket连接,因为socket是通过ip和端口建立的,所以之前还有一个DNS解析过程,把http://www.baidu.com/test变成ip,如果url里不包含端口号,则会使用该协议的默认端口号。DNS的过程是这样的:首先我们知道我们本地的机器上在配置网络时都会填写DNS,这样本机就会把这个url发

2018-02-10 23:45:15 593

原创 java面试准备(1)

J2SE基础1. 九种基本数据类型的大小,以及他们的封装类。 类型 大小 封装类 int 4 Integer byte long char boolean double float2. Switch能否用string做参数?equals与==

2018-02-10 21:55:40 187

原创 剑指offer-chapter3-面试题17-合并两个排序的链表(java)

题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 例如: 链表1:1->3->5->7 链表2:2->4->6->8 合并后:1->2->3->4->5->6->7->8思路:判断两个参数节点大小,选取小的节点作为头结点,然后再将较小的节点填入同一方法参数, 返回值为头结点的下一节点,形成递归排序。代码:package problem17;

2018-02-04 23:10:40 321

原创 剑指offer-chapter3-面试题16-反转链表(java)

题目:输入一个链表,反转链表后,输出链表的所有元素。 例如 输入链表:1->2->3 反转后: 1<-2<-3思路:通过观察举例可以发现,反转即将该节点的next节点的next节点设置为本身。 即将1的下一个节点2的下一个节点设置为1,首节点设置为null。 注意:这个例子需要额外增加三个节点空间, 1. 反转后首节点 2. 已经排序好的头结点 3. 循环head节点的替代代码:p

2018-02-04 22:53:11 177

原创 剑指offer-chapter3-面试题15-链表中倒数第k个节点(java)

题目:输入一个链表,输出该链表中倒数第k个结点。 例如: 1->2->3->4 倒数第2个节点为3。思路:解法1:先遍历一次链表,获得中节点数n,然后则可计算出倒数第k个节点的位置为(n-k+1)。再遍历一次链表获得该节点。解法2(最优解):设置两个节点,第一个节点先在链表中前进k-1步,然后第2个节点也一起同步前进,当第一个节点到达链尾n时,第2个节点到达倒数第k个节点。(n-(k-1))=

2018-02-04 22:36:42 211

原创 剑指offer-chapter3-面试题14-调整数组顺序使奇数位于偶数前面(java)

题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分, 所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 (相对剑指offer有所修改) 例如: 12345 调整后 13524思路:解法1:判断奇偶,如果是奇数则调至前面,该位置后面的数全都往后挪。时间复杂度O(n²)解法2:判断奇偶,如果是偶数在奇数前面,则替换两者

2018-02-04 22:29:19 176

原创 剑指offer-chapter3-面试题13-在O(1)时间删除链表节点(java)

题目:给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点。 单向链表结构://链表节点定义class ListNode { Integer value; ListNode next; @Override public String toString() { return "ListNode{" +

2018-02-02 22:24:21 213

原创 剑指offer-chapter3-面试题12-打印1到最大的n位数(java)

题目:输入数字n,按顺序打印出1到最大的n位十进制数。比如输入3,则打印1,2,3…999陷阱:考虑int 或long类型溢出必须使用字符模拟加减操作或使用java包解法使用BigInteger等类使用数组进行递归操作 new char[n] char int都行 每一位进行+1打印代码:package problem12;import java.math.BigInteger;/**

2018-02-02 22:21:29 197

原创 剑指offer-chapter3-面试题11-数值的整数次方(java)

题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 不得使用使用Math.pow()方法,不考虑大数问题。知识点:错误处理方式:返回值: 优点 和系统API一致 缺点:不能方便的使用计算结果全局变量: 能够方便的使用计算结果 缺点:用户可能会忘记检查全局变量异常: 可以为不同的出错原因定义不同的异常类型,

2018-02-02 22:18:38 240

原创 剑指offer-chapter2-面试题10-二进制中1的个数(java)

题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 例如: 9的二进制1001 有2位是1,则输出2知识点:1) 与、或、异或的运算规律 与(&) 0&0=0 1&0=0 0&1=0 1&1=1 或(|) 0|0=0 1|0=1 0|1=1 1|1=1 异或(^) 0^0=0

2018-01-31 00:02:08 236

原创 剑指offer-chapter2-面试题9-矩形覆盖(java)

题目:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?思路:当使用一格2*1的小矩形去覆盖的时候,有两种方法: 1) 竖着覆盖,则剩下的面积为 (2*n-1) 则接下来求 (2*n-1)的解决方法 2) 横着覆盖,则剩下的面积为 (2*n-2)+一格必须横着覆盖的区域(已经确定)

2018-01-30 23:44:27 228

原创 剑指offer-chapter2-面试题9-青蛙跳台阶变态版(java)

题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:关于本题,前提是n个台阶会有一次n阶的跳法。分析如下: f(1) = 1 f(2) = f(2-1) + f(2-2) //f(2-2) 表示2阶一次跳2阶的次数。 f(3) = f(3-1) + f(3-2) + f(3-3) … f

2018-01-30 23:36:30 260

原创 剑指offer-chapter2-面试题9-青蛙跳台阶(java)

题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。知识点:菲波那切数列思路:假设青蛙跳上n个台阶,那么他有两种跳法 1. 跳一格 剩余 n-1格 2. 跳两格 剩余 n-2格 则剩下的问题变成解决 n-1 格和n-2格台阶有多少种跳法 当n=2时,则跳法有2种 一格一格的条或两格一起跳 当n=1时,则有跳法1种 当

2018-01-30 23:30:57 344

原创 剑指offer-chapter2-面试题9-斐波那契数列(java)

题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。(n<=39)知识点:菲波那切数列、递归、循环菲波那切数列: |- 0 n=0 f(n)= | 1 n=1 |- f(n-1)+f(n-2) n>2递归:优点: 简洁缺点:

2018-01-30 23:23:01 342

原创 剑指offer-chapter2-面试题8-旋转数组的最小数字(java)

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。分析&解法:解法1:首先可以使用遍历的方法找出其中最小数字,但是由于该时间复杂度为O(n),不是最优解法。解法2:虽然

2018-01-30 14:49:16 231 1

原创 剑指offer-chapter2-面试题7-用两个栈实现队列(java)

题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解决思路:由于有两个栈,故我们可以用一个栈来实现push操作,然后当pop的时候再将该栈的值倒入栈2,则可以实现队列操作。代码package problem7;import java.util.Stack;/** * Created by fengyuwusong on 2018/1/29 14:55. *

2018-01-30 14:24:11 251

原创 剑指offer-chapter2-面试题6-重建二叉树(java)

题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。用到的知识点:前序遍历:根左右 中序遍历:左根右 后序遍历:左右根 例如一颗树: 10 / \

2018-01-29 14:50:00 185

原创 剑指offer-chapter2-面试题5-从尾到头打印链表(java)

题目:输入一个链表,从尾到头打印链表每个节点的值。 链表结构:class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}解法:对于java来说,有多种工具可以用 1. 使用Collections的reverse 2. 巧用add方法(

2018-01-29 13:59:26 281

原创 python爬虫爬取拉勾网职业信息

先放成果招聘关键字词云 公司关键字词云 代码git地址:https://github.com/fengyuwusong/lagou-scrapy目标抓取拉钩关于java工程师的招聘信息并制作成词云图。研究目标网站打开拉钩网可以发现目标url为:https://www.lagou.com/zhaopin/Java/2/?filterOption=2 ,这通过

2018-01-21 14:36:11 7420

原创 error: Microsoft Visual C++ 14.0 is required. pip安装错误...

错误重现:使用pip install mysql-python 安装 mysql包时出现错误: 提示错误: error: Microsoft Visual C++ 14.0 is required解决方法:通过提示我们可以得知是由于c++依赖库不存在,所以在对包进行编译的时候出错,故我们可以去直接下载二进制安装包进行安装。下载地址:https://www.l

2018-01-17 23:40:34 26488

原创 剑指offer-chapter2-面试题4-替换空格(java)

题目: 替换空格请实现一个函数,吧字符串中的每个空格替换成 “%20”。例如输入 “We are happy.” , 这输出“We%20arehappy.”。(不使用replace&insert方法和必须在原串中改变)解题思路:解法1:思路: 复杂度O(n²),遍历所有字符并添加后移动后面的字符串(不推荐)。如字符串“We are happy.”:初始化: W

2018-01-17 21:22:58 223

原创 剑指offer-chapter2-面试题3-二维数组的查找(java)

题目: 二维数组的查找:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如有一符合条件的二维数组:128924912471013681115需要在此数组中查找 7难点&关键点:选取好在数组中与目标数做比较的数的位置。如选取中间位置&右上&左下位置

2018-01-16 14:49:45 213

原创 剑指offer-chapter2-面试题2-单例模式(java)

题目:设计一个类,我们只能生成该类的一个实例。解法如下:package problem2;/** * 问题:设计一个类,我们只能生成该类的一个实例。 * Created by fengyuwusong on 2018/1/15 15:04. *//** * 懒汉式加载 * 只适合单线程环境(不好) * 注解:Singleton的静态属性instance中,只有instance为null的

2018-01-15 22:51:23 699 1

原创 scrapy爬取豆瓣电影列表

目标环境:python 3.6 scrapy 1.5.0准备:安装scrapy ,参考:http://blog.csdn.net/yctjin/article/details/70658811 检查是否安装成功 ,在命令行输入:scrapy -version 如图所示则安装成功~开始新建项目在准备好的文件夹打开命令行,分别输入 scrapy startproject doubanMovi

2018-01-15 13:02:52 3974

原创 爬虫准备—logging模块的使用

为什么使用logging模块?为什么我们要使用logging模块来代替print函数记录日志呢?因为使用模块可以更好的管理我们的日志,并且可以将标准输入输出保存到日志文件,而且利用logging模块可以部分代替debug的功能,给程序排错。简述logging模块默认情况分为6个级别: NOTSET : 0 DEBUG : 10 INFO:20 WARNING : 30 ERROR :

2018-01-14 17:33:04 1869

原创 idea常用快捷键记录

跳转 说明 快捷键 在两个项目之间切换 下一个项目 Ctrl + Alt + ] 上一个项目 Ctrl + Alt + [ 打开最近打开过的文件 Ctrl + E 打开最近修改过的文件 Ctrl + Shift + E 新建、删除 书签 F11 新建、删除 带编号的书签 Ctrl + F11

2018-01-12 11:50:22 340

原创 设计模式(3) 代理模式 动态代理

根据上一个文章可轻松实现代理功能,但是这样做的代价是会生成许多的XxxProxy类,怎样才能消除掉这些类呢?这时我们可以使用JDK的动态代理。使用JDK提供的动态代理方案 编写一个事务CarTimeHandler类 实现计时功能 、实现InvocationHandler接口package cn.niriqiang.proxy;import java.lang.reflect.Invocati

2017-08-20 00:06:20 185

原创 设计模式(2) 代理模式 静态代理

需求:设计一个车类,具有方法run,现需要设计一个方案计算它的前后行驶时间。一般来说该类可以这样写public class car{ long start,end; private void before(){ start=System.currentTimeMillis(); System.out.println("开车前时间:"+start);

2017-08-19 15:32:01 185

原创 smartUpload 上传时 java.lang.NullPointerException: charsetName异常

smartUpload 上传时 java.lang.NullPointerException: charsetName异常

2017-08-04 13:23:42 2812

原创 设计模式(1) 策略模式

策略模式:策略模式定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。

2017-07-29 13:01:58 221

原创 java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream 异常解决方法

编写上传代码时,遇到java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream异常,百度了好一会,发现原因是假如使用commons-fileupload的版本大于1.0的话则必须引入commons-io.jarmaven示例 <dependency>

2017-07-28 23:13:55 12230 3

原创 java.sql.SQLException: Generated keys not requested. You need to ... 错误

java.sql.SQLException: Generated keys not requested. You need to ... 错误

2017-07-20 18:00:42 880

原创 jdbc连接数据库 The server time zone value '�й���׼ʱ��' is unrecognized or represents more... 错误

jdbc连接数据库 The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more… 错误

2017-07-19 21:24:27 5776

空空如也

空空如也

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

TA关注的人

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