自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ReenTrantLock技术内幕(一)

AbstractQueuedSynchronizer(AQS)是JUC的基石,是由伟大的Doug Lea设计完成。具体的设计过程可以看他写的论文,介绍的非常详细。AQS其实是一个抽象类,但内部已经帮我们实现了许多的核心方法。通过利用CAS操作与改进CLH队列来完成同步操作并且提供了一种细颗粒的锁机制,我们知道ReenTrantLock的底层就是通过实现AQS来完成同步操作。在AQS中提供了下面五个方

2016-03-19 23:54:58 289

原创 JAVA并发原理(下)

VolatileVolatile关键字用于确保共享数据的可见性与有序性,但是并不能保证方法的原子性,在程序中对Volatile关键字使用得当的话,它比synchronized的使用和执行成本会更低,因为他不会引起线程的上下文切换和调度。先讲一下重排序,重排序是什么?我们所编写的程序会经过编译器编译,然后写入内存中。在执行时,CPU会从内存中读取并执行,在这里,编译器与CPU为了提高程序执行时的效率,

2016-03-02 23:09:38 864

转载 Java NIO:浅析I/O模型

也许很多朋友在学习NIO的时候都会感觉有点吃力,对里面的很多概念都感觉不是那么明朗。在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。下面本文先从同步和异步的概念 说起,然后接着阐述了阻塞和非阻塞的区别,接着介绍了阻塞IO和非阻塞IO的区别,然后介绍了同步IO和异步IO的区别,接下来介绍了5种IO模型,最后介绍了两种和高性能IO设计相关的设计模式(Reactor和Pr

2016-02-29 23:56:24 268

原创 java并发原理(上)

我们知道CPU是用来处理、运算计算机所有数据的功能模块,而我们的程序在运行时会将数据保存在内存中,CPU会去内存中读取计算时所使用到的数据。随着CPU运算速度的升级,出现了CPU运算速度与内存读写速度不匹配的情况,为了解决CPU在运行时总是等待从内存中读写数据从而导致CPU空闲而影响效率的问题,在CPU内部集成了一定量的寄存器与高速缓存,来提高CPU在处理数据时的效率。现代CPU的架构模型虽然有多种

2016-02-22 22:50:33 415

转载 JAVA多线程和并发基础面试问答

多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点)Java多线程面试问题1. 进程和线程之间有什么不同?一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的

2016-02-02 17:18:08 290

原创 java中Executor线程池讲解与实例

近期研究了一下java自带的线程池工具Executo,所以记录一下学习的内容。什么是线程池? 线程池是预先创建线程的一种技术。线程池在还没有任务到来之前,创建一定数量的线程,放入空闲队列中。这些线程都是处于睡眠状态,即均为启动,不消耗CPU,而只是占用较小的内存空间。当请求到来之后,缓冲池给这次请求分配一个空闲线程,把请求传入此线程中运行,进行处理。当预先创建的线程都处于运行状态,

2016-02-02 15:24:53 2455

转载 Java 7之基础 - 强引用、弱引用、软引用、虚引用

1、强引用(StrongReference)         强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下:[java] view plain copy print?Object o=new Object();   //  强引用        当内存空间不足,Java虚拟机宁愿抛出Ou

2016-01-22 10:18:11 305

原创 JAVA类的初始化顺序

