摘要: 多线程中stop()方法和suspend方法为什么不建议使用? 答:不建议使用这2种方法的原因,是因为使用stop方法会强行终止线程的所有锁定,如果对象处于一种不连贯的状态,那么损坏的对象对其他线程可见,这有可能导致不安全的操作。 suspend方法可能会发生死锁,所以也不建议使用 阅读全文
posted @ 2019-02-15 23:17 余总出去浪 阅读(1374) 评论(0) 推荐(0) 编辑
摘要: String s = new String(“abc”); 可能产生几个对象? 答:可能产生1和或者2个对象。 通过new String()方法产生的字符串,先会在常量池去查询有木有abc的对象,如果没有,则会在常量池里开辟一个空间,存放abc,紧接着,将拷贝此对象到堆中产生一个对象。 如果有,则堆 阅读全文
posted @ 2019-02-15 22:25 余总出去浪 阅读(606) 评论(0) 推荐(0) 编辑
摘要: 答:String是不可变的对象,每次给String赋值的时候,实际上是产生了一个新的String对象,然后指针指向新的内存地址。 StringBuffer是线程安全的,里面方法使用synchronized修饰,在并发下不会出现异常。 StringBuilder是线程不安全的,但是速度更快。 阅读全文
posted @ 2019-02-15 21:38 余总出去浪 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 数据库事物特性是什么?事务的隔离级别有哪些? 答:数据库事务特性分为ACID A 原子性:在一个事务中有多个操作,要么同时提交成功,要么同时失败回滚 C 一致性:在一个事务执行的前后,必须保证从一个一致状态变成另一个一致状态,举个例子:A和B两者的钱一共400元,A和B来回转账,不论转几次,怎么转最 阅读全文
posted @ 2019-02-15 21:25 余总出去浪 阅读(608) 评论(0) 推荐(0) 编辑
摘要: ClassLoader的分类有哪些?加载顺序是什么?类加载的顺序又是什么? 答:ClassLoader分为4种:Jvm类加载器(BootstarpClassLoader),Jvm扩展类加载器(extClassLoader),系统类加载器(SystemClassLoader),自定义类加载器(AppC 阅读全文
posted @ 2019-02-15 13:09 余总出去浪 阅读(1854) 评论(0) 推荐(0) 编辑
摘要: ConcurrentHashMap为什么比HashTable性能好? 答:ConcurrentHashMap里使用了Segment分段锁+HashEntry,而HashTable用的是Syncronized锁全部,所有线程竞争一把锁。 Segment分段锁继承ReentrantLock,在并发数高的 阅读全文
posted @ 2019-02-15 12:55 余总出去浪 阅读(1356) 评论(0) 推荐(0) 编辑
摘要: 线程和进程有什么区别? 答:进程是系统资源分配的最小单位,线程是程序执行的最小单位。 一个进程可以包含多个线程 多个线程可以访问同一进程下的共享变量、静态变量 进程拥有独立的地址空间,包含堆栈等 阅读全文
posted @ 2019-02-15 12:20 余总出去浪 阅读(338) 评论(0) 推荐(0) 编辑