自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

内方外圆

静心修行

  • 博客(178)
  • 资源 (6)
  • 收藏
  • 关注

原创 盘点一下架构师主流的画图工具(附地址)

设计

2023-06-09 18:01:09 2350

原创 大淘宝服务端技术干货沉淀和总结

大淘宝服务端技术栈总结

2023-05-17 09:31:47 2139

原创 flume+kafka+storm

flume原理搭建配置文件kafka原理zookeeper搭建kafka搭建命令示例storm原理搭建Topology使用flume原理Flume 是一个可靠的,分布式的,用于采集,聚合,传输海量日志数据的系统。Flume 的核心是把数据从数据源收集过来,再送到目的地。为了保

2017-11-30 20:18:52 767

转载 Java开发中的23种设计模式详解

设计模式(Design Patterns)                                  ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真

2017-11-28 09:55:09 728

原创 Java 单例模式的七种写法[设计模式的备忘录]

第一种(懒汉,线程不安全):publicclassSingleton{2privatestaticSingletoninstance;3private Singleton(){}4publicstaticSingletongetInstance(){5if(instance==

2017-11-14 14:38:26 382

原创 Java的元组类型整理

// 1元组 Unit u = new Unit("xo"); // 2元组 Pair p = Pair.with("xo", 1217); // 3元组 Triplet triplet = Triplet.with("xo", 1217, 1.0); //... KeyValue kv = KeyValue.with("xo", "1217")

2017-09-12 14:47:27 6374

原创 线程池整理

basicJava里的是线程(不是进程),Java线程直接映射到操作系统的线程,1:1的关系。会受到操作系统的线程调度、线程数量限制的影响为什么用线程池:线程的创建和销毁开销非常高(时间、内存)线程池越大越好?线程消耗系统资源,尤其是内存,如果有大量闲置线程会占用很多内存;而且还会竞争CPU时间当系统负载变高,程序仍然认为自己能处理,创建很多线程,结

2017-09-11 10:56:30 563

原创 tcpcopy 上手介绍和测试说明

压测自动化

2017-06-16 15:55:14 3170 2

原创 guava 学习大纲

guava 学习大纲

2017-05-31 19:25:01 539

原创 Collections.sort() 排序算法 源码简介

Collections.sort()和排序算法简介

2017-05-23 12:01:21 3438

原创 Cookie与Session的区别与联系及生命周期

原文:http://blog.csdn.net/tanyunlong_nice/article/details/47188659#comments前几天面试问了一个问题,当时记不太清了,上网查了下发现这个问题还真的很有讲究而且很重要,自己总结下做下记录。一、Session与Cookie介绍这些都是基础知识,不过有必要做深入了解。先简单介绍一下。二者的定义

2017-05-08 11:55:11 1129

原创 怎样理解一个新项目?

1,明确使用了什么框架?springmvc、struts1、struts2(Webwork2)Spring MVC和Struts2的区别http://blog.csdn.net/fireofjava/article/details/452736152,我们一般都是一个web项目,部署在tomcat上Tomcat 配置详解/优化方案http://www.jia

2016-12-16 10:03:43 1415

原创 Lucene查询语法详解(Lucene query syntax)- 用于Kibana搜索语句

Lucene提供了丰富的API来组合定制你所需要的查询器,同时也可以利用Query Parser提供的强大的查询语法解析来构造你想要的查询器。本文章详细的介绍了Lucene的查询语法。通过Java语法分析器把一个查询字符串解析成 Lucene的查询器。在你选择使用Query Parser前,请考虑以下事项:如果你打算在程序中拼接查询语法串然后再利用Query Parser转换,那么强烈建议

2016-11-28 14:56:34 24369

原创 Lock与synchronized 的区别

1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断 如果 使用ReentrantLock,如果A不释放,可以使B在

2016-09-13 15:11:06 539

原创 HashMap对HashCode碰撞的处理

Java中HashMap是利用“拉链法”处理HashCode的碰撞问题。在调用HashMap的put方法或get方法时,都会首先调用hashcode方法,去查找相关的key,当有冲突时,再调用equals方法。hashMap基于hasing原理,我们通过put和get方法存取对象。当我们将键值对传递给put方法时,他调用键对象的hashCode()方法来计算hashCode,然后找到bucket(

2016-09-06 18:37:46 23670 1

原创 什么是HashTable?HashMap和HashTable的区别

HashTable是什么?哈希表(Hashtable)又称为“散置”,Hashtable是会根据索引键的哈希程序代码组织成的索引键(Key)和值(Value)配对的集合。Hashtable 对象是由包含集合中元素的哈希桶(Bucket)所组成的。而Bucket是Hashtable内元素的虚拟子群组,可以让大部分集合中的搜寻和获取工作更容易、更快速。HashMap是什么? 看另外一篇文章

2016-09-06 15:13:02 6000

原创 Java transient关键字

Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。这样当多个线程

2016-09-06 15:03:30 387

原创 Java synchronized详解

Java synchronized详解第一篇:使用synchronized在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题。在Java中内置了语言级的同步原语--synchronized,这也大大简化了Java中多线程同步的使用。我们首先编写一个非常简单的多线程的程序,是模拟银行中的多个线程同时对同一个储蓄账户进行存款、取款操作的。在程序中我们

2016-09-06 15:00:36 489

原创 JAVA语言工具类封装-基于poi的excel导出功能

excel导出基本上是必备的功能,如果条目超过65535 则考虑csv,小于不考虑。一句话使用:OrderInfoExcelBuilder.getInstance().createExcel(OrderType.MAIN_ORDER, orderInfoDetailList, response);结构比较简单,抽象类+子类实现。先看下抽象类:package com.qunar.

2016-08-31 19:00:05 3332

原创 Redis实现分布式锁通用工具

import java.net.InetAddress;import java.net.UnknownHostException;import javax.annotation.Resource;import org.apache.commons.lang3.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFact

2016-08-17 19:16:00 1215

原创 Java并发编程:线程池的使用和源码解读[ThreadPoolExecutor]

Java并发编程:线程池的使用  在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:  如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。  那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任

2016-08-16 16:53:06 1207

原创 何为幂等可重试(安全操作)

google了一些中文的资料, 基本了解了幂等是怎么回事儿. 备忘一下.PUT,DELETE操作是幂等的。所谓幂等是指不管进行多少次操作,结果都一样。比如我用PUT修改一篇文章,然后在做同样的操作,每次操作后的结果并没有不同,DELETE也是一样。顺便说一句,因为GET操作是安全的,所以它自然也是幂等的。POST操作既不是安全的,也不是幂等的,比如常见的POST重复加载问题:当

2016-03-21 19:42:35 2877

原创 精准的金额类

package com.qunar.flight.ib2b.trade.center.web.util;import java.io.IOException;import java.io.Serializable;import java.math.BigDecimal;import java.math.MathContext;import java.math.RoundingMode;

2016-03-15 15:02:12 925

原创 spring mvc 传中文 到controller层乱码的 解决方法

String sta =null;        try {            sta = new String(status.getBytes("iso-8859-1"),"utf-8");        } catch (UnsupportedEncodingException e) {        }

2015-11-18 22:21:45 6519 1

原创 mysql保障数据一致性:redis与mysql数据同步(二)

应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql,此种情况存在的问题主要是如何保证mysql与redis的数据同步,二者数据同步的关键在于mysql数据库中主键,方案是在redis启动时区mysql读取所有表键值存入redis中,往redis写数据是,对redis主键自增并进行读取,若mysql更新失败,则需要及时清除缓存及同步redis主键。 String t

2015-11-17 16:12:57 5157

原创 mysql保障数据一致性:锁与解(一)

因项目需要有锁单业务,所以,涉及到两个技术点:分布式锁和数据库锁。项目前期(qps悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Opti

2015-11-16 16:47:34 1953

原创 2015年mysql最新开发规范

1.命名规范(1)库名、表名、字段名必须使用小写字母,并采用下划线分割。(2)库名、表名、字段名禁止超过32个字符。(3)库名、表名、字段名必须见名知意。命名与业务、产品线等相关联。(4)库名、表名、字段名禁止使用MySQL保留字。(保留字列表见官方网站)(5)临时库、表名必须以tmp为前缀,并以日期为后缀。例如 tmp_test01_20130704。

2015-10-31 08:43:23 2004

原创 跟我学Guava:基础1.4-Ordering比较器和链式排序

Ordering是Guava类库提供的一个犀利强大的比较器工具,Guava的Ordering和JDK Comparator相比功能更强。它非常容易扩展,可以轻松构造复杂的comparator,然后用在容器的比较、排序等操作中。  本质上来说,Ordering 实例无非就是一个特殊的Comparator 实例。Ordering只是需要依赖于一个比较器(例如,Collections.max)的方法

2015-10-22 21:00:17 1292

原创 Redis、Memcached、Guava、Ehcache中的算法

缓存那些事,一是内存爆了要用LRU(最近最少使用)、LFU(最少访问次数)、FIFO的算法清理一些;二是设置了超时时间的键过期便要删除,用主动或惰性的方法。在看所有的细节之前,可以看一篇相当专业的《缓存算法》,世界真宽阔,算法真奇妙。1. LRU简单粗暴的Redis今天看Redis3.0的发行通告里说,LRU算法大幅提升了,就翻开源码来八卦一下,结果哭笑不得,这旧版的"近似L

2015-10-21 16:21:57 648

原创 跟我学Guava:基础1.3-常见Object方法和复用他们

在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals,hashCode和toString等方法。每次写这几个方法都要做很多重复性的判断, 很多类库提供了覆写这几个方法的工具类, Guava也提供了类似的方式。下面我们来看看Guava中这几个方法简单使用。  equals方法:equals是一个经常需要覆写的方法, 可以查看Object的eq

2015-10-21 15:11:00 629

原创 跟我学Guava:基础1.2-前置条件

一句话理解:减少大量判断,简介代码,使用try/catch来处理参数的判断逻辑。在日常开发中,我们经常会对方法的输入参数做一些数据格式上的验证,以便保证方法能够按照正常流程执行下去。对于可预知的一些数据上的错误,我们一定要做事前检测和判断,来避免程序流程出错,而不是完全通过错误处理来保证流程正确执行,毕竟错误处理是比较消耗资源的方式。在平常情况下我们对参数的判断都需要自己来逐个写方

2015-10-21 10:29:18 681

原创 跟我学Guava:基础1.1-使用和避免null

在我们学习和使用Guava的Optional之前,我们需要来了解一下Java中null。因为,只有我们深入的了解了null的相关知识,我们才能更加深入体会领悟到Guava的Optional设计和使用上的优雅和简单。 null代表不确定的对象:  Java中,null是一个关键字,用来标识一个不确定的对象。因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。

2015-10-20 21:15:28 828

原创 比log4j更好的logback、简介和优点详解

无论从设计上还是实现上,Logback相对log4j而言有了相对多的改进。不过尽管难以一一细数,这里还是列举部分理由为什么选择logback而不是log4j。牢记logback与log4j在概念上面是很相似的,它们都是有同一群开发者建立。所以如果你已经对log4j很熟悉,你也可以很快上手logback。如果你喜欢使用log4j,你也许会迷上使用logback。更快的执行速度基于我们

2015-09-18 19:38:28 12907

原创 跳板机 免密码二次登录 beta测试+dev开发+idc线上+gamma灰度机-ssh篇

一、免密码登录步骤将eval `/usr/local/bin/ssh-attach` 这段内容复制到你的跳板机的宿主目录下的 .bashrc文件中到底部。source .bashrc ,输入正确的口令(也就是passphrase,输入口令必须正确)重新登陆发现,可ssh 任意机器,再无输口令的烦恼效果图:追加:免密码优化1.  利用CRT一键登录测试和开发机

2015-09-17 11:48:08 2813

转载 跟我快速理解Dubbo:-2 架构设计详解

Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容,详见后面描述。

2015-09-16 10:34:00 2086

原创 跟我快速理解Dubbo:-1 内容简介和使用。

公司项目需要,临时搞搞。1. Dubbo是什么?Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web

2015-09-16 10:29:02 4350

原创 SOAP和RESTful 框架的 简介、对比和区别

SOAP简单对象访问协议(Simple Object Access Protocol,SOAP)是一种基于XML的协议,可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME),基于“通用”传输协议是SOAP的一个优点。它还支持从消息系统到远程过程调用(Remote Procedure Call,RPC)等大量

2015-09-15 12:10:33 18354

转载 Java项目依赖各jar包的作用和解释

IKIKAnalyzer3.2.8.jar // 分词器ant-junit4.jar // ant junitantlr-2.7.6.jar //没有此包,hibernate不会执行hql语句。并且会报NoClassDefFoundError:antlr/ANTLRException错误aopalliance-1.0.jar //这个包是AOP联盟的API包,里面包含了针对面向切面的接

2015-09-14 16:33:11 6002

原创 Maven pom.xml文件教程详解

[xml]view plaincopyprint?projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apach

2015-09-11 18:27:00 737

转载 Zookeeper简介、基本概念和工作原理

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookee

2015-09-11 10:16:38 7851

项目管理师重点总结-项目执行

项目管理师重点总结-项目执行

2013-05-10

项目管理师重点总结-项目启动

项目管理师重点总结-项目启动

2013-05-10

项目管理师重点总结-项目计划

项目管理师重点总结-项目计划

2013-05-10

项目管理师重点总结-基础知识

项目管理师重点总结-基础知识

2013-05-10

select模型 socket

Description: // // This sample illustrates how to develop a simple echo server Winsock // application using the select() API I/O model. This sample is // implemented as a console-style application and simply prints // messages when connections are established and removed from the server. // The application listens for TCP connections on port 5150 and accepts // them as they arrive. When this application receives data from a client, // it simply echos (this is why we call it an echo server) the data back in // it's original form until the client closes the connection. //

2009-07-25

Expanding_dialog

首发,实验下别人的东西,别有外意。

2008-03-27

空空如也

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

TA关注的人

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