自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

魔力鸟的专栏

愿回唐宋 仗剑走天涯

  • 博客(58)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 AQS2:可重入和阻塞

本文仅基于可重入的锁(ReentrantLock类)对AQS做分析,只考虑独占锁。 共享锁与独占锁的更多信息,以后再讨论。

2017-08-18 13:44:23 898

原创 AQS(一) 对CLH队列的增强

基本概念AQS(AbstractQueuedSynchronizer),顾名思义,是一个抽象的队列同步器。它的队列是先进先出(FIFO)的等待队列基于这个队列,AQS提供了一个实现阻塞锁的机制最终,基于这个阻塞锁,可以实现多线程的同步先进先出的等待队列这个等待队列,是基于CLH锁实现的。 CLH锁是以发明人命名的自旋锁,这个锁是一个基于队列的自旋锁,是对SpinLock,TicketLoc

2017-07-29 14:50:20 989

原创 显式锁之自旋锁

1.涉及到的处理器架构知识1.1 SMP(Symmetric Multi-Processor)对称多处理器结构,指服务器中多个CPU对称工作,每个CPU访问内存地址所需时间相同。其主要特征是共享,包含对CPU,内存,I/O等进行共享。SMP能够保证内存一致性,但这些共享的资源很可能成为性能瓶颈,随着CPU数量的增加,每个CPU都要访问相同的内存资源,可能导致内存访问冲突,可能会导致CPU资源的浪费

2017-07-20 20:54:45 446

原创 虚拟桌面更新,自定义快捷键

Win10没有提供修改虚拟桌面快捷键的功能,所以使用AHK软件来自定义快捷键 AHK(AutoHotkey) 键盘,鼠标等的脚本模拟工具,可以监听,触发键盘和鼠标的动作。 下载: https://www.autohotkey.com/download/安装完成后编辑脚本: alt+1 显示任务视图(所有桌面) alt+F1 上一个桌面 alt+F2 下一个桌面 ;Windows

2017-06-15 10:31:45 2979

原创 Java 序列化全解密

何为序列化,反序列化Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。也就是将Java对象序列化为二进制形式。 将序列化对象写入文件之后,可以从文件或网络中中读取出来,并且对它进行反序列化,也就是说,对象的类型信息、对象的数据,还有对象中的数据类型可以用来在内存中新建对象。 如何序列化,反序

2017-03-11 18:05:45 802

转载 TCP/IP协议栈

TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,如下图所谓的协议就是双方进行数据传输的一种格式。整个网络中使用的协议有很多,所幸的是每一种协议都有RFC文档。在这里只对IP、TCP、UDP协议头做一个分析。首先来看看在网络中,一帧以太网数据包的格式:在Linux 操作系统中,当我们想发送数据的时候,我们只需要在

2017-02-12 15:25:20 763

转载 MySQL——索引与优化

http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读

2017-01-20 10:08:24 282

转载 消息中间件Notify和MetaQ-阿里中间件

http://www.cnblogs.com/kingkoo/p/4573970.htmlhttp://www.tuicool.com/articles/zqyYrmhttp://blog.csdn.net/pony12/article/details/38919751转载备查3.1、NotifyNotify是淘宝自主研发的一套消息服务引擎,是支撑双11

2017-01-20 09:50:18 1446

转载 网络编程基础(1) : 网路模型简介+同步阻塞实例

1. 前言簡介网络编程中最基本的架构是C/S架构,也就是由客户端/服务端结合而成的连线架构,而C/S架构又有多种不同的实现方案,对应不同情况下的需求衍生出多种不同效能的网路模型实现方式可供选择,在程序运行的角度所处的情境下一般可以分为以下四种:(1) 同步阻塞:由功能调用的调用者(线程)等待结果返回,在结果返回前,当前线程被挂起阻塞住不往下面运行。如:read。

2017-01-19 14:08:12 318

转载 微服务十二要素

