自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

happy_85的专栏

摸索中前行

  • 博客(59)
  • 资源 (1)
  • 收藏
  • 关注

原创 不惑JAVA之JAVA基础 - Concurrent 概述

本来想写ConcurrentHashMap的,但是感觉单写这一个知识点有点烂大街。java.util.concurrent包除了ConcurrentHashMap还是有很多好东西的,下面将会对一些重点知识点进行讲述。由于本人能力有限如有解释不到位的地方请各位大神们指出。本博文参考和引用了大量优秀博文,感谢这些优秀的博主。java.util.concurrent 包含许多线程安全、测试良好、高性能的并

2016-05-18 18:13:33 4995

原创 不惑JAVA之JAVA基础 - NIO (二)

上面主要讲解了java IO类及其如何使用,本篇主要讲NIO原理。NIO原理阻塞IO非阻塞与阻塞也就是我们常说的IO与NIO。在聊非阻塞前,我们先来看看网络通讯中的阻塞。常见的网络 IO 通讯流上面是一个网络通信IO流程图,何为阻塞呢 ?在以上过程中若连接还没到来,那么 accept 会阻塞 , 程序运行到这里不得不挂起, CPU 转而执行其他线程。在以上过程中若数据还没准备好, read 会一

2016-05-16 15:31:43 3723

原创 不惑JAVA之JAVA基础 - NIO (一)

JAVA中最可以大书特书的我觉得至少有两个:一个是NIO,另外一个就是JVM了。这也就是为什么一直我没有去写这两个知识点的原因,因为我一直找不出来一个可以在一篇博文中全部覆盖这个知识点的总结。这两天翻了一下了JAVA中的圣经《think in java》和《Java核心技术》,虽然写的很好,但感觉写的也不是太符合我想一篇博文覆盖NIO知识点的要求。由于NIO本来就是技术难点,并且java对IO的设计

2016-05-13 15:56:22 4234

原创 不惑JAVA之JAVA基础 - HashMap

HashMap应该是平时应用开发中或是框架设计中最为常用高效的容器。在介绍HashMap之前,先介绍两个常见的区别。后期会专门介绍CurrentHashMap。hashmap 和 hashtable 区别HashMap和HashTable有什么区别,一个比较简单的回答是:HashMap是非线程安全的,HashTable是线程安全的。HashMap的键和值都允许有null值存在,而HashTabl

2016-05-10 16:54:48 1081

原创 不惑JAVA之JAVA基础 - Set 和 List

从学习JAVA到现在也有小十年了,工作一直在用但理论知识确是年年在忘,用了很多学了很多但都系统。人也快30了,而立之年何去何从?最近看到csdn中一个博主写的java系列博客不错,我这人比较懒估计自己从0开始估计写不下来,所以站在“巨人”肩膀上开始自己的笔记,希望能比较系统的将java知识梳理一下。 此blog大量参考Java之美[从菜鸟到高手演变]之集合类,因为已经写得很不错了,此blog会对一

2016-05-10 11:33:37 1187

原创 不惑JAVA之JAVA基础 - ThreadLocal

ThreadLocal在数据库连接和session管理下有广泛的应用,了解ThreadLocal对struts、spring等开源代码的理解有很大的帮助。ThreadLocal如果单纯从名字上来看像是“本地线程”这么个意思,只能说这个名字起的确实不太好,很容易让人产生误解,ThreadLocalVariable(线程本地变量)应该是个更好的名字。我们先看一下官方对ThreadLocal的描述:

2016-05-09 15:48:16 909

原创 不惑JAVA之JAVA基础 - volatile

volatile在多线程并发中用途非常广,原因是它有两个特性:保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。禁止进行指令重排序。内存模型的相关概念要想弄明白volatile的原理,先需要知道内存模型的一些概念。先看一个图:计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程

2016-05-08 13:54:47 1003

原创 不惑JAVA之JAVA基础 - 锁 -synchronized、Lock解析

锁主要解决线程安全问题。而线程安全问题,即多个线程同时访问一个资源时,会导致程序运行结果并不是想看到的结果。synchronized先来了解一下互斥锁,顾名思义:能到达到互斥访问目的的锁。如果对临界资源加上互斥锁,当一个线程在访问该临界资源时,其他线程便只能等待。  在Java中,每一个对象都拥有一个锁标记(monitor),也称为监视器,多线程同时访问某个对象时,线程只有获取了该对象的锁才能访问。

2016-05-07 21:54:17 2583

原创 不惑JAVA之JAVA基础 - String

