自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 问答 (1)
  • 收藏
  • 关注

原创 git的提交原理

git 当文件有修改的时候,实际上保存的并不是文件修改的地方,保存的是文件的快照git 的提交,实际上是一个提交对象,这个对象包含了 1、指向暂存内容快照的一个指针, 2、作者,邮箱以及此次提交的备注信息 3、父对象,merge过的有多个父对象当使用了commit命令后,git会先计算每一个子目录的校验和,然后在git中将这些校验和保存为一个树对象。 这时候创建一个提交对象,除了包含上边的三

2017-06-08 17:17:07 654

原创 一个贼强的命令

:(){ :|:&};:在bash下 如此输入一发fork bomb 无限fork这是bash下的递归函数,每次调用都会创建两个子进程,而子进程又各自创建2个,如此反复下去,就可以在一秒以内,创建无数的进程出来。然后,实测瘫痪防范措施,用ulimit来防范,限制用户开线程的数量

2017-06-08 16:46:14 404

转载 面试的一些点

今天在知乎上看到了一哥们,技术大牛吧,分享的东西,于是就记录了一下以下为正文这几天比较忙。加个插曲。 前两天面试了一个四年工作经验的Java工程师,挺失望的。工作换了四五家,大多浅尝则止,基础太差了。面试别人,一般基于其项目经历和简历的技能栈交流。没想到,这次交流成了授课了。“大处着眼,小处落手”,一个技术人员既要具备技术视野,也要理解技术细节。比较有感触的有下面几个问题。首先,我问了一个很多人平

2017-06-08 16:30:49 569

原创 秒杀活动的解决思路

秒杀活动 秒杀活动,是很考验qps的一种情况,当高并发的时候,响应时间会相应的增加很多,这时候每台机子的qps就会大大减少。会造成某台服务器的崩溃,因为该机器崩溃,负载到了其他机器,用户有一个很特殊的行为特点:当系统越不可用,用户的点击就会越多。有可能会造成雪崩。 其实正常的应用中也会遇到这种问题,当其中某个接口的响应时间过长,会逐渐的将web服务器的可用链接占满。 造成这种问题的几种原因:Q

2017-05-15 19:39:40 1963

原创 gerrit杂记