spring cloud官方文档提到的服务开发的12项要素http://blog.csdn.net/zeb_perfect/article/details/52536411http://www.cnblogs.com/skyblog/p/5099140.html

2017-01-13 14:07:18 1053

原创 Http中Cookie的HttpOnly和secure属性

Cookie语法:Cookie通常是作为HTTP 应答头发送给客户端的,下面的例子展示了相应的语法(注意,HttpOnly属性对大小写不敏感): Html代码  Set-Cookie: =[; =]  [; expires=][; domain=]  [; path=][; secure][; HttpOnly] 属性含义1 secure

2016-12-21 15:44:00 10511

原创 单例模式、访问者模式 (组内分享)

JAVA基本特性:抽象,封装,继承,多态设计模式都是基于这些特性总结的一些模式化的解决方案。所以有必要了解下。  设计模式基本概念:OO,UML,原则,分类 单例模式访问者模式

2016-12-13 14:11:20 492

翻译 微服务-定义、原则和优点

原文:http://howtodoinjava.com/design-patterns/microservices-definition-principles-benefits/本文是原作者阅读多个关于微服务的资料后的总结,翻译时尽量保持原文含义。在各个公司,“微服务”是最流行的词,貌似大家对这个词都能多少说点。无论如何,让我们理解下,啥叫“微服务”?在这篇文章里,我尝试理解下微服务的

2016-11-26 17:30:32 7298

转载 六种微服务架构的设计模式

前不久,Java Code Geeks发表了一篇文章,分析单体应用与微服务的优缺点。近日,该网站又发表了一篇文章,提供了六种微服务架构的设计模式。聚合器微服务设计模式这是一种最常用也最简单的设计模式,如下图所示:聚合器调用多个服务实现应用程序所需的功能。它可以是一个简单的Web页面,将检索到的数据进行处理展示。它也可以是一个更高层次的组合微服务,对检索到的数据增加业务逻辑后进一步发

2016-11-26 16:18:33 1833

转载 单体应用与微服务优缺点辨析

原文:http://www.infoq.com/cn/news/2015/04/single-app-micro-service近日,Java Code Geeks发表了一篇文章,分析了单体应用与微服务的优缺点,并建议使用微服务重构现有的应用程序。通俗地讲,“单体应用(monolith application)”就是将应用程序的所有功能都打包成一个独立的单元,可以是JAR、WAR、EA

2016-11-26 16:15:32 2218

转载 微服务

英文原文:http://martinfowler.com/articles/microservices.html翻译原文:http://blog.cuicc.com/blog/2015/07/22/microservices/翻译自Martin Fowler的microservices, 翻译于2015年7月22日。翻译尽量贴近原文,减少意译带入的个人观点,如有不当之处,请

2016-11-26 14:51:56 1447

转载 从Java视角理解系统结构(三)伪共享

从Java视角理解系统结构连载, 关注我的微博(链接)了解最新动态从我的前一篇博文中, 我们知道了CPU缓存及缓存行的概念, 同时用一个例子说明了编写单线程Java代码时应该注意的问题. 下面我们讨论更为复杂, 而且更符合现实情况的多核编程时将会碰到的问题. 这些问题更容易犯, 连j.u.c包作者Doug Lea大师的JDK代码里也存在这些问题.MESI协议及RFO请求从前

2016-10-30 19:40:16 397

转载 Java并发基础

Executors•这是一种任务分解。任务提供者和执行者•在本线程内完成,或者交给专门的Executor去执行。BlockingQueue•常用的工具类,用于数据流分解•读取阻塞,插入阻塞(可选)•ArrayBlockingQueue–FIFO,有上限•LinkedBlockingQueue–FIFO,可能有上限•PriorityBlockingQueue–

2016-10-26 21:57:25 281

转载 synchronized 底层实现

目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。本文并不比较synchronized与Lock孰优孰劣,只是介绍二者的实现原理。数据同步需要依赖锁,那锁的同步又依赖谁?synchronized给出的答案是在软件层面依赖JVM,而Lock给出的方案是在硬件层面依赖特殊的CPU指令,

