Java
文章平均质量分 70
思涛的博客
以前面向产品经理编程,现在面向产品编程!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA 字符串 trim() 方法的正确使用
最后,再稍微延伸一下,在 Java 11 的发行版中,添加了新的 strip() 方法来删除字符串中的前导和末尾空格。方法大家都比较熟悉,就是用来清除掉字符串首尾的空白字符。但在一次程序运行崩溃后,查找具体原因时,发现是由字符串末尾的一个回车符号 "\r" 所导致的。上面的提到的 BUG,在我手动添加 trim() 方法剔除掉末尾的 "/r" 这个空白字符后也就解决掉了。这段代码的大意是,去除首尾的空白字符,代表空白字符的 codepoint 需要小于或者等于。原创 2024-10-11 19:34:23 · 1301 阅读 · 0 评论 -
Java 局部类访问局部变量为什么必须添加 final 关键字
在JDK8之后,编译器不要求内部类访问的局部变量必须被 final 修饰,但是局部变量的值不能被修改(无论是方法中还是内部类中),否则编译器会提示编译错误。利用java查看编译后的字节码可以发现,编译器已经加上了 final 关键字。所以编译器会在内部类中生成一个局部变量的拷贝,这个拷贝的生命周期与内部类的对象相同,就不会出现上述的问题。但是这样一来就导致了其中一个变量被修改,两个变量值可能会不同的问题,为了解决这个问题,编译器就要求局部变量需要把final修饰,以保证两个变量的值相同。原创 2024-03-06 16:57:12 · 675 阅读 · 0 评论 -
Android Media3 ExoPlayer 如何正确设置缓存大小
Android Media3 ExoPlayer 如何正确设置缓存大小:赋值发生溢出后得到实际的数值,要不变成负数、零、或者变小了,这就解释了为什么会出现上面那个奇怪问题。这里抛砖引玉,其他类似播放器的缓存大小设置可能也会遇到同样的问题,所以需要小心对待,避免落入隐蔽的陷阱。原创 2024-01-13 18:31:21 · 2764 阅读 · 0 评论 -
SpringBoot获取完整的堆栈异常及异常堆栈日志简化
一般要想获取完整的堆栈信息,不要使用toString() ,另外getMessage() 方法可能获取的也是null。原创 2023-01-12 23:07:41 · 3668 阅读 · 0 评论 -
ThreadLocal用法与原理以及在Spring事务管理中的应用
ThreadLocal 是一个类名,但从字面意思理解,ThreadLocal也可以称为「线程局部变量」,也就是说,在某个线程运行的过程中,它往ThreadLocal这里类里填充的值或对象只属于当前这个线程,别的线程无法访问。假如我们现在有一个ThreadLocal对象,多个线程[A, B, C]同时运行, 它们都通过这个ThreadLocal对象存储了一个值,那么它们中任何一个线程在任何时刻取回的值一定就是当初自己设置的那个值,不会与其他线程发生错乱,也相当于数据和线程是绑定在一起了,起到了数据隔离的作用。原创 2022-10-31 22:50:58 · 3954 阅读 · 1 评论
分享