Java相关文章索引(10)

环境部署

eclipse搜索类

ctr+shift+t搜索所有的类

基本常识

  1. java 内部类(inner class)详解

  2. Java魔法堂:注解用法详解----@SuppressWarnings

作用:用于抑制编译器产生警告信息。

  1. 一张图让你看清Java集合类(Java集合类的总结)

设计模式

单例模式

设计模式——单例模式
设计模式--单例模式(一)懒汉式和饿汉式

组合模式

[Java] 组合与继承的区别

所以总结来说,is-a (是一个)的关系是用继承来表达的,而has-a(有一个)的关系则是用组合来表达的。

Debug

  1. 关于junit不支持多线程?

Junit只管自己的运行,就是说当Junit执行完毕后,就会关闭程序,不会关心是否还有自己启动的后台线程在运行。当Junit运行完毕后,如果后台线程还没有执行完毕,那么也是不会再执行了。

  1. junit引发的多线程思考

其实junit是将test作为参数传递给了TestRunner的main函数。并通过main函数进行执行。test函数在main中执行。如果test执行结束,那么main将会调用System.exit(0);
即使还有其他的线程在运行,main也会调用System.exit(0);
System.exit()是系统调用,通知系统立即结束jvm的运行,即使jvm中有线程在运行,jvm也会停止的。所以会出现之前的那种情况。其中System.exit(0);的参数如果是0,表示系统正常退出,如果是非0,表示系统异常退出。

java的线程分为两种:正常线程和后台线程。
最大的区别就是系统会等待正常线程结束,但是如果正常线程全部结束,系统就会退出。这时即使有后台线程在运行,系统也会退出。也就是系统不会等待后台线程结束。
后台线程一般是为了给程序提供公共服务而建立起来的。如果程序的其他模块都结束了,那么这种服务也没有存在的必要了。
在Linux中也有类似的线程(虽然不清楚实现,但是感觉java在linux上的实现方式就是采用了相关的技术),但是人家的名字叫做守护线程。

P.K.

  1. String、StringBuffer与StringBuilder之间区别

三者在执行速度方面的比较
StringBuilder > StringBuffer > String
StringBuilder与 StringBuffer
StringBuilder:线程非安全的
StringBuffer:线程安全的
对于三者使用的总结
1.如果要操作少量的数据用 = String
2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

  1. java程序员必知的 8大排序

  2. 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别

你可能感兴趣的:(Java相关文章索引(10))