2016-10-26 21:53:19 496

原创 Alibaba FastJson支持对象中私有属性的json解析

项目中需要使用fastjson做数据处理,而且部分对象中的属性很多都是非public的,且没有getter/setter方法,找了很久没有找到fastjson对这个问题的解决。所以自己动手,基于fastjson的源代码构造了单独的javabean的序列化器。使用方式:直接使用封装好的MetaJsonUtil的工具方法即可。fastjson版本为1.2.7MetaJs

2015-10-15 17:15:01 12274 1

原创 Google Guice 依赖注入框架:简明教程

Guice是一个轻量级的依赖注入框架。用于对象之间的依赖的注入。本文的所有例子基于Guice 4.0Guice的使用:Guice的使用涉及接口,接口的实现类,接口与其实现类的绑定关系三个方面。定义一个接口: public interface Log { void log();}定义一个实现类:public class DbLog

2015-09-30 16:47:28 7490

原创 Oracle创建DBLINK

2种方法创建DBLINK第一种,配置本地服务后创建DBLINK配置本地服务:首先检查是否在.bash_profile中配置了TNS_ADMIN变量。sqlplus使用这个变量查找tnsnames.ora文件查找服务。ORACLE_BASE=/opt/oracle/app #修改和OFA路径一致ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

2015-01-15 10:28:54 753

原创 Java线程安全问答(草稿)

什么是线程安全?为什么也好关注

2014-09-24 14:42:36 681

原创 JAVA上传图像时图像处理的基本方法

一,form表单类型

2014-09-22 17:11:12 3470

转载 深入分析 Java I/O 的工作机制

I/O 问题可以说是当今互联网 Web 应用中所面临的主要问题之一,因为当前在这个海量数据时代,数据在网络中随处流动。这个流动的过程中都涉及到 I/O 问题,可以说大部分 Web 应用系统的瓶颈都是 I/O 瓶颈。本文的目的正是分析 I/O 的内在工作机制,你将了解到:Java 的 I/O 类库的基本架构;磁盘 I/O 工作机制;网络 I/O 的工作机制;其中以网络 I/O 为重点介绍 Java

2014-09-19 10:22:55 498

原创 Apache POI 创建Excel文件实例

需要达到

2014-09-10 17:22:29 932

原创 设计模式是什么

设计模式有甚多不同的表述:1.

2014-08-31 15:28:18 828

转载 成为Java GC专家系列(1) ——Java垃圾回收机制

原文地址:http://www.cubrid.org/blog/dev-platform/understanding-java-garbage-collection/翻译原文:http://www.importnew.com/1993.html注:次系列文章是我在ImportNew的基础上进行整理翻译的(主要是格式修改和翻译校对)。对于Java开发人员来说,了解垃圾回收机制

2014-05-13 13:23:16 470

原创 JVM GC调优总结

1.-Xmn 与 -XX:NewRatio buyao

2014-05-03 16:44:09 2377

转载 JDK5.0垃圾收集优化之--Don't Pause

作者:江南白衣,最新版链接:http://blog.csdn.net/calvinxiu/archive/2007/05/18/1614473.aspx,版权所有,转载请保留原文链接。      原本想把题目更简单的定为--《不要停》的,但还是自己YY一下就算了。      Java开发Server最大的障碍,就是JDK1.4版之前的的串行垃圾收集机制会引起长时间的服务暂停,明白原理后

2014-05-03 11:13:48 558

转载 JVM系列四:生产环境参数实例及分析【生产环境实例增加中】

原文可能有更新,点击:java application项目(非web项目)改进前:-Xms128m-Xmx128m-XX:NewSize=64m-XX:PermSize=64m-XX:+UseConcMarkSweepGC-XX:CMSInitiatingOccupancyFraction=78-XX:ThreadStackSize=128-Xlog