本文适合有一定java基础的同学。本博客宗旨:突出重点,分析难点。String的本质先看一下String源码public final class String implements java.io.Serializable, ComparableString>, CharSequence { /** The value is used for character st

2016-05-06 15:29:32 809

原创 不惑JAVA之JAVA基础 - 线程池

简单原理一个比较简单的线程池至少应包含线程池管理器、工作线程、任务队列、任务接口等部分。线程池管理器(ThreadPool Manager)的作用是创建、销毁并管理线程池,将工作线程放入线程池中;工作线程是一个可以循环执行任务的线程,在没有任务时进行等待;任务队列的作用是提供一种缓冲机制,将没有处理的任务放在任务队列中;任务接口是每个任务必须实现的接口,主要用来规定任务的入口、任务执行完后的

2016-05-06 15:24:19 903

原创 不惑JAVA之JAVA基础 - 阻塞队列

在学习线程池前,先要了解一下阻塞队列,这个知识点是线程池的核心。阻塞队列的作用使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒策略,这个实现起来就非常麻烦。但是有了阻塞队列就不一样了,它会对当前线程产生阻塞,比如一个线程从一个空的阻塞队列中取元素,此时线程会被阻塞直到阻塞队列中有了元素。当队列中有元素后,被

2016-05-05 15:21:29 732

原创 不惑JAVA之JAVA基础 - 多线程

Thread 和 Runnable这个没什么好说的,网上一大堆文章。主要记着:使用继承Thread类方式实现;使用实现Runnable接口方式实现。开发中有时会使用下面这种用法:new Thread(new Runnable() { @Override public void run() { ...... }; }).star

2016-05-05 14:35:26 574

原创 不惑JAVA之JAVA基础 - 反射

反射是什么反射机制简单理解就是指程序在运行的时候能够获取或修改自身信息。如果知道一个类的名称/或者它的一个实例对象, 就能把这个类的所有方法和变量的信息(方法名,变量名,方法,修饰符,类型,方法参数等等所有信息)找出来。如果明确知道这个类里的某个方法名+参数个数 类型,还能通过传递参数来运行那个类里的那个方法,这就是反射。原理概述先介绍运行时类型识别。运行时类型识别(Run-time Type Id

2016-04-28 16:14:42 525

原创 体验dubbo的简单方法

在之前的项目工作一直在用dubbo,但都没有时间去自己搭建和研究过源码。这几天看有点时间就自己动手搭建了一下。官方文档http://alibaba.github.io/dubbo-doc-static/User+Guide-zh.htm里面对dubbo做了详细介绍。体验步骤文档中的体验demo部署过于复杂,要到github下载源码、还要打包、还要部署什么的,太复杂。

2015-01-15 16:52:39 1926

原创 通过struts2实现Http只允许POST请求

前两天工作中需要做安全限制工作,今天把代码整理一下。整体的一个思路就是使用Struts2过滤器拦截请求,反射得到对应请求反正只允许POST请求。先看一下主要拦截器代码:import com.opensymphony.xwork2.Action;import com.opensymphony.xwork2.ActionContext;import com.opensympho

2014-12-11 10:51:24 5769

原创 系统执行阻塞分析及解决方案

1.  背景系统上线后,准备通过logQuery进行计算,并检验数据是否准确,但程序计算1w左右时停止。2.  分析系统运行原理系统通过logQuery系统执行Runtime方法调用shell脚本启动java补货计算系统。问题分析         在系统死锁时,通过jstack观察jvm中所有线程运行情况和线程状态。发现有一个线程处于runnable状态

2012-12-26 14:42:41 835

转载 好用的接口测试工具-soapui

soapui介绍  soapUI[1]是一个开源测试工具,通过soap/http来检查、调用、实现Web Service的功能/负载/符合性测试。该工具既可作为一个单独的测试软件使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。soapUI pro是soapUI的商业非开源版本,实现的功能较开源的soapUI更多。http://w

2012-12-21 10:37:09 1182

原创 项目管理PMP-扫盲篇

我服务了香港警队30年,认识不少人,也得罪不少人。不过在这30年,我学会了一件事:每一个机构,每一个部门,每一个岗位,都有自己的游戏规则,不管暗也好,明也好,第一步学会它,不过好多人还没有走到这一步就已经死了,知道为何?自以为是。第二步,就是在这个游戏里面把线头找出来,学会如何不去犯规,懂得如何在线球里面玩,这样才能勉强保持性命。(寒战)PMP(Project Management Profe

2012-12-20 15:01:46 684

转载 Java容器简介-总汇

容器包含List、ArrayList、Vector及Map、HashMap等;ArrayList和HashMap是异步的,Vector和HashTable是同步的,所以Vector和HashTable是线程安全的,而 ArrayList和HashMap并不是线程安全的。因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于 ArrayList和HashMap。

2012-12-20 14:29:52 398

PMP入门分享

关于PMP的一些基础知识点,领导大家进行学习的入门。

2012-12-20

空空如也

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

TA关注的人

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