自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 二、商品促销-策略模式

策略模式

2017-05-29 21:22:54 637

原创 一、简单工厂模式

可维护 可复用 可扩展 灵活性好 工厂: 用一个单独的类来做创造实例的过程。简单运算工厂类:package SimpleFactory;public class OperFactory { public static Operation createOperate(char operate) { Operation oper = null; switch

2017-05-29 13:24:56 237

原创 RabbitMQ入门例程

RabbitMQ入门例程

2017-05-27 13:19:54 354

原创 mac 安装 RabbitMQ

官网http://www.rabbitmq.com/install-standalone-mac.html1.使用brew来安装 RabbitMQbrew update brew install rabbitmq注意: rabbitmq的安装目录: /usr/local/Cellar/rabbitmq/3.6.92.RabbitMQ 的启动/usr/local/Cellar/rabbitmq/3.6

2017-05-26 13:52:24 400

转载 Java内部类

内部类

2017-05-14 15:33:20 199

原创 git rebase 与 git merge

这些操作都是为了把一个分支上的工作加到另一个分支上。 merge :把另一个分支合并到当前分支上。 rebase :把当前分支的提交在另一分支上重演。(如果可以成功重演,本分支将会消失) cherry-pick :把本分支或者其他分支的某一次或某几次提交,在当前分支上重演。 rebase 假设你现在基于远程分支”origin”,创建一个叫”mywork”的分支。 $ git che...

2017-05-09 18:48:17 265

原创 Java并发编程:深入剖析ThreadLocal

一. 对ThreadLocal的理解import java.util.Date; import java.util.concurrent.TimeUnit;class UnsafeTask implements Runnable{ private Date startDate; @Override public void run() { startDate =

2017-05-08 22:37:30 334

原创 Java内存模型

Java内存模型   多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请求数,而TPS值与程序的并发能力有着非常密切的关系。在讨论Java内存模型和线程之前,先简单介绍一下硬件的效率与一致性。

2017-05-08 17:41:22 225

原创 Java内存区域与内存溢出异常

运行时数据区域 程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区1. 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。 严格来说是一个数据结构,用于保存当前正在执行的程序的内存地址,由于Java是支持多线程执行的,所以程序执行的轨迹不可能一直都是线性执行。当有多个线程交叉执行时,被中断的线程的程序当前执行到哪条内存地址必然要保存下来,以便用于被中断的线程

2017-05-07 23:27:25 259

原创 Java并发编程:volatile关键字解析

volatile解析Java内存模型在Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽各个硬件平台和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。那么Java内存模型规定了哪些东西呢,它定义了程序中变量的访问规则,往大一点说是定义了程序执行的次序。注意,为了获得较好的执行性能,Java内存模型并没有限制执行引擎

2017-05-07 21:57:53 385

原创 Java并发编程:Lock

在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock? Lock ReentrantLock 可重入锁 公平锁 读写锁

2017-05-06 00:26:44 285

原创 Java并发编程:synchronized

synchronized

2017-05-05 16:04:50 290

原创 Java并发编程:Thread类的使用

Thread类 sleep相当于让线程睡眠,交出CPU,让CPU去执行其他的任务。但是有一点要非常注意,sleep方法不会释放锁,也就是说如果当前线程持有对某个对象的锁,则即使调用sleep方法,其他线程也无法访问这个对象。看下面这个例子就清楚了:public class Test { private int i = 10; private Object object = new Object();

2017-05-05 14:27:57 592 1

原创 Java并发编程:如何创建线程?

在Java中,一个应用程序对应着一个JVM实例(也有地方称为JVM进程),一般来说名字默认为java.exe或者javaw.exe(windows下可以通过任务管理器查看)。Java采用的是单线程编程模型,即在我们自己的程序中如果没有主动创建线程的话,只会创建一个线程,通常称为主线程。但是要注意,虽然只有一个线程来执行任务,不代表JVM中只有一个线程,JVM实例在创建的时候,同时会创建很多其他的线程

2017-05-05 13:53:06 297

原创 Java并发编程:进程和线程之由来

进程让操作系统的并发性成为可能,而线程让进程的内部并发成为可能。 一个进程包括多个线程,这些线程是共享进程占有的资源和地址空间的。进程是操作系统进行资源分配的基本单位,线程时操作系统进行调度的基本单位。多线程是共享进程的资源和地址空间的,所以就会有同步问题。 进程和线程之由来

2017-05-05 13:29:08 206

原创 Java多线程总结

进程和线程 一个进程可以拥有多个线程,各个线程之间共享程序的内存空间(代码段、数据段和堆空间)及一些进程级的资源(例如打开的文件),但是各个线程拥有自己的栈空间。 使用多线程可以减少程序的响应时间。 与进程相比,线程的创建和切换开销更小。 多CPU或多核计算机本身就有执行多线程的能力。 同步和异步同步机制确保资源的安全性。 synchronized是以系统开销作为代价的,有时候甚至可能造成死锁。

2017-05-04 23:48:27 217

原创 Java多线程(四)

线程安全 synchronized 同步代码块 同步锁对象 wait()/notify()/noitifyAll()

2017-05-04 22:34:29 226

原创 Java多线程(三)

什么会引起Java线程阻塞? join() sleep() Daemon Thread 线程的优先级 yield()

2017-05-04 22:10:18 252

原创 Java多线程(二)

后台线程后台(daemon)线程 创建与启动线程的几种方式

2017-05-04 21:41:38 191

原创 Java多线程(一)

进程 线程 并行 并发 线程的生命周期和基本状态五种基本状态 多线程的创建与启动的几种方式

2017-05-04 11:29:40 499 1

原创 字符串与数组

字符串 数组

2017-05-03 17:28:53 605

原创 容器

迭代器 List HashMap Hashtable Collection Collections

2017-05-03 12:52:18 242

空空如也

空空如也

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

TA关注的人

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