java类的初始化顺序是面试中常问到的一个问题,下面通过一个加载例子就可以让我们深入了解java类的加载顺序,而不是死记硬背。 先定义一个父类Fatherpublic class Father { public static String str1 = "Father静态字符串"; public String str2 = "Father普通字符串"; static {

2016-01-19 22:24:07 351

原创 二叉树非递归遍历实现-java版本

最近看了一下二叉树非递归遍历的实现,现在将思路写出来,若有不对,希望大家能够指出 //二叉树非递归先序遍历 private void preOrderBSTByUnRecur(Node head){ //先判断头节点是否为空 if(head != null){ Stack<Node> stack = new Stack<Node>();

2015-12-12 10:52:58 610 1

原创 二叉树的实现Java版本

在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 二叉树每个节点至多有两个子节点:左子节点与右子节点。 二叉树的第i层最多有2^(i-1)个子节点。 深度为k的二叉树的所有节点数量不超过2^k-1个。 完全二叉树:深度为k都二叉树,除了第k层,其余各层

2015-11-17 21:19:03 297

原创 笔试面试中的字符串题目思路与简单解析JAVA版本

分享一些在笔试或者面试中会遇到的字符串类型的题目,这些题目都是我四处收集起来或者自己想到就做的题目,可能不是最优解,仅供大家参考,若有更好的方法也希望能够一起交流,本文会不定时的更新,希望能给需要用到的人带来帮助。 1.

2015-11-16 19:06:11 340

原创 菜鸟级Spring AOP开发简介

最近用到了AOP编程,由于之前对这方面一直稀里糊涂的,所以打算写这篇文章来巩固一下自己的知识。1.什么是AOP?AOP是Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。在大型程序中,有许多重复的,不可少的功能,如日志记录、权限检查等功能,它们散落在我们程序的各个角落,如果我们有一天对这些功能的接口进行

2015-11-15 16:44:20 360

原创 基础排序算法与二分查找算法Java版本(下)

/** * Created by Alvin on 15/11/11. */ public class Sort {public static void swap(int[] temp ,int a,int b){ int t = temp[a]; temp[a] = temp[b]; temp[b] = t;}//选择排序,从无序数组中选出一个数值插入至数组中

2015-11-15 00:57:28 467

原创 链表基础操作与常见题目Java实现

好久没有关注数据结构的题目了,最近回顾了一下,链表的基础题目大概有以下几种,用java实现了一下,大部分题目根据一下链接而来 http://www.jb51.net/article/71885.htm自己实现了一遍,收益良多,所以分享给大家。/** * Created by Alvin on 15/11/13. */public class LinkList { //链表头

2015-11-13 22:58:29 313

原创 基础排序算法Java版本(上)

由于java对各类算法都已经做了封装,所以很少使用java来写算法,为了巩固一下一些基本的算法,所以这次是用java来实现基本算法,若有错误的地方,希望大家能够指正。public class Sort { public static void swap(int[] temp ,int a,int b){ int t = temp[a]; temp[a] = te

2015-11-11 20:50:04 346

原创 Collection探究之HashSet

HashSet存储元素的本质是利用HashMap的方法存储,所以存储的元素是无序的,不可重复的,每个存入的元素都是独一无二的,在HashSet中不允许存储null值。下面,我们来看下HashSet的源码。1. HashSet的定义public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, j

2015-11-07 09:02:16 313

原创 Collection探究之HashMap

在讲hash map之前先简单的讲讲hashcode。hash意思为散列,它能将任意长度的输入,通过散列算法的计算,输出固定长度,该输出就为散列值(hashcode)。 为什么会需要hashcode呢?可以想象我们需要将不同的元素存放入集合,为了快速查找与区分它们,可以使用hash算法将各个元素映射成为固定长度的hashcode,如:王--1、而--2、你--3……这样,根据不同的hash

2015-11-01 09:11:10 349

原创 Collection探究之Vector

Vector与ArrayList一样内部是由数组组成的,它也是一个动态数组,但是由于其内部实现了线程安全机制,所以在性能方面较差,使用的次数也没有ArrayList那样频繁,下面我们来看一看Vector的源码。1.Vector的定义public class Vector<E> extends AbstractList<E> implements List<E>, RandomAcce

2015-10-31 09:37:18 370

原创 Collection探究之LinkedList

LinkedList与ArrayList一样都是List的实现类,但是它内部结构与ArrayList有着极大的不同。LinkedList内部是由一个双向的链表组成,由链表的特征我们可以知道,LinkedList它插入元素的效率非常高而要查找元素的话因为需要遍历整个链表所以性能比较差。1.LinkedList类定义public class LinkedList<E> extends Abstr

2015-10-25 09:35:01 413

原创 Collection探究之ArrayList

ArrayList是我们在平时使用的最多的集合类之一,其本质原理为由数组组成的链表。由数组的特性我们可以得知在查找数据时,可以根据数组的下标来快速定位我们想查询的数据,效率非常高。但是也具有相应的缺点,由于数组是连续的,所以在插入数据时会牵扯到数组的复制与扩容且在多线程环境下是不安全的,因此ArrayList适合查询多,数据插入少的场合。下面我们来对ArrayList的源码进行探究,俗话说的好,知己

2015-10-24 14:02:50 248

原创 springMVC配置spring AOP功能中遇到的问题

由于在开发过程中我们会将一些比较共用方法提取出来,采用spring AOP来对其进行管理,在各模块中将方法进行织入,但是在springMVC与spring整合过程中,我出现了一些问题,现在记录下来,方便大家参考。 我出现的问题是: 我的spring AOP配置是正确的,但是我的方法却怎么无法织入到目标上,经过查询发现,原来在对spring配置与springMVC配置过程中,若采用注解自动扫描包方

2015-10-02 20:57:44 397

原创 SpringMVC开发过程中的中文乱码问题

相信大家在开发初期遇到中文乱码问题一定是一头雾水,不是数据库乱码了就是页面乱码了或者传值时乱码。其实解决乱码的途径很简单,就是统一编码与解码的类型,我把自己遇到的乱码问题整理出来,希望能够对大家有用。首先需要对ide下的编码做统一,我使用的是idea,在页面下面如图所示都有文件编码类型,选择utf-8: 配置完后,需要对idea的全局编码也进行配置,在idea的配置中进行设置,Preference

2015-09-20 14:12:16 3915 1

原创 菜鸟级springmvc+spring+mybatis整合开发用户登录功能(下)

昨天介绍了mybatis与spring的整合,今天我们完成剩下的springmvc的整合工作。要整合springmvc首先得在web.xml中配置springmvc的前端控制器DispatcherServlet,它是springmvc的核心,为springmvc提供集中访问点,springmvc对页面的分派与调度功能主要靠它完成。在我们之前配置的web.xml中加入以下springmvc的配置:we

2015-09-09 18:25:59 1402 1

原创 菜鸟级springmvc+spring+mybatis整合开发用户登录功能(上)

由于本人愚钝,整合ssm框架真是费劲了全身的力气,所以打算写下这篇文章,一来是对整个过程进行一个回顾,二来是方便有像我一样的笨鸟看过这篇文章后对其有所帮助,如果本文中有不对的地方,也请大神们指教。一、代码结构整个项目的代码结构如图所示: controller为控制层,主要用于对业务模块的流程控制。 dao为数据接入层,主要用于与数据库进行连接,访问数据库进行操作,这里定义了各种操作数据库的接

2015-09-08 21:31:31 3342 2

空空如也

空空如也

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

TA关注的人

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