java杂记
1、实现接口或者继承父类,同样都是子父继承关系;
2、获取Tomcat 安装目录:System.getProperty("catalina.home"),log4j.appender.dailyFile.File =${catalina.home}
3、lombok:自动生成类的get、set、tostring方法等,可以加入eclipse安装路径,或者maven 插件形式。编译期使用,不需要加入war包。http://www.blogjava.net/fancydeepin/archive/2012/07/12/lombok.html
pw = new PrintWriter(sw);
// 将出错的栈信息输出到printWriter中
e.printStackTrace(pw);
pw.flush();
sw.flush();
sw.toString();记录到log中
9、List排序 java8:
calcShoppingCartItemList.sort((x,y)->{ return x.getProductsPrice().compareTo(y.getProductsPrice()); });this.calcShoppingCartItemList= calcShoppingCartItemList.stream().sorted(Comparator.comparing(CalcShoppingCartItem::getProductsPrice,(x,y)->compare)).collect(Collectors.toList());
;thenComparing
10、switch() case: 一定要配合break使用或者return,不然会执行所有case;continue只能作用于循环,break都可以。
11、静态代码块,在spring中启动时会自动执行,在jvm中并不是加载就执行,而是调用class.forname(),方法且不修改里面默认的true属性。http://www.cnblogs.com/ivanfu/archive/2012/02/12/2347817.html
12、
②两个都是非new出来的Integer,如果数在-128到127之间,则是true,否则为false
java在编译Integer i2 = 128的时候,被翻译成-> Integer i2 = Integer.valueOf(128);而valueOf()函数会对-128到127之间的数进行缓存
③两个都是new出来的,都为false
④int和integer(无论new否)比,都为true,因为会把Integer自动拆箱为int再去比
17、spring的事物传播机制:默认嵌套事物,内部异常会和外部一起回滚,还有其他几种可配置https://blog.****.net/yuanlaishini2010/article/details/45792069
18、CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。
一致性(Consistency) (所有节点在同一时间具有相同的数据)
可用性(Availability) (保证每个请求不管成功或者失败都有响应)
分隔容忍(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作)
19、HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的;并发情况下使用HashMap,可能会出现死循环,因为迁移的 transfer方法,线程2修改了原来的链表结构,而线程1却以原来的逻辑执行迁移,用ConcurrentHashMap可以避免。jdk8修复了这个问题
20、java类加载原理:https://mp.weixin.qq.com/s/0jVGEhzVwYmmaYRejJ4wOQ