- 浏览: 12422 次
-
最新评论
文章列表
Versant 收购了这个产品。
关于db4o 维基百科详细介绍了:
http://en.wikipedia.org/wiki/Db4o
db4o:
http://www.db4o.com/
用这个做了些demo,初步的感觉:
应该是使用了java序列化。
具备了数据库的一些基本特性,如:事务,索引
定位是一种嵌入式的数据库,估计多数用途和sqlite差不多,也可做c/s应用
根据维基百科上的介绍好像也可以做集群,但是replication需要代码处理,而不能自动化。
当初次见到hibernate这个东西的时候,惊叹关系型的那种数据可以用对象的形式来持久化,瞬间有种:扁平的飞机场 变为 饱满的 ...
下面是看论坛时网友提到4到5年java程序员掌握的东西
1、对JAVA虚拟机的了解,比如:类的装载器,双亲委托模型,方法区、JVM虚拟机栈,堆的理解。
2、对多线程的了解,多涉及如何处理线程保护。
3、系统架构的设计和性能的优化,多集群通信和负载均衡相关开源软件的使用。
4、开源缓存的使用如:Redis、membercache在相目中的应用。
5、JAVA的一些基本算法。
阿里的电话面试1和2是必问的。
另外看到有网友说会问到:
容器里的一些原理,比如hashmap和hashtable
public interface ListIterator<E> extends Iterator<E>
ListIterator中继承了Iterator。为什么还要将Iterator的方法重载一边呢?
另外concrete collection比如:ArrayLIst为什么在extends AbstractList之后还要去 implements list呢?
不晓得哪位大侠帮我解惑
设计模式三
- 博客分类:
- design patterns
state工厂有简单工厂模式---->工厂方法模式
package com;
public class StateTest{
public static void main(String[] args) {
Man m = new Man();
m.request();
StateFactory sf = new OldStateFactory();
m.setState(sf.getState());
m.request();
}
}
abstract class State{
private String s;
abst ...
设计模式二
- 博客分类:
- design patterns
把state当成产品来生产,应用工厂模式
package com;
public class StateTest{
public static void main(String[] args) {
Man m = new Man();
m.request();
m.setState(StateFactory.getState("adult"));
m.request();
}
}
abstract class State{
private String s;
abstract public void hand ...
状态设计模式
- 博客分类:
- design patterns
package com;
public class StateTest{
public static void main(String[] args) {
Man m = new Man();
m.request();
m.setState(new ChildrenState());
m.request();
}
}
abstract class State{
private String s;
abstract public void handle(Man m);
public String getS() {
...
设计模式的一些想法
- 博客分类:
- design patterns
感觉设计模式里经常把并不是很具体的一个概念定位成一个类的较色。
例如 command,state模式把与之相对应的行为分离出来。还有策略模式,把算法独立出来。
jdk中的设计模式
- 博客分类:
- design patterns
Decorator模式
Collections.checkedList(l, Integer.class).add("hello");
其中线程安全部分也是,只是创建过程夹杂了其他的模式
jdk7中sort内部算法改变
- 博客分类:
- Algorithms
在jdk7里sort的算法改变了
以Arrays.sort为例:
public static <T> void sort(T[] a, Comparator<? super T> c) {
if (LegacyMergeSort.userRequested)
legacyMergeSort(a, c);
else
TimSort.sort(a, c);
}
LegacyMergeSort.userRequested这个是系统变量
Boolean b = j ...
最近在看设计模式,有些想法记录下来
灵活的可插拔,Arrays.sortArrays.sort包含了template method Pattern和Strategy Pattern
Arrays.sort(ducks, new Comparator<Duck>() {
@Override
public int compare(Duck o1, Duck o2) {
// TODO Auto-generated method stub
if (o1.getWeight() < o2.getWeight()) {
return ...
今天处于好奇看了下java里原生数组到底是什么类型的
int mod = int[].class.getModifiers();
System.out.println(Modifier.isAbstract(mod));
System.out.println(Modifier.isPublic(mod));
System.out.println(Modifier.isFinal(mod));
结果都为:true
为什么设计成abstract的呢?另一方面自定义的class确实也不允许abstract final这样。
effective java在第二章Creating and Destroying Objects
中提到用 静态工厂方法的三个好处:
1.方法名的可读性
2.可以instance-controlled
实现singleton,flyweight模式
实现noinstantiableclass
实现immutable class
我想之所以静态工厂方法能够可以很好的instance-controlled,是因为讲创建的逻辑过程分离到了工厂方法里,能够很好的去controll
3.基于接口编程
jdk中的例子:
Boolean.valueof(),很好的一个flyweight和静态工厂方法的 ...
Learning the art of programming, like most other disciplines,consists of first learning the rules and then learning when to break them
--<<effective java>>