2014-05-03 10:52:00 544

转载 JVM系列五:JVM监测&工具[整理中]

前几篇篇文章介绍了介绍了JVM的参数设置并给出了一些生产环境的JVM参数配置参考方案。正如之前文章中提到的JVM参数的设置需要根据应用的特性来进行设置,每个参数的设置都需要对JVM进行长时间的监测,并不断进行调整才能找到最佳设置方案。本文将介绍如果通过工具及Java api来监测JVM的运行状态,并详细介绍各工具的使用方法。       需要监测的数据:(内存使用情况 谁使用了内存 GC的状况

2014-05-03 10:50:02 745

转载 JVM系列三:JVM参数设置、分析

不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不同

2014-05-03 10:47:45 947

转载 JVM系列二:GC策略&内存申请、对象衰老

JVM里的GC(Garbage Collection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpot VM GC 的种类       现在比较常用的是分代收集(generational collection,也是SUN VM使用的,J2SE1.2之后引入),即将内存分为几个区域,将不同生命周期的对象放在不同区域里:young generation,tenu

2014-05-03 10:45:21 773

转载 JVM系列 HotSpot VM GC 的种类

collector种类      GC在 HotSpot VM 5.0里有四种:incremental (sometimes called train) low pause collector已被废弃,不在介绍.类别serial collectorparallel collector( throughput collector )concur

2014-05-03 10:42:27 1357

转载 JVM系列一:JVM内存组成及分配

java内存组成介绍:堆(Heap)和非堆(Non-heap)内存       按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发

2014-05-03 10:40:40 682

原创 Android开发指南整理

android基本框架,打包流程http://note.youdao.com/share/?id=a098fa7bf48009737a52209c6fc5b7a7&type=note应用程序组件http://note.youdao.com/share/?id=7e01683fbda9f31824ff63fb008b3540&type=noteActivity和T

2014-01-02 17:54:02 758

原创 类似Lazy Android的插件,根据layout的xml文件自动生成findViewById代码

自己开发了一个插件链接:http://awjiyvyzrt.l5.yunpan.cn/lk/Q96Iqf76iSfnJ直接放到plugins目录下面 ,如果有dropins目录,下面新建plugins目录然后放到下面。功能图示:1.选择layout文件,前提是该layout对应的activity已经存在!2.右键选择 AndroidTools -> init a

2013-11-05 19:27:49 1906

原创 轻量级业务逻辑处理框架

编写程序的时候,随着需求和业务的增加,代码的维护会越来越困难,如何做到可扩展,易维护呢?一个比较好的方案就是提高代码的复用率,抽取易变的部分统一维护,以降耦。代码框架一般可以分为两类,一类是业务逻辑的抽象,主要用于提高业务逻辑代码的复用率,比如不同业务对某个规则的验证。另外一类是处理流程的抽象,主要用于降耦,即对修改关闭,对扩展开放。新增的业务不影响原来的业务。当然,更多的是将两者的合

2012-12-14 19:39:50 885

原创 Java中ClassLoader笔记

http://note.youdao.com/share/?id=1ff65eabed0a07e5c8189a2a881b97f4&type=notejava中类的载入方式:1.预先载入    预先载入基本库,减少IO操作2.依需载入    依需载入所需类,减少内存占用。java(1.6)继承关系中类和接口的载入顺序以上三个类,四个接口的载入

2012-11-08 18:34:13 829

phantomjs-1.9.8-linux-x86_64.tar.bz2

npm install 被墙资源 phantomjs-1.9.8-linux-x86_64.tar.bz2

2015-03-05

Velocity10分钟了解

velocity语法使用文档。教你10分钟学会使用velocity。注意,不包含搭建velocity环境的说明。

2012-08-07

Scala-IBM developerWorks经典教程

整理的IBM developerWorks面向java程序员的scala指南系列。 由浅入深,细致,深入,经典。

2010-11-19

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

TA关注的人

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