- 浏览: 85112 次
- 性别:
- 来自: 广州
最新评论
-
taoyf2012:
在书上看到这个类,一查javaeye上就有大神完美的解释
Java 原子类 java.util.concurrent.atomic -
cnflood:
使用了Google Code 是不是表示代码要开源的
使用Google Code + SVN进行多人开发(转) -
softor:
装了诺顿360,也会被防吗?
oracle ORA-12170: TNS: 连接超时
文章列表
设置vim显示颜色
在用户目录下 .vimrc 文件 里面添加,没有就创建
.vimrc 文件添加 syntax on /off
Srping 静态属性注入
- 博客分类:
- Spring
<util:properties id="config" location="jdbc.properties"></util:properties>
@Value("#{config.username}")
@Value("#{config[username]}")
@Value("#{config['jdbc.username']}")
<context:property-placeholder location="jdbc.prop ...
2012-09-03
1、今天发现之前很SB的一个问题,本来JDK就有相应的接口,可惜自己当时没仔细看,没有把相关的接口弄明白,虽然后面也用了比较猥琐的方法解决了问题,但实现的代码跟性能可能差很多。
以后改进:
把相关的接口弄明白,理解相关的接口,不要遇到不明白的地方就得过且过。
还是接口问题,一句话,就是要弄明白,英语太烂了,相关的理解不到位,以后要改进。
Java 系统变量
System.getProperties();
System.getPropertie("line.separator");
path.separator:;
file.separator:\
line.separator:
user.dir:E:\sunlzx\workspace\workspace-sts-2.9.2.RELEASE\lzx-java
java.runtime.version:1.6.0_25-b06
os.arch:x86
java.io.tm ...
Java对象初始化顺序问题
- 博客分类:
- JAVA基础
package com.kenwublog.tmp;
public class A extends B {
public int a = 100;
public A() {
super();
System.out.println(a);
a = 200;
}
public static void main(String[] args) {
System.out.println(new A().a);
}
}
class B {
p ...
Debian6下Apache的安装
2012-04-25 10:25
cd /usr/local/soft
wget http://mirror.bjtu.edu.cn/apache//httpd/httpd-2.4.2.tar.gz
tar -zxvf httpd-2.4.2.tar.gz
wget http://labs.mop.com/apache-mirror//apr/apr-1.4.6.tar.gz
tar -zxvf apr-1.4.6.tar.gz
cd apr-1.4.6
./configure
make
make install
cd . ...
Debian 上安装 Nginx
- 博客分类:
- nginx
安装依赖的包:apt-get install libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev
监控配置:
通过web界面查看时Nginx需要开启status模块,也就是安装Nginx时加上 –-with-http_stub_status_module 然后配置Nginx.conf,在server点里面加入如下内容
location /nginx_status { stub_status on; access_log off; allow 192.168.1.100; 访问IP deny all; }
...
从JVM并发看CPU内存指令重排序(Memory Reordering)
The JSR-133 Cookbook for Compiler Writers
Java 原子类 java.util.concurrent.atomic
1、i++为什么是非线程安全的
i++其实是分为3个步骤:获取i的值, 把i+1, 把i+1的结果赋给i
如果多线程执行i++操作,没有同步的话,结果可能不正确
如两个线程同时获取i的值,然后各自+1后,赋给i。正确的情况下i的值应该是加了2,但这里其实加了1而且,前面的结果被覆盖了。
通常做法:synchronized (synchronized方法,synchronized变量), 但这样做效率不是最优的。
2、AtomicInteger的实现
主要依靠:1、volatile 保证了 ...
归并排序Merge sort
原理,把原始数组分成若干子数组,对每一个子数组进行排序,
继续把子数组与子数组合并,合并后仍然有序,直到全部合并完,形成有序的数组
举例
无序数组[6 2 4 1 5 9]
先看一下每个步骤下的状态,完了再看合并细节
第一步 [6 2 4 1 5 9]原始状态
第二步 [2 6] [1 4] [5 9]两两合并排序,排序细节后边介绍
第三步 [1 2 4 6] [5 9]继续两组两组合并
第四步 [1 2 4 5 6 9]合并完毕,排序完毕
输出结果[1 2 4 5 6 9]
合并细节
详细介绍第二步到第三步的过程,其余类似
第二步: ...
经典排序算法 - 基数排序Radix sort
原理类似桶排序,这里总是需要10个桶,多次使用
首先以个位数的值进行装桶,即个位数为1则放入1号桶,为9则放入9号桶,暂时忽视十位数
例如
待排序数组[62,14,59,88,16]简单点五个数字
分配10个桶,桶编号为0-9,以个位数数字为桶编号依次入桶,变成下边这样
| 0 | 0 | 62 | 0 | 14 | 0 | 16 | 0 | 88 | 59 |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |桶编号
将桶里的数字顺序 ...
位图排序是一种效率极高(复杂度可达O(n))并且很节省空间的一种排序方法,但是这种排序方法对输入的数据是有比较严格的要求(数据不能重复,大致知道数据的范围)。位图排序即利用位图或者位向量来表示集合。举个例子,假如有一个集合{3,5,7,8,2,1},我们可以用一个8位的二进制向量set[1-8]来表示该集合,如果数据存在,则将set相对应的二进制位置1,否则置0.根据给出的集合得到的set为{1,1,1,0,1,0,1,1},然后再根据set集合的值输出对应的下标即可得到集合{3,5,7,8,2,1}的排序结果。这个就是位图排序的原理。
一.位图排序的应用:
...
桶排序Bucket sort
1,桶排序是稳定的
2,桶排序是常见排序里最快的一种,比快排还要快…大多数情况下
3,桶排序非常快,但是同时也非常耗空间,基本上是最耗空间的一种排序算法
桶排序是另外一种以O(n)或者接近O(n)的复杂度排序的算法. 它假设输入的待排序元素是等可能的落在等间隔的值区间内.一个长度为N的数组使用桶排序, 需要长度为N的辅助数组. 等间隔的区间称为桶, 每个桶内落在该区间的元素. 桶排序是基数排序的一种归纳结果
算法的主要思想: 待排序数组A[1...n]内的元素是随机分布在[0,1)区间内的的浮点数.辅助排序数组B[0....n-1 ...
算法思想:(1)堆的定义:堆是满足下列性质的数列{r1, r2, …,rn}:若将此数列看成是一棵完全二叉树,则堆或是空树或是满足下列特性的完全二叉树:其左、右子树分别是堆,并且当左/右子树不空时,根结点的值小于(或大 ...
原码 补码 反码
<!--[if !supportLists]-->1、 <!--[endif]-->第一位表示符号,0代表正数,1代表负数。
<!--[if !supportLists]-->2、 <!--[endif]-->正数的原码,补码,反码都一样。
<!--[if !supportLists]-->3、 <!--[endif]-->负数不同
原码à反码:除符号位,其他取反
原码à补码:取补码+1
<!--[if !supportLists]-->4、 <!--[endif ...