排序:
默认
按更新时间
按访问量

java servlet 目录

java servlet拾遗(1)-Servlet总揽 java servlet拾遗(2)-请求转发、包含、重定向 java servlet拾遗(3)-servlet 线程安全问题 java servlet拾遗(4)-会话  java servlet拾遗(5)-过滤器  java...

2016-07-18 20:53:43

阅读数:9

评论数:0

java concurrency 目录

多线程(1)-java多线程入门  多线程(2)-使用synchronized进行线程同步 多线程(3)-基于Object的线程等待与唤醒

2016-07-18 20:51:54

阅读数:2

评论数:0

多线程(3)-基于Object的线程等待与唤醒

概述 在使用synchronized进行线程同步中介绍了依赖对象锁定线程,本篇文章介绍如何依赖对象协调线程。 同synchronized悲观锁一样,线程本身不能等待与唤醒,也是需要对象才能完成等待与唤醒的操作。 本篇主题是Object等待与唤醒。 1.在Object上有定义了以下几个方...

2016-07-18 20:45:00

阅读数:4

评论数:0

java I/O 模型简述

概述 从同步与异步&阻塞与非阻塞的概念,到具体的I/O模型,再到具体的Java语言实现,都是层层递进,本篇就从Java语言来看I/O模型的大概情况。 整个Java I/O模型,大致可以分为三类 BIO:JDK1.4之前的阻塞IO NIO:JDK1.4及以后的版本...

2016-07-14 16:42:47

阅读数:6

评论数:0

同步与异步&阻塞与非阻塞

一、同步与异步的区别   1、概念介绍 同步:所谓同步是一个服务的完成需要依赖其他服务时,只有等待被依赖的服务完成后,依赖的服务才能算完成,这是一种可靠的服务序列。要么成功都成功,失败都失败,服务的状态可以保持一致。 异步:所谓异步是一个服务的完成需要依赖其他服务时,只通知其他依赖...

2016-07-06 16:45:40

阅读数:5

评论数:0

ClassLoader原理分析

前文:Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的。 类装载器所做的工作实质是把类文件从硬盘读取到jvm运行内存中,或者从网络中读取到jvm运行内存中 JVM在加载类的时候,都是通过ClassLoader的loadClass()方法来加载clas...

2016-06-27 12:12:46

阅读数:9

评论数:0

使用AtomicBoolean优雅初始化资源

在很多场景中,都需要用到加载资源等初始化操作,而且只需要初始化一次,那么问题就有了, 如何判断为初次操作 如果是并发处理,如何保证只初始化一次,不会重复初始化   一、AtomicBoolean神器 java.util.concurrent.atomic.AtomicBoolea...

2016-06-27 11:55:11

阅读数:7

评论数:0

spring aop-代理篇,java Proxy代理&cglib代理

一、java原生代理 1、代理概念介绍 为某个对象提供一个代理,以控制对这个对象的访问。 代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理 对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行 完请求后的后续处理。 2、代理分类...

2016-06-26 17:22:07

阅读数:7

评论数:0

maven-依赖管理最佳实践

一般一个父pom项目下面常常有好几个子pom项目模块,而且几个子模块依赖的很多jar包,比如groupId/artifactid/version都是相同的,这样有三个弊端: 造成jar包重复依赖 造成版本号重复依赖 升级某个版本号时,要修改好几个子模块   一、在父模块中定义全部...

2016-06-24 12:06:26

阅读数:4

评论数:0

计算机字符编码从0/1到UTF-8

在计算机内部,所有的信息终于都是表示为0和1去展示,但是如何表达出那么多的字符呢? 一、二进制位(bit) 在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态。 二、字节(byte) 通过八个二进制位就可以组合出256种状态,这被称为一个字节(b...

2016-06-24 10:58:58

阅读数:4

评论数:0

JVM学习(2)-JVM垃圾回收算法

java虚拟回收垃圾对象时,一份分为两步: 1、虚拟机在回收堆空间在之间,会先判断哪些对象已经死亡; 2、然后再对这些死亡对象通过特定的回收算法进行回收   一、判断对象是否死亡 1、引用计算器算法 给对象添加一个引用计算器,如果其他地方引用它,计算器就加1,当引用失效时,计算器就...

2016-02-01 16:40:32

阅读数:4

评论数:0

JVM学习(1)-JVM运行时数据区

导言:java是基于一门虚拟机的语言,所以了解并且熟知虚拟机运行原理非常重要。   先整体看一张java虚拟机技术图:   一、堆 1、方法区,Method Area,主要存放已被虚拟机加载的类信息、常量、静态变量、及时编译器编译后的代码等数据。 又称为永久代。   比如s...

2016-02-01 16:36:09

阅读数:5

评论数:0

多线程(2)-使用synchronized进行线程同步

前文:java中多线程的锁,分为两种,悲观锁和乐观锁。使用synchronized作为锁的形式,就是悲观锁,又称为同步锁。   一、synchronized原理 在java中,每一个对象有且仅有一个同步锁。同步锁是依赖于对象而存在。 当我们调用某对象的synchroni...

2016-01-20 16:41:00

阅读数:5

评论数:0

多线程(1)-java多线程入门

一、线程实现方式   线程实现有两种方式:继承Thread类,实现Runnable接口 1、继承Thread类 public class MyThread extends Thread{ @Override public void run() { ...

2016-01-20 15:15:44

阅读数:5

评论数:0

查找算法(1)--二分查找

简介:  二分查找算法是针对有序数组进行查找某个元素的算法,时间复杂度为Ο(logn) 。   一、主要步骤 有序数组arr(假设从小到大),待查找元素x (1)、直接从中间一个元素开始找,mid = (0+arr.length)/2 (2)、如果arr[mid]大于x,说明目标索引在...

2015-12-28 17:51:28

阅读数:5

评论数:0

排序算法(4)--归并排序

简介:归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。   一、主要步骤 ...

2015-12-28 16:35:50

阅读数:5

评论数:0

排序算法(3)--插入排序&希尔排序

一、插入排序  (1)、主要思路: 假设数组分为两部分,有序部分【0~i-1】,无序部分【i~N】。初始有序部分只有一个元素。 从有序部分【0~i-1】中找到一个值小于(或大于)数组【i】的位置,即为将要排序的数据 把数组【i】插入到适当的位置,其他的数据往后转移   (2...

2015-12-26 21:09:41

阅读数:5

评论数:0

数据结构&算法目录

-----------------------------排序算法----------------------------- 排序算法(1)--冒泡排序&快速排序 排序算法(2)--选择排序&堆排序 排序算法(3)--插入排序&am...

2015-12-25 17:11:29

阅读数:28

评论数:0

排序算法(2)--选择排序&堆排序

继续上篇的交换排序--冒泡排序&快速排序,本篇介绍选择排序和堆排序   一、选择排序 非常的简单直观,每次找出最小或者最大的值存储起来,继续找剩下的值存储起来,直达最后一个元素。 从arr[0]~arr[N]中找出最小的值,放在arr[0],此时arr[0]...

2015-12-25 17:07:50

阅读数:6

评论数:0

排序算法(1)--冒泡排序&快速排序

已经好久没写算法了,脑袋都生锈了。。   首先排序分为四种:        交换排序: 包括冒泡排序,快速排序。       选择排序: 包括直接选择排序,堆排序。       插入排序: 包括直接插入排序,希尔排序。       合并排序: 合并排序。   本篇对交换排序进行...

2015-12-23 18:58:45

阅读数:5

评论数:0

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