
Java
文章平均质量分 78
treemanfm_2010
这个作者很懒,什么都没留下…
展开
-
What is the difference between interface and abstract class
在国外的一个论坛上看到一个关于抽象类和接口比较的帖子,其中有一篇感觉很有道理: Interface versus Class Inheritance is pretty easy once you understand it. There is a very easy way to distinguish ...原创 2011-08-02 11:06:17 · 181 阅读 · 0 评论 -
数据结构应用回顾之串(一) 常见的字符串运算
常见的字符串运算的各种算法:1、字符串的逆转2、给定字符串s1,s2判断s2是否是s1的子串3、给定字符串s1,s2求解s1和s2的最长公共子序列4、给定字符串s1,s2,删除s1中所有s2的子串5、字符串的通配符匹配6、求解字符串s中符合指定规则的子串数量 ...2014-04-17 09:51:54 · 212 阅读 · 0 评论 -
数据结构应用回顾之Stack(三) N皇后问题 非递归实现
N皇后问题使用stack的非递归实现 package com.xx.dataStructure.stack;class Point { int x; int y; int value; Point(int x ,int y){ this(x,y,0); } Point(int x ,int y,int value){ this.x...2014-04-15 22:56:09 · 186 阅读 · 0 评论 -
数据结构应用回顾之递归(一) N皇后问题
问题: 求解N皇后问题的所有可能的解 package com.xx.dataStructure.stack;//求解N皇后问题的所有解public class Queen { private int solution = 0; private int n; public Queen(int n){ assert(n > 0)...2014-04-15 12:23:24 · 146 阅读 · 0 评论 -
数据结构应用回顾之Stack(二) 迷宫问题
迷宫问题,一般采用回溯法,利用stack节点探测,算法复杂度O(n^2),好像采用队列也可以实现,下片日志再使用队列试试。 package com.xx.dataStructure.stack;enum Direction { east, south, west, north, nothing}class Position { int x; int...2014-04-14 16:30:31 · 174 阅读 · 0 评论 -
数据结构应用回顾之Stack(一) 数制转换
栈就是一种可以实现“先进后出(或者叫后进先出)”的线性数据结构,是普通线性结构的一个子集。他的特殊性在于他的操作受限,他只能够在表尾进行插入和删除操作的线性表,是数据“后进先出LIFO”,last in first out。 本文简单的实现了stack的基本操作,并写了一个数制转换的代码。 stack 代码 package com.xx.data...2014-04-14 12:50:53 · 272 阅读 · 0 评论 -
如何检查一个单向链表上是否有环
1, 最简单的方法, 用一个指针遍历链表, 每遇到一个节点就把他的内存地址(java中可以用object.hashcode())做为key放在一个HashMap中. 这样当HashMap中出现重复key的时候说明此链表上有环. 这个方法的时间复杂度为O(n), 空间同样为O(n)。2, 使用反转指针的方法, 每过一个节点就把该节点的指针反向,如果单链表存在环,那么遍历指针会回到头节点,可以...2014-04-13 16:27:50 · 164 阅读 · 0 评论 -
实战SPECjvm2008
SPECjvm2008是一个观测JRE运行性能的基准测试套件。它的测试用例涵盖了大部分java基础应用场景,是架构选型和JVM性能评测不可多得的利器。 SPECjvm2008 官方网站 : http://www.spec.org/ 1、安装jdk 1.1 切换到root账号(能够有修改/etc/profile的权限的用户) 1.2 下载和安装jdk把jdk...原创 2014-04-02 11:16:54 · 2913 阅读 · 0 评论 -
What is a Java virtual machine?
What is a Java virtual machine?Simply speaking, a JVM is the software module that executes Java application bytecode and translates the bytecode into hardware- and operating system-specific instru...原创 2014-04-01 11:51:19 · 203 阅读 · 0 评论 -
计算java对象的大小的方法
最近这段时间在看Ehcache的源码,突然想起如何估算内存中的缓存空间的大小呢,缓存空间 = ∑ object_1 + object_2 + ... + object_N ,就必须计算每个缓存对象的大小。我们知道java内存分为两种,堆内存和栈内存,栈是Java线程运行的独立空间,而堆内存是多线程运行的公共空间。堆是java对象实际存储的地点。那么计算对象大小就是计算对象在堆中占用内存空...原创 2014-03-31 17:59:03 · 324 阅读 · 0 评论 -
详细分析Java单例的几种写法(一)
单例模式简介单例模式是软件设计模式中最简单的一种设计模式。从名称中可以看出,单例的目的就是使系统中只能包含有一个该类的唯一一个实例。单例模式最初的定义出现于《设计模式》(艾迪生维斯理, 1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”对于系统中的某些类来说,只有一个实例很重要...原创 2014-03-25 14:58:44 · 162 阅读 · 0 评论 -
java 并发(4) 读者写者问题的几种实现方法及性能比较
读者-写者问题1、读不阻塞其他读2、读阻塞其他写3、写阻塞其他读与其他写 问题分为三种:读者优先、写者优先、公平竞争 读者优先:如果当前运行为读线程,则后续的读线程可以不阻塞,直接读 如果当前运行未写线程,则随机选择阻塞的读或写线程,进行执行写者优先:无论当前为读、写线程运行,优先选择阻塞的写线程 ...2014-05-04 12:08:58 · 341 阅读 · 0 评论 -
java 并发(3) 经典死锁问题回顾
最经典的死锁问题当属 哲学家进餐问题。2014-05-03 16:25:33 · 127 阅读 · 0 评论 -
java 并发(2) 生产者和消费者问题的几种实现
有几种实现方法,一种是通过临界缓冲区的wait和notify来协调多个线程的并发,一种可以借用jdk 1.5+自带的BlockingQueue来实现,还有一种可以通过jdk1.5+的信号量机制来控制并发。 jdk1.5- 采用Object的wait 和notify方法来实现:package com.xx.concurrent.commonUse;import java.ut...2014-05-03 16:13:37 · 101 阅读 · 0 评论 -
java 并发(1) 理解Thread.join()
thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。t.join(); //当前线程中加入线程t,当t执行完成后,当前线程才继续进行。t.join(1000); //等待 t 线程,等待时间是1000毫秒,无论t是否执行完,主线程1000s后都将会执行...2014-05-03 14:25:58 · 148 阅读 · 0 评论 -
数据结构应用回顾之杨氏矩阵
Young氏矩阵 一个m*n的Young氏矩阵是一个m*n的矩阵,其中每一行的数据都从左到右排序,每一列的数据都从上到下排序。Young氏矩阵中会有一些∞数据项,表示不存在的元素。Young氏矩阵可以存放m*n个有限的数。常见Young氏矩阵的相关操作包括:1、向一个不满的Young氏矩阵中插入一个元素x,并保持Young氏矩阵的性质2、根据一个数组,构建一个m*n的Young氏...2014-04-23 14:15:29 · 194 阅读 · 0 评论