
Java
文章平均质量分 84
Java是世界上最好的语言
coffee_babe
让学习成为一种享受,
脑图、设计图请见https://www.processon.com/u/60e12f2b637689510d6cdc81
github主页:https://github.com/2over
展开
-
Java中的让人痛恨的NullPointException
在JDK14中,新增了一个值得一提的JEP358:Helpful NullPointException,它的思想是,既然无法避免,那就让它对开发人员更有帮助一些,每个Javer都遇到过NPE异常,由于NPE可以发生在程序的几乎任何地方,因此试图捕获并从异常中恢复通常是不切实际的。在Kotlin中,其类型系统岩哥区分一个引用可以容纳null还是不能容纳,也就是说,一个变量是否可空必须显式声明,对于可空变量,在访问其成员变量时必须做空处理,否则无法编译通过。JVM将打印出导致异常的NPE的方法、文件名、行号。原创 2024-01-25 23:43:34 · 1393 阅读 · 0 评论 -
Java中SimpleDateFormat的线程安全性问题
在日常开发中,我们经常会用到时间,我们有很多办法在Java代码中获取时间。但不同的方法获取到的时间格式不尽相同,这时就需要一种格式化工具,把时间显示成我们需要的格式,最常用的方法就是使用SImpleDateFormat类。这是一个看上去功能比较简单的类,但使用不当,也有可能导致很大的问题.在《阿里巴巴Java开发手册》中,有明确规定【强制】SimpleDateFormat是线程不安全的类,一般不要定义为static变量,如果定义为static,必须加锁,或者使用DateUtils工具类。原创 2024-01-24 23:12:11 · 1038 阅读 · 0 评论 -
Java中Pattern、Matcher使用过程中的内存泄漏风险
前几天遇到了一个由正则表达式引起的线上事故,来跟大家分享下,希望能够帮助到大家当我们业务中有需要使用正则表达式的时候,可能会用到Pattern和MatcherPattern在调用compile方法时里面使用大量的对象来记录相关的状态,其中包括字节数组buffer的填充,以及一些数组的拷贝,以及相关的状态变量等等,口说无凭,我们来大致看一下compile即可。原创 2024-01-22 16:18:20 · 885 阅读 · 0 评论 -
Java基本数据类型boolean占用几个字节?
我们知道Java中的基本数据类型有以下几种char占用2个字节boolean占用1个字节或者4个字节(稍后解释)byte占用1个字节short占用2个字节int占用4个字节long占用8个字节float占用4个字节double占用8个字节int c = 1;......原创 2024-01-14 14:36:56 · 1096 阅读 · 0 评论 -
谈谈String#intern和最大长度限制
中的一个构造函数,可以看到它的长度是int类型,int的最大取值是2^31-1.但是我们却不能认为String支持的最大长度是这么大,这个长度的范围是JVM在运行期对String的一种限制,并非是编译器定义字符串的时候的限制。String#intern()方法在JVM中是通过JNI调用C++实现的,其实里面调用的C++当中的StringTable的intern()方法,它的内部结构和HashMap类似,但是它不能扩容,默认大小是1009。在JDK6的版本中大小是固定的,在JDK7中可以通过参数来设置。原创 2024-01-10 23:31:16 · 1028 阅读 · 0 评论 -
Java中的参数传递到底是引用传递还是值传递
错误理解一:值传递和引用传递,区分的条件是传递的内容,如果是值,那么就是值传递;如果是引用,那么就是引用传递错误理解二:Java是引用传递错误理解三:传递的参数如果是普通类型,那么就是值传递;如果是对象那么就是引用传递以上说法其实都不是很正确.原创 2023-12-26 22:49:20 · 133 阅读 · 1 评论 -
Java中的泛型与桥接方法
所以当一个字类在继承(或实现)一个父类(或接口)的泛型方法时,在字类中明确指定了泛型类型,编译器为了让字类有一个与父类的方法签名一致的方法,就会在子类中自动生成一个与父类的方法签名一致的桥接方法。之所以可以这样做,是因为在Java虚拟机中,方法是通过它的名称、参数的数量和类型以及它的返回类型来定义的,所以,返回值不同也是两个方法,这也是桥接方法可以存在的一个重要原因。这种做法很方便,只需要根据具体类型找到具体的类和方法即可,但问题是,当我们多次使用不同类型的模板时,就会创建很多新的类,导致代码膨胀。原创 2024-01-08 22:32:26 · 577 阅读 · 0 评论 -
@RequestBody接收的部分属性为Null?
1.前言我们在编写实体类的过程中经常性地会使用lombok框架的@Data注解来帮我们生成get/set方法而不是自己手动生成.代码上看着也比较简洁.今天遇到的一个坑就是由于@Data产生的.2.问题描述一个Post请求封装的一个对象,只接收到了部分属性,另一部分却没有接收到?我们先来看两个简单的实体类@Dataclass Person { private boolean male; private List<DDog> dDogs;}@Dataclass DD原创 2021-12-21 11:01:33 · 2660 阅读 · 0 评论