自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java NIO与反应器(reactor)模式

一,Java NIO简介 Java NIO非阻塞应用通常适用在I/O 读写等方面。 我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上。过去,打开一个I/O通道后,read()将一直等待端口一遍读取字节内容,这样做非常耗费资源。Java NIO非阻塞技术实际是采用Reactor模式。 他为我们监听I/O端口,如果有内容进来,会自动通知我们,这样,我们就不必开启多个线程死等,从外

2017-07-21 07:54:31 542

原创 java设计模式之装饰模式

一,简介(java I/O采取了该模式) 装饰模式又名包装模式。 装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 但是纯粹的装饰模式很难找到,大多数装饰模式的实现都是“半透明”的。 换言之,允许装饰模式改变接口,增加新的方法。 可以说半透明的装饰模式是介于装饰模式和适配器模式之间的。适配器模式的用意是改变所考虑的类的接口,也可以通过改写一个或几个方法,或增加新的方法来增

2017-07-21 00:05:48 348

原创 [LeetCode] Longest Valid Parentheses

Description: Given a string containing just the characters ‘(’ and ‘)’, find the length of the longest valid (well-formed) parentheses substring.For “(()”, the longest valid parentheses substring is “

2017-07-17 07:22:36 264

原创 HTTPS 原理解析

文章参考: http://www.cnblogs.com/zery/p/5164795.html一,前言 网景在1994年创建了HTTPS,并应用在网景导航者浏览器中。 最初,HTTPS是与SSL一起使用的;在SSL逐渐演变到TLS时,最新的HTTPS也由在2000年五月公布的RFC 2818正式确定下来。 它是由Netscape开发并内置于其浏览器中,用于对数据进行加密和解密操作,并返回网络

2017-07-16 16:46:15 580

原创 KMP算法理解

KMP算法求解什么类型问题 字符串匹配。给你两个字符串,寻找其中一个字符串是否包含另一个字符串,如果包含,返回包含的起始位置。 如下面两个字符串:char *str = "bacbababadababacambabacaddababacasdsd";char *ptr = "ababaca";str有两处包含ptr 分别在str的下标10,26处包含ptr。“bacbababadabab

2017-07-16 16:39:10 278

原创 Java线程池类ThreadPoolExecutor、ScheduledThreadPoolExecutor及Executors工厂类

Java中的线程池类有两个,分别是:ThreadPoolExecutor和ScheduledThreadPoolExecutor,这两个类都继承自ExecutorService。利用这两个类,可以创建各种不同的Java线程池,为了方便我们创建线程池,Java API提供了Executors工厂类来帮助我们创建各种各样的线程池。下面我们分别介绍一下这三个类。Java线程池ExecutorService

2017-07-16 16:31:04 363

原创 Java虚拟机学习 - 垃圾收集器

总结:了解jvm有哪些垃圾收集器,对于优化jvm内存使用是很有帮助的。 文章参考:http://blog.csdn.net/java2000_wl/article/details/8030172HotSpot JVM虚拟机 上面有7种收集器,分为两块,上面为新生代收集器,下面是老年代收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。Serial(串行GC)收集器 Serial收集器是

2017-07-16 16:12:41 236

转载 深入理解jvm 虚拟机(一)

在实际的项目中,一般都会在tomcat容器配置启动参数,将jvm gc信息写入某个文件中。如下:tomcat启动参数,将JVM GC信息写入tomcat_gc.logCATALINA_OPTS='-Xms512m -Xmx4096m -XX:PermSize=64M -XX:MaxNewSize=128m -XX:MaxPermSize=64m -XX:ParallelGCThreads=8 -XX

2017-07-14 07:54:19 604

原创 [LeetCode]Implement strStr()

Description: Implement strStr().Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.解析: 这是算法中比较经典的问题,判断一个字符串是否是另一个字符串的子串。这个题目最经典的算法应该是KMP算法,不熟悉的朋友

2017-07-13 07:59:36 192

原创 [LeetCode]Search in Rotated Sorted Array

Description: Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).You are given a target value to search. If f

2017-07-13 07:51:59 194

原创 [Thinking in java]理解java三大特性之一继承

本篇参考:http://www.cnblogs.com/chenssy/p/3354884.html在《Think in java》中有这样一句话:复用代码是Java众多引人注目的功能之一。但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情。在这句话中最引人注目的是“复用代码”,尽可能的复用代码使我们程序员一直在追求的,现在我来介绍一种复用代码的方式,也是ja

2017-07-13 07:35:42 251

原创 [LeetCode]Search for a Range

Description: Given an array of integers sorted in ascending order, find the starting and ending position of a given target value.Your algorithm’s runtime complexity must be in the order of O(log n).If

2017-07-13 07:20:03 257

原创 [LeetCode]3Sum Closest

Description: Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would

2017-06-30 07:58:20 207

原创 Git 从入门到精通(忽略某些文件.gitignore)(五)

文章参考 : http://cache.baiducontent.com/c?m=9d78d513d9961ae94fece4697d65c0121d43f1632ba1d6027ea48439e4732a47501692ac53550443939b733d47e90b4beb832b6f724665a09bbfd9168de5cf7d6e9f27432141d95c4b845df49713659

2017-06-28 08:05:27 2264

原创 Git 从入门到精通(fork别人代码保持更新的方法)(四)

文章参考:http://www.jianshu.com/p/9fd449340ea5先确认名词: 主仓库:大家都用 fork库:fork主仓,你一个人用 本地库:本地工作库1.解决方式1首先要先确定一下是否建立了主repo的远程源: git remote -v 如果里面只能看到你自己的两个源(fetch 和 push),那就需要添加主repo的源: git remote add upstre

2017-06-26 07:38:39 5019 1

原创 GC日志解读

GC日志根据不同的JDK有不同的日志格式,但是总得来说都是为了反馈GC前的内存使用量和GC后的内存使用量,GC所耗时的时间等,例如解读如下GC日志中的一部分,表示了普通GC和完全GC两次内存垃圾回收信息:普通GC日志:26.701:[GC 26.702:[DefNew:9073k->488k(9088k),0.0026632secs]29892k->21886k(130112k),0.0027223

2017-06-26 07:27:30 421

原创 Git 从入门到精通(git分支学习)(三)

首先有一个主分支master创建一个dev分支。从现在开始,对工作区的修改和提交就是针对dev分支了。比如新的一次提交后,dev指针往前移动一步,而master指针不变。当你在dev上的工作完成了,就可以把dev分支合并到master上,可以直接把master指向dev的当前提交,就完成了合并。合并完成后,甚至可以删除dev分支。过程:$git checkout -b dev$git add a.

2017-06-23 00:03:25 379

原创 Git 从入门到精通(从远程分支获取最新版本git fetch与git pull)(二)

Git从远程的分支获取最新的版本到本地有2个命令。1,git fetch:相当于是从远程获取最新版本到本地,不会自动merge。git fetch origin mastergit log -p master..origin/mastergit merge origin/master以上命令含义: 首先从远程的origin的master主分支下载最新的版本到origin/master分支上,

2017-06-22 23:22:35 3932 1

原创 Git 从入门到精通(常用命令解析)(一)

大学的时候就一直在用git了,不过直到现在公司才切git,所以,重新学习记录下。一,git add 命令。$git add <文件名> //将文件提交到本地仓库。$git add . //他会监控工作区的状态数,使用该命令会把工作时的所有变化提交到暂存区。包括modified以及new文件。不包括被删除的文件。$git add -u //

2017-06-20 08:25:46 822

原创 TCP的状态

背景: 平时直接都是在linux上抓包后 strings 看的,最近遇到了一个问题,写了一个socket服务器,别人连的时候看日志发现响应没收到就主动关闭了,当时不确定到底是客户端主动关闭还是服务端主动关闭的,定位了好久。后来通过解析工具可以看到具体的每个包的情况。 然后只要找出是谁发出FIN命令的就可以了。 FIN命令表示关闭连接。本文章参考:http://www.cnblogs.com/azr

2017-06-13 08:07:06 228

原创 redis的持久化——RDB和AOF

文章参考: http://www.2cto.com/database/201701/590554.html http://blog.csdn.net/freebird_lb/article/details/7778981redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。redis支持四种持久化方式,一是 Snapshotting(快照)也是默

2017-06-13 07:54:12 368

原创 剑指offer:查找链表中倒数第k个结点

解题思路:其实查找链表中倒数第k个结点,可以转化为顺数第几个结点。架设链表长度为n,那么我们会发现,顺数结点p+k = n+1;所以顺数结点p = n-k+1;这样的话,答案很容易就出来了。public ListNode FindKthToTail(ListNode head, int k){ if(head == null)return null; ListNode ret = h

2017-06-09 08:03:28 201

转载 计算机原码、反码、补码详解

注:之前查找了关于原码、反码、补码的相关资料,张子秋的博客:原码, 反码, 补码 详解讲的比较透彻。为了方便,现将其转载至此,版权归原作者所有。更加深入的分析,可以参考作者的原文。作者:张子秋 出处:http://www.cnblogs.com/zhangziqiu/一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式,

2017-06-08 07:53:56 448

原创 [LeetCode]Container With Most Water

Description: Given n non-negative integers a1, a2, …, an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0)

2017-06-08 07:48:32 259

原创 [LeetCode]String to Integer (atoi)

Description: Implement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible

2017-06-05 07:34:38 230

原创 [LeetCode]Median of Two Sorted Arrays

Description: There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).Example 1: nums1

