@Component 和 @PostConstruct 搭配使用
- 被@Component注解标识的类在应用程序启动时会被实例化,并由Spring容器进行管理。
- @PostConstruct是一个Java注解,用于标记一个方法在类被实例化后自动执行。该方法必须是非静态的,没有参数,且不能抛出异常。
他们搭配起来使用在同一个类中,会让被@PostConstruct修饰的方法,自动执行,从而实现了,项目启动后init方法的重写的功能。
其他补充:
1. 自动扫描:使用@ComponentScan注解配置的包路径下,Spring框架会自动扫描带有@Component注解的类,并将其实例化为Bean。
2. 依赖注入:被@Component注解标识的类可以使用Spring的依赖注入机制,通过@Autowired注解将其他组件注入到自己的属性或构造函数中。* @Component使用了对象池吗?
* 答:没有。
git拉远程指定分支
git checkout -t origin/远程分支名
这样可以拉远程某分支,即便之前已经拉了其他分支,也可以拉新分支,并且新分支会自动迁出。
DTO
- dto所处位置,主要是用于业务逻辑层service和表示层servlet之间的数据传输.(图片是引用的)
ps -ef | grep 8080
- ps -ef是查询所有进程信息的命令
- | 是管道,可以把前面命令的输出传递给后面命令作为输入
- grep是查询命令,搜索的作用。
hashMap和TreeMap
-
- HashMap是通过hashcode()对其内容进行快速查找的;HashMap中的元素是没有顺序的;
- TreeMap中所有的元素都是有某一固定顺序的
-
- HashMap和TreeMap都不是线程安全的;
-
- HashMap继承AbstractMap类,覆盖了hashcode() 和equals() 方法,以确保两个相等的映射返回相同的哈希值;
- TreeMap继承SortedMap类;他保持键的有序顺序;
-
- HashMap:基于hash表实现的;
- TreeMap:基于红黑树实现的;TreeMap就没有调优选项,因为红黑树总是处于平衡的状态;
-
- HashMap:适用于Map插入,删除,定位元素;
- TreeMap:适用于按自然顺序或自定义顺序遍历键(key);
ArrayList 和 Vector
- Vector 使用了 Synchronized 来实现线程同步,是线程安全的,而 ArrayList 是非线程安全的。
Runnable 接口 和 Callable 接口
-
Runnable 接口 没有返回值 , Callable 接口有返回值
-
Runnable 接口 有抛异常 , Callable 接口没有抛异常
-
Runnable 接口 的方法是 run ( ) , Callable 接口的 方法是 call ( )
public class CASTest666 {private int ticket = 50;private int i = 1;public synchronized void sale() {if (ticket > 0) {System.out.println(Thread.currentThread().getName() + "再卖第" + "\t" + i++ + "张票还有" + --ticket + "\t" + "张票");}}}class TestMythread {public static void main(String[] args) throws ExecutionException, InterruptedException {CASTest666 casTest666 = new CASTest666();FutureTask futureTask = new FutureTask<>(new Callable<Object>() {@Overridepublic String call() throws Exception {for (int i = 0; i < 50; i++) {casTest666.sale();}return "我是callable实现的多线程的操作";}});Thread thread = new Thread(futureTask, "A");thread.start();// 运行成功后获得返回值:调用get方法System.out.println(futureTask.get());}}
final修饰符
-
该修饰符是常量修饰,但是如果是引用类型,比如ArrayList并不能让arrayList不能增添数据。
`
private final ArrayList list = new ArrayList();test(){list.add(1);//合法,不报错}
`