发表于: 2017-08-04 23:20:44
2 969
【说明】今天又投了十家公司,只有两个查看,一个有意向,两个拒接,其它没反应,,,
一:今天完成
1, UUID
除了自增id之外,经常被用作主键的还有 uuid
为什么会有这样一个东西呢?因为作为判断用户或者实体的唯一性,除了自增long型之外,
为了突出独特性,可以用 更复杂的 uuid 做为标识
比如在文件名字的命名上面,如果采用获取系统时间作为文件名字是有可能出现 重复的,比如多核多线程 的程序 运行的时候,就可能出现重复。
为此java提供了相应的工具类,用来根据 mac地址 网络号 系统时间 组合生成 唯一的标识符,那就是uuid。
import java.util.UUID;
public static void main(String[] args)
{ for(int i=0;i<10;i++){
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
System.out.println(uuid);
}
}
2,对于网站上面的实时更新字段,可以如何考虑?
因为不可能所有的数据都是实时更新的,而是仅限于某些场景如聊天室、私信等。
所以可以采用的方法就是轮询、长连接等等了,涉及到的技术包括 ajax、comet、websocket 等等
3,举例说说常用的设计模式
1)单例模式
构造方法私有化,声明实例化对象,静态方法返回实例
private SingletonTest() {
}
//单例模式的实现:饿汉式, 线程安全 但效率比较低
private static final SingletonTest instance = new SingletonTest();
public static SingletonTest getInstancei() {
return instance;
}
private SingletonTest() {
}
private static SingletonTest instance;
//懒汉式, 非线程安全
public static SingletonTest getInstance() {
if (instance == null)
instance = new SingletonTest();
return instance;
}
2)工厂设计模式
作为接口和子类的一个过度,动态取得对象
动物接口 狗实现 猫实现
工厂类 getInstance( String className){
动物 a = null;
if(符合一){}
if(符合二){}
return a;
3)代理设计模式
真实类 代理类
代理类调用真实类里面的方法,除此之外自己也提供一些其它切面功能
NetWork
Real(brower) Proxy(Proxy check brower)
4,Java内存模型 和性能调优(只是看了看 一些名词)
JVM 可以分成 New Old Perm
年轻代(存放刚刚分配的Java对象)
年老代(经过垃圾回收但是没有收掉的被copy到 年老代)
永久代(存放 Class Method 元信息)
垃圾回收算法:Serial算法 并行算法 并发算法
5,IO流 和 多线程总结
开启新线程 继承 Thread ---重写run方法 或者 是实现 Runnable---实现 run方法--创建自定义Runnable对象
6,什么时候需要同步?
有多段代码同时执行,希望某代码的cpu 不要切换线程
如果同步,同一时间只能执行一段
怎么同步?
synchronized 关键字 加上锁对象
什么时候需要通信?
希望线程有规律的执行
7,关于 同步 常见的面试题(简单对比)
StringBuffer 和 StringBuilder(字符串变量)
StringBuffer 是线程安全的, 效率低
StringBuilder 是线程不安全的, 效率高
Vector 和 ArrayList
Vector 是线程安全的, 效率低
ArrayList 是线程不安全的, 效率高
Hashtable 和 HashMap
Hashtable 是线程安全的, 效率低
Hashtable 不能存 null 键和 null 值
HashMap 是线程不安全的, 效率高
HashMap 可以存储 null 键和 null 值
二:明天计划
周六的话应该是不会让我去面试,那我可以 看点 数据库相关的 和一些面试题
三:疑难问题
无
四:思考总结
每天不停地刷面试题也是够够的
评论