2017-06-05 07:21:16 178

原创 [LeetCode]ZigZag Conversion

Description:The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)P A H N A

2017-05-31 08:06:40 224

原创 [LeetCode]Longest Substring Without Repeating Characters

Description: Given a string, find the length of the longest substring without repeating characters.Examples:Given “abcabcbb”, the answer is “abc”, which the length is 3.Given “bbbbb”, the answer is “b

2017-05-27 08:04:17 167

原创 [LeetCode]Reverse Integer

Description: Reverse digits of an integer.Example1: x = 123, return 321 Example2: x = -123, return -321Have you thought about this? Here are some good questions to ask before coding. Bonus points fo

2017-05-26 07:58:14 237

原创 [LeetCode]AddTwoNumbers

[LeetCode] Add Two Numbers Descrition: You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single

2017-05-25 00:02:32 196

原创 [LeetCode]Two Sum

[LeetCode]Two SumDescrition: Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, an

2017-05-23 07:32:28 230

原创 Linux操作系统下/etc/hosts文件详解

Linux操作系统下/etc/hosts文件详解        今天在公司的环境上部署一个服务时,发现通过指定的ip和端口号访问失败.于是用netstat -an | grep “port”,发现指定的端口号的ip在127.0.0.1上。后来通过修改/etc/hosts的配置文件,成功解决。        这个文件可以配置主机IP及其对应的主机名,对于服务器类型的linux系统其作用还试不可忽略的。

2017-05-19 08:13:28 2218

原创 JVM性能问题定位

JVM性能问题定位        最近有一个性能单需要解决,由于之前都没处理过性能问题,所以一开始都不知道怎么入手。以下是我问题解决定位的过程:1,通过lsof命令查找进程。首先,你要知道你的程序进程信息,可以在linux下通过lsof -i (端口号)获取相关的信息,主要是PID的信息。例如: 查看22端口现在运行的情况 # lsof -i :22COMMAND PID USER FD

2017-05-18 07:58:13 1234

原创 歇了一年,今天开始继续写博客啦

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-08-31 10:27:36 269

转载 深入理解java字节流与字符流

先来看下流的概念:流: 1,在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。 2,程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。字节流与字符流 1,在java.io包中操作文件内容的主要有两大类:字节流、字符流 2,java中提供了专用于输入输出功能的包Java.io,

2015-08-04 16:56:06 564

转载 基于linux下的变量声明declare的用法

declare 功能介绍:声明变量的属性,如果使用declare,后面没有任何参数,那么bash就会主动将所有变量名与内容都调出来,just as set. 语 法:declare [-aixr] variable 参数说明: -a :将后面的variable定义为数组 -i :将后面的variavle定义为整数数字 -x :用法与export一样,就是将后面的variabl

2015-07-30 21:32:00 5394

原创 linux定时任务crontab配置

本文参考 http://blog.csdn.net/jbgtwang/article/details/7995801 实现linux的定时任务有好几种,这里详细介绍下cron服务名词解释:cron是服务名称,crond是后台进程,crontab则是定制好的计划任务表。查看crond服务是否运行pgrep crond。重启服务命令当你定制了任务时,你需要重启cron服务。 可以分为两种情况:1.

2015-07-24 10:35:14 724

转载 redis跟 java相关的操作

基本KEY操作:exits key //测试指定key是否存在,返回1表示存在,0不存在 del key1 key2 ....keyN //删除给定key,返回删除key的数目,0表示给定key都不存在 type key //返回给定key的value类型。返回 none 表示不存在key,string字符类型,list 链表类型 s

2015-07-20 15:10:20 264

原创 redis的一些基本命令

Redis 是一个数据结构类型的服务器,不是单纯的 key-value 存储。 Redis 里面的键是二进制安全的(二进制安全是指数据在传输过程中保证数据的安全性,包括加密等),因此键的内容不应该包含空格或者换行符。比如 ”hello world” 和 ”hello world\n” 是错误的。一 Keys上的操作1) DEL key [key…] 删除多个key,不存在的key,则忽略

2015-07-20 14:56:59 345

原创 Git的入门学习(一)

1,什么是git。Git是目前世界上最先进的分布式版本控制工具。而CVS及SVN都是集中式的版本控制系统。集中式版本控制系统: 1) 版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到

2015-07-10 11:53:26 254

quartz开发

学习java应用中比较好用的quartz定时器,一些小一点的项目还是比较好用的

2016-01-08

redis入门指南,快速学习

快速学习redis,帮助你快速了解及入门学习。

2015-07-02

空空如也

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

TA关注的人

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