- 浏览: 1115655 次
最新评论
-
Lixh1986:
Java并发编程:自己动手写一把可重入锁https://blo ...
Java之多线程之Lock与Condition -
Lixh1986:
http://win.51apps.com.cn/https: ...
temp -
ztwsl:
不错,支持很好
HttpServletRequest和ServletRequest的区别 -
guodongkai:
谢谢您能将知识精华汇编总结,让初学者们从原理中学会和提高。
javaScript之function定义 -
kangwen23:
谢谢了,顶顶
struts2中的ValueStack学习
文章列表
设计算法,求 x 的 n 次幂:pow(x, n)
算法一
public class Solution {
/*
* Solution 1: Time Limit Exceeded
*
* Test Case:
* x = 0.00001
* n = 2147483647
*/
public double myPow(double x, int n) {
if(x == 0) return 0;
if(n == 0) r ...
Algorithm之排序之堆排序(Heap Sort)
一、什么是堆
在讲述堆之前,首先看一下二叉树。
二叉树:
每个节点最多有两个子节点,且这两个子节点有左右次序之分。
1、满二叉树
二叉树的所有非叶子节点都被填满。
因此:一颗深 ...
Algorithm之排序之归并排序
一、归并介绍
动画1:
动画2:
归并排序(英语:Merge sort,或 mergesort),
是创建在归并操作上的一种有效的排序算法,效率为O(n log n)。
1945年由约翰·冯·诺伊曼首次提出。
该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,
且各层分治递归可以同时进行。
时间复杂度 O(n log n)
时间复杂度最优 O(n)
时间复杂度平均 O(n log n)
空间复杂度 O(n)
执行过程:
通过动画可以看出,归并排序的执行过程是:先分再排。
——先将最 ...
Java之正则表达式之简写符号
- 博客分类:
- java语言
// Pattern.
/*
digits : \d = [0-9]
words : \w = [A-Za-z0-9_]
space characters : \s = [ \t\r\n\v\f]
boundaries : \b = (?<=\W)(?=\w)|(?<=\w)(?=\W)
___________________________________________________________ ...
动态规划(DP: Dynamic Programming)
一、基本思想与策略
基本思想与分治法类似,也是将待求解的问题
- 分解为若干个子问题(阶段)
- 按顺序求解子问题,
- 前一个(或前有限个,一般不超过三个)子问题的解,为后一子问题的求解提供了有用的信息。
- 在求解子问题时,需要求得各种可能的解。这些解是累计关系,是当前子问题的最终解。
- 依次解决各子问题,最后一个子问题的解就是初始问题的解。
动态规划的子问题是可以用来判定结果的最短子问题,或是前后两个,或是前后三个,总之是有限个。
由于动态规划解决的问题多数有重叠子问题这个特点,为减 ...
copy books
Before the invention of book-printing, it was very hard to make a copy of a book. All the contents had to be re-written by hand by so called scribers. The scriber had been given a book and after several months he finished its copy. One of the most famous scribers lived in the 15th century ...
Java之消息推送之WebSocket
- 博客分类:
- java语言
一、问题背景
HTTP 协议是单向协议。
二、实现服务器端向客户端进行消息推送
http://www.cnblogs.com/best/p/5695570.html
三、WebSocket机制
WebSocket 是 HTML5 一种新的协议。它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯,它建立在 TCP 之上,同 HTTP 一样通过 TCP 来传输数据,但是它和 HTTP 最大不同是:
WebSocket 是一种双向通信协议,在建立连接后,WebSocket 服务器和 Browser/Client Agent 都能主动的向对方发送或接收数据, ...
TCP 创建连接中三次握手都做了那些事?
第一次:
客户端:在吗?
服务端:在。
第二次:
客户端:可用吗?
服务端:可用。你确定要用吗?
第三次:
客户端:是。我们开始吧。
服务端:好。
链接创建成功。开始通信。
——————————————————————————————————————
但是为什么一定要进行三次握手来保证连接是双工的呢,一次不行么?两次不行么?
我们举一个现实生活中两个人进行语言沟通的例子来模拟三次握手。
第一次对话:
老婆让甲出去打酱油,半路碰到一个朋友乙,甲问了一句:哥们你吃饭了么?
结果乙带着耳机听歌呢,根本没听到,没反应。甲心里想:跟你说话也 ...
Java 内存模型之堆内存(Heap)
一、背景知识:内存类型介绍
1、什么是 Perm Gen?
Perm Gen : Permanent Generation
Perm Gen 区是一个特殊的JVM内存区,因为它用来存储用来描述 Class 的
元数据(Class 可以不属于Java语言的一部分,也可 ...
Java之多线程之Callable与Future
从 Java 5 开始出现了 java.util.concurrent 包,该包在多线程环境中应用广泛。
一、 java.util.concurrent.Callable
Callable 接口 与 Runnable 接口类似,不同的是它们的唯一的 run 方法:
1、Callable 有返回值,Runnable 没有。
Callable 的 run() 方法使用了 泛型类,可以返回任意类型的值。
2、Callable 抛出异常 ,Runnable 没有抛出。
同时 java.util.concurrent.Executors ...
Java之设计模式之Singleton
Java Singleton 单例设计模式属于四大设计模式之生产设计模式的一种。
该设计模式看似简单,但是涉及到许多注意点。
一、Java Singleton 简介
Java Singleton 单例设计只允许在JVM中产生类的一个实例对象。
因此这样的类不能提供对外的构造方法产生实例,而是提供一个 public 方法,
返回(指向)某个实例的引用。
Java Singleton 单例设计常用于:
1、Logging(日志)
2、Driver(驱动)
3、Caching(缓存)
4、Thread Pool(线程池)
5、Abstract Facto ...
Java之多线程之Lock
接上文
在多线程环境中,大部分情况下,使用 synchronized 关键字可以满足需求。
但是其也存在不足。于是 java.util.concurrent.locks 包出现了。
第一篇
背景
在Java中实现线程同步的传统方法是使用synchronized关键 ...
Java之线程同步与安全(Thread Synchronize & Safe)
一、问题背景
Java语言提供了多线程的功能。
多线程创建于相同的Object,多线程间共享Object的变量或属性。
但是,当线程对共享的数据进行读写时,会导致数据的不一致(data inconsistency)。
二、线程同步情景分析
数据不一致的原因是由数据操作的非原子性引起的。
即:更新任何属性或变量,非一步完成,而是需要三部:
1、读取现在的值。
2、进行必要的操作以得到要更新的值。
3、把更新的值写入到引用的变量或属性中。
来看一个简单的例子:
多个线 ...
前文讲到“属性继承”所存在的问题:重复。本文专注于“原型(prototype)继承”。
背景知识:什么是函数的 prototype 属性?
函数在定义(创建)时,会自动被添加一个 prototype 属性。
1、prototype 属性是一个空对象 {},然后被 ...