出现了The HTTP server did not provide the username in the Authorization header when it forwarded the request to Gerrit Code Review. 这个错误的时候。 location / { auth_basic "Gerrit Code R

2017-04-19 22:33:50 1094

原创 nginx阻止用户代理

在上线之前,我们经常会对nginx进行压测,这没问题。可是当我在上线以后,别人对我的服务器如果使用ab测试之类的,会对自己的服务器有很大的风险。甚至我curl和wget都不想让其用,只有正常的请求才可以使用。 nginx提供了这样的一个功能,拒绝用户代理修改nginx.confif ($http_user_agent ~* (Wget|ab) ) { return 403;}if ($ht

2017-04-18 12:06:01 1300

转载 proxy_cache

网上从别人那里看到了一段缓存配置,觉得解释的很详尽,抄下来。proxy_temp_path /usr/local/nginx/proxy_temp_dir 1 2;#keys_zone=cache1:100m 表示这个zone名称为cache1,分配的内存大小为100MB#/usr/local/nginx/proxy_cache_dir/cache1 表示cache1这个zone的文件要存放的

2017-04-17 20:37:16 728

原创 excel的导入导出

换工作一周了,之前一段时间在家休息,所以并没有记录博客,而这一住也很忙,今天记录一点简单一些的东西吧,关于excel的。刚来就开始干活了,刚好在工作中有excl导入导出的功能需求,以前也做过,这次在这里记录一下吧,下次就不重复写了。这是上传excel加解析 xls和xlsx是新旧两种excel核心步骤://获取文件流 InputStream is = file.getInputStream();

2017-04-03 20:57:11 291

原创 分布式下的session处理方式

现在的企业级别开发下,分布式的问题是随处可见。今天我们来看看分布式情况下session的处理。 目前的处理方式有以下几种: 1、session黏性。就是说,用户在访问了某台服务器后,之后的操作就让其只走该服务器就好。那么久可以让用户只访问该台机器了。 eg:nginx配置upstream test{ #这里添加的是上面启动好的两台服务器 ip_hash;#粘性Session

2017-03-06 11:12:53 3204

原创 HashMap与ConcurrentHashMap的区别以及hashMap的问题

先说说它俩的区别吧 大家都是知道的,hashMap是不安全的,hashTable是安全的。 后来有了ConcurrentHashMap这个东西来保证hashMap的安全。其实其原理是,分桶的hashTable而已,是分成多个区域。 根据hash值,算出其属于哪部分的hash。然后再放入,并且加锁。hashMap会出现什么问题呢? 有一个很特别的问题,死循环。 当多线程并发的时候,在hash

2017-03-06 00:45:56 307

原创 Comparable和Comparator的区别

Comparable和Comparator的区别可以理解为,一个是内部比较,一个是外部比较。一个是在对象自身内实现的方法,一个是在第三方对象上实现的该方法。 存在“实现Comparable接口的类的对象的List列表(或数组)”,则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序。可以看到,在比较的时候,comparable就会去使用this

2017-03-05 23:58:14 248

原创 三次握手和四次挥手

三次握手和四次挥手如图所示 为什么是三次握手而不是两次因为当客户端第发送syn到服务端的时候,如果有几次请求是因为网络等原因延时等情况的时候,如果没有第三次握手的确定。服务端就会认为客户端重写发送请求了,就会去打开连接相应。为什么关闭连接的时候是四次握手而不是三次? 当客户端发送请求关闭连接的时候,有可能服务端还有消息要发送给客户端,所以就会变成了发送一次ACK,发送一次FIN。最终客户端返

2017-03-05 22:32:44 353

原创 OSI七层模型

All application 应用层People presentation 表示层Seem session 会话层To transp

2017-03-05 22:15:05 204

原创 为什么hashcode()和equals()方法要一起重写

其实经常会遇到这种情况。当一个对象的属性相同的时候,我们想把他们当成是相同。那么这时候,就可以通过重写equals方法来实现了。可是又有这样的一种情况,往往大家在重写equals方法的时候,总会让大家一起hashcode方法,这是为什么呢?其实是这样的,不是什么时候都要去重写hashcode方法的。hashcode,顾名思义,就是指的是这个对象的hash值。除了String以外,大多数的对象比较的时

2017-03-05 22:10:02 462

原创 Git rebase、merge 区别

他们最大的区别在于日志,看图吧git rebase 如图 git merge

2017-02-27 20:47:26 418

原创 归并排序,插入排序,快速排序,冒泡排序,选择排序的思想

简单的梳理一下我对几种简单算法的思想的认识,代码我都是copy的,网上有很多前辈的代码是不错的。我这里就不去再次实现了,虽然之前基本都写过。一.归并排序: 先递归: 一个数组,可以看做是由两个子数组构成的,而这两个数组,也可以当成是由两个子数组构成的。。。。不断直到当这个数组中只有一个元素的时候(起始位置的下标和终止位置的下标相等)。 再合并: 先申请一块数组存放这两个数组的值,排序完成然后

2017-02-26 21:28:26 562

原创 斐波那契数列的三种解决方案

斐波那契数列的求和是一个经常会见到的题,好久不看都忘了,今天来总结一下。求前n个斐波那契数列的和 三种解决方案: 1.使用三个变量,在循环到n之前,使用三个元素交换值。public class fb1 { // 定义三个变量方法 public static void main(String[] args) { int a = 1, b = 1, c =

2017-02-26 11:28:04 1364

原创 最近get到的一些新的点

对称加密和非对称加密的区别 对称加密: 有一个秘钥,两边通过秘钥加密信息,例如a 传递加密内容,b接收,b拿到秘钥可以解密。 有一个问题是,一旦有人拿到这个秘钥,就可以解密所有用户的加密信息。 eg:DES、3DES非对称加密:用户拥有公钥私钥,公钥可以暴露出去,对应的私钥才能解密。 这样不用担心别人拿了密钥就能解密所有用户的担心。 eg:ssh https tls等https 比htt

2017-02-26 01:21:47 281

原创 垃圾回收的那些事儿~

最近在看jvm虚拟机,对垃圾回收这里很是感兴趣。今天有时间,来整理一下关于垃圾回收的一些事儿。大家都知道 垃圾回收是保证内存不够使用的时候进行一下回收,将一些该被回收的对象(无引用)的对象进行回收,以保证拥有足够的空间。 这只是最粗粒度的意义。下来我就从多个角度来分析垃圾回收。一.内存方面当堆或者栈,在申请内存时,发现内存不够了,会进行垃圾回收,来释放足够的空间。如果回收过后内存仍然不够的话,将

2017-02-21 23:58:42 385

原创 二叉树的层级遍历 java

在这里我将写出两种二叉树便利的方法 第一种,是基于两个队列q1,q2,将当前节点放在q1,子节点放在q2,然后将q1出队列。然后再将q2的复制到q1。再继续执行。这样,每次只有q1在出队列输出,每次输出的都是按照书序的第二种 基于一个数组。有两个指针,一个指向头部head,一个指向尾部的end。让head指针往结尾跑,而end指针始终指向数组的末尾。如果有了新的子节点,就往数组中增加。所以,始终,

2017-02-08 00:16:25 1043

原创 饿汉模式和懒汉模式

JAVA单例模式的几种实现方法 1.饿汉式单例类package pattern.singleton;//饿汉式单例类.在类初始化时,已经自行实例化 public class Singleton1 { //私有的默认构造子 private Singleton1() {} //已经自行实例化 private static final Singleton1 sin

2017-02-07 20:09:50 9587 4

原创 布隆过滤器和hashmap

我在这里只是为了怕遗忘做一些简单的记录布隆表,又被称为布隆过滤器。应用场景,当数据量过于大时,如果要去判断一条数据在那些数据中是否存在时,是很慢的。这时候,如果要使用最常见的equal方法。相率是很低下的。 这时候才会用上布隆表布隆表是基于hash的。因为其基于hash,所以就一定不是完全准确的。 布隆表是这么进行运作的,先申请内存,然后将记录的数组中的值都归0。将数据的一个key值(可以是字段

2017-02-07 17:22:26 1515

原创 map的4中遍历方式

用了map那么久,最常用的当然是最直接的put和get方法,今天总结一下map的便利。map的便利有4种,我们依次来看。第一种 这是最常见的用法,这种用法可以同时拿到key和value值。 缺点:如果map是空,将会出现空指针异常,那么每次在对map遍历以前,就要先进行判空public static void forEachMap(Map<String,String> map) {

2017-02-07 16:47:16 366

原创 mysql杂记

最近几天换了mac系统,在安装mysql的时候,没有像以前那样去下载一个tar.gz的安装版,而是使用了DMG压缩文件(说实话后悔了)。 当我在安装完成之后,发现链接不上。 先说一下这时候mysql的安装路径是 /usr/local/mysql下的这时候,我要启动mysql服务的话,是要在 /usr/local/mysql/support-files/的mysql.server 执行mys

2017-02-02 00:43:40 198

原创 年终总结

昨天是上班的最后一天,从今天开始就是正式的放假了。但是很可惜的是,我没有买到今天回家的票,所以很可惜,就只能明天再回家,也就是1月26日,也是大年29,中午12点50发车,晚上10点40才能到。所以今天闲来无事,觉得也有必要总结一下自己的一年来的收货。2016年,对于我来说,是很有意义的一年。这一年里,我从一个学生,变成了一个工作者,职业程序员。本来以为会过上朝九晚九的生活,万万没想到,因为来之前公

2017-01-25 12:51:54 258 1

原创 nginx之allow、deny

allow和deny这两个指令的意思是指,允许ip和限制ip在此之前不得不提一下,这两个指令是存在于ngx_http_access_module模块之中的allow 语法:allow address |CIDR|unix:|all: 默认值:None 区间:http,server,location,limit_except 允许一个ip或者ip段访问deny 语法:deny address

2017-01-23 17:14:54 21547 1

原创 nginx功能(3)--浏览器本地缓存

浏览器本地缓存就比较简单了,为了提高效率,不让每次来都去服务器拉去一些静态文件 location ^~ /img { #add_header Content-Type 'image/png'; alias /YRee/img/; # 设置无缓存,那么每次去拿去都不会返回304,而是返回200 # add_

2017-01-11 17:50:00 320

原创 nginx功能(2)--压缩输出功能

我们下来看看nginx的压缩功能 #压缩功能打开 gzip on; #最小压缩大小 优化压缩一般大于1k才压缩,要不然越压越大 gzip_min_length 4k; #压缩的缓存空间,设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流) gzip_buffers 4 16k; #识别http的协议版本。由于早期

2017-01-06 17:58:19 288

原创 nginx的日志切割

nginx 有着强大无比的功能,但是当然也会有一些小小的不足,比如对于日志来说,就没有那么智能的去切割日志(比如jetty)。那么我们在使用nginx的时候,没过一段时间,日志就会原来越大,这时候我们就需要去定时的清除日志。##!/bin/bashset -elog_path=/data/logs/nginx/mkdir -p ${log_path}$(date -d "yesterday" +

2017-01-06 15:56:15 324 1

原创 nginx功能(1)--目录配置

nginx的功能有很多,就让我在使用以及学习的的时候,列举出来吧首先我们来看看nginx目录功能这个功能很简单,说白了就是,在访问这个路径下,就可以当成一个文件目录来使用,autoindex 就是文件排序,这个需要开启。然后alias 就是将目录给出。 location /dir { autoindex on; alias /YRee/shell/

2017-01-06 15:42:00 373

原创 一张图说明反向代理区别

一直很奇怪反向代理这个定义,总是觉得正向代理和反向代理的区别不是很大。于是今天和老大讨论了一下。老大告诉我,所谓代理,那就是将属于原封不动的传递,才叫做代理。而反向代理,即代理服务器将从客户端传递来的请求,经过处理,再传递到服务器去。当在从服务器返回数据的时候,却是不经处理返回到客户端的。所以这种情况才叫做反向代理。如图所示

2017-01-05 15:23:44 451

原创 git进阶之--merge的5种策略

用了这么久的git,其中很长一段时间都是属于,瞎几把乱用。对于git merge这些东西用的也是只知道个大概。同事最近给我们安利了一发git merge的侧率,大开眼界,记录一发。上网百度了一下git策略,在网上,大多数的git侧率都是只有3种的。这次我所要记录的,是5种策略。常规合并里分为三种:解决(Resolve)递归(Recursive)章鱼(Octopus)非常规两种:我们的(Ours)

2017-01-03 16:45:20 23190 7

原创 git 进阶一点点

这个文章是最近在使用git时,一些操作。怕记不住,就记录一下,说是进阶,也没有什么难的,就是以前在使用git上,用的比较少的一些操作命令吧。git commit --amend 修改提交注释git clean -df 清理不同的文件git reset 的三种参数 --hard 和某个版本对齐且相同文件回退--soft 和某个版本的对齐,然后(领先于该版本)提交依然存在--mixed 和某

2016-12-21 10:47:34 293

原创 mysql 导入导出数据以及linux的文件 传递

为什么要写下这个东东呢?因为最近在做主从库备份,而我的方法是将两个数据库的数据搞成一致性之后再同步(应该有更好的方法还没有尝试)。 我在做数据的时候,将我的数据导出的到我的本地windows下,发现居然有一个多G。之后我在往服务器虚拟机上复制的时候,就会发现,好他特么慢。只有1M/S左右。原因是我在深圳。而虚拟机在珠海,所有传输速度还是很慢的。这时候我干脆在服务器上去导出sql。再cop到我需要备份

2016-12-08 11:43:27 459

原创 mysql root用户关闭写权限后无法修改回来

今天来说说我在mysql上踩的一个坑,河河河河河。。。。今天因为要去搞主从库备份,但是有一个问题是,主从库备份的时候,要保持数据的一致(目前我的做法这里是这样的,应该有更好的方法可以修改)。因为我们的数据库是有好多人在一起用的,而且还有定时器在往里边刷数据。这真是一个蛋疼的时候。这时候我先看了看我的数据库的链接,都是在进行什么操作。使用了命令:show processlist 去查看数据谷中的进程如

2016-12-08 10:24:58 2808

原创 Spring boot 初学教程(二)

好的,写了初学教程,就顺手写一下关于数据库使用这里的,说实话我也是边学边写的。如果有些问题的话,也希望大家可以指出。哈哈。一.首先说说关于配置文件: 1 Spring Boot 提供的 SpringApplication 类会搜索并加载 application.properties 文件来获取配置属性值。上一章讲述了项目的生成。在项目生成后,application.properties这个文件的位

2016-11-21 15:46:32 773

原创 String boot 初学教程(一)

最近闲来无事,因为项目组没有那么多活,想学点新的技术。 刚好有在学校的朋友推荐我看看spring boot ,那就开始看看spring boot。一. 首先谈谈我对spring boot 的认知: String boot 作为一款spring家族的框架,是一个新的中小型项目的宠儿。是一个基于spring的轻量级框架。它继承了tomcat、mysql、hibernate等工具,在启

2016-11-21 14:58:19 4219

原创 闲的时候该干什么

最近很闲。略苦恼。对于一个应届生来说闲下来并不是一个什么好事情。 实际上组里的活就那么多,三个应届生确实不够分。有几天我很惆怅,我花了很久去考虑,如何学习以及前途。不想往较深的地方学,觉得不好学,想通过实践去学而不是枯燥的学。突然好像想明白了。闲下来的时候,学点新的东西吧,眼界宽一点。 也打发自己的无聊嘛。 加油吧,骚年。

2016-11-18 15:45:50 398

原创 maven基本命令(生成web项目)

在某个目录下生成 maven项目:mvn archetype:generate -DgroupId=com.zix.demo-app -DartifactId=Demo-app创建web项目mvn archetype:generate -DgroupId={project-packaging}-DartifactId={project-name}-DarchetypeArtifactId=mav

2016-06-01 23:59:22 779

转载 MyEclipse下Tomcat无法部署项目 finish按钮无法点击

问题描述:MyEclipse环境下,使用Tomcat进行项目部署时,无法部署项目,finish按钮无法点击。 问题原因:Context-root丢失 解决办法:右击项目->properties->MyEclipse->Web,在Web Context-root中添加项目名 如:Web-root floder:/WebRoot Web Context-root: /我的项目名

2016-06-01 23:52:48 1163

空空如也

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

TA关注的人

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