原文:定义Logger为什么要用static和final?为什么不用getClass()?

有一次线上发现,redis连接很慢,最后同事说,有个原因就是getClass private final Logger logger LoggerFactory.getLogger getClass 因为这不是一个静态常量,在序列化这个变量的时候,有的序列化方法并不好用,里边有一个class.forName 方法,是个阻塞性的,导致了高并发多线程的时候,序列化很慢。 进而redis很慢。 好像和r ...

2020-08-03 18:26 0 565 推荐指数:

查看详情

【Java】定义Logger为什么要用staticfinal

private static final Logger logger= LoggerFactory.getLogger(ShiroConfig.class); (1)出于资源利用的考虑,Logger的构造方法参数是Class,决定了Logger是根据类的结构来进行区分日志,所以一个类只要一个 ...

Wed Oct 23 23:46:00 CST 2019 0 1202
staticfinalstatic final

众所周知,static 是静态修饰关键字:可以修饰变量,程序块,方法,类。 1.修饰变量。 得知:如果static修饰的是变量,则JVM会将将其分配在内存堆上,该变量就与对象无关,所有对该变量的引用都指向同一个地址。 因此我们使用该变量的时候,直接指明类的静态变量,当然修饰符 ...

Tue Apr 09 07:09:00 CST 2019 0 2752
什么是static?什么是final

static修饰的变量、常量、和方法被称为是静态变量、常量和 方法。 静态数据和静态方法的作用通常是为了提供共享数据或方法,如数学计算公式等,以static声明并且实现,这样当需要使用时,直接使用类名调用这些静态成员即可。例如,两个类在同一个内存区域共享一个数据,在球类使用PI这个常量 ...

Sat Sep 10 21:26:00 CST 2016 0 2581
staticfinalstatic final的区别

final:     final可以修饰属性,方法,类,局部变量(方法中的变量)     final修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不能被改变。     final修饰的属性跟具体对象有关 ...

Wed Apr 17 18:24:00 CST 2019 0 4748
static finalfinal的区别

学习java的时候常常会被修饰符搞糊涂,这里总结下static finalfinal的区别。 static是静态修饰关键字,可以修饰变量和程序块以及类方法:   当定义一个static的变量的时候jvm会将将其分配在内存堆上,所有程序对它的引用都会指向这一个地址而不会重新分配内存 ...

Wed Mar 27 21:18:00 CST 2019 0 1539
接口中定义变量必须为public static final的原因

在interface里面的变量默认都是public static final 的,原因如下: 1. 接口是一种高度抽象的"模版",,而接口中的属性也就是’模版’的成员,就应当是所有实现"模版"的实现类的共有特性,所以它是public static的 ,是所有实现类共有的.   假如可以是 ...

Fri Jun 03 22:35:00 CST 2016 0 5186
java中的 private Logger log=Logger.getLogger(this.getClass());

this.getClass()得到什么? this 表示当前对象的引用; getClass() 是 java.lang.Object 中的方法,它返回一个对象的运行时类; this.getClass() 就是返回当前对象的运行时类。 Logger ...

Fri Jul 22 02:02:00 CST 2016 0 7022
为什么String要用final修饰

String被final修饰 从 String 类的源码我们可以看出 String 是被 final 修饰的不可继承类,源码如下: 那这样设计有什么好处呢? Java 语言之父 James Gosling 的回答是,他会更倾向于使用 final,因为它能够缓存结果,当你在传参时不需要考虑 ...

Thu Aug 13 19:16:00 CST 2020 0 2488
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM