Java基础
文章平均质量分 60
a栋栋栋
这个人很忙,什么都没留下~
展开
-
泛型与Object
而使用Object的话,在编译期是不会去检查类型转换是否存在问题,而是统一交给运行时去检查,因为编译期,编译器不知道object的引用指向的对象是什么类型。比如我们经常使用的ThreadLocal,它就是通过泛型,这样,我们直接将我们需要封装的类型以参数的形式放进去即可。代码简洁,并且避免了运行时的类型异常。自定义封装工具类,比如项目中用于处理redis高并发的情况,如缓存穿透,缓存击穿,我们通过将其封装成工具类,使用泛型,一定程度上使代码复用性。因为编译的时候,编译器不知道obj指向的是Car类型对象,原创 2024-05-22 16:35:59 · 288 阅读 · 0 评论 -
Java基础杂集
1、包装缓存机制:Byte、Short、Integer、Long默认缓存了-128—127相应类型的缓存数据,而Double和Float没有缓存,Character缓存了0 - 127之间的数据,Boolean直接返回false和true。加上自动装箱拆箱(valueOf,XXXValue)的机制,在以上范围中,如果进行对象引用的比较,通过==得到true。3、基本数据类型char、short、byte占2个字节,int占4个字节、long、float、double占8个字节。原创 2024-05-12 19:12:51 · 309 阅读 · 0 评论 -
异常常常常
异常分为检查异常和非检查异常:检查异常:编译的时候必须被捕获或声明的异常,即如果一段程序中可能抛出异常,则必须处理【通过try catch、throws】如IOException、SQLException编译之前IDEA会提示你的异常,不处理的话编译都通过不了!!!非检查异常:在编译的时候不需要被捕获或声明的异常。这些异常通常是由程序的逻辑逻辑错误或运行时引起的,如算术异常、空指针、数组越界、by zero以上IDEA不会提示你,属于运行的时候产生的异常。原创 2024-05-12 17:42:01 · 172 阅读 · 0 评论 -
String、StringBuider、StringBuffer
String 是final修饰的,每次修改值都会产生新的对象,而StringBuffer和StringBuilder是可变类,每次修改值不会产生新的对象。原创 2024-05-08 08:00:00 · 158 阅读 · 0 评论 -
Linux常用名命令
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改源代码,这是其他操作系统做不到的,Ubuntu,Centos。原创 2024-05-06 09:52:14 · 545 阅读 · 1 评论 -
== 和 equals()区别,equals()重写问题
Java中任意一个对象都有native的hashCode方法,这个方法在散列集合中会用到,比如HashMap,在添加元素的时候会根据hashCode方法判断元素加入的位置,如果没有相符的hashCode,则HashMap会认为当前元素没有重复出现,直接放过去。如果存在的话,则再通过equals方法去比较是否是相同的对象,如果相同则直接替换,如果不同(说明发生了哈希冲突),则以链表的形式插入。HashCode的值默认是JVM随机数生成的,即两个不同的对象,它们的hashcode值可能相同->原创 2024-05-05 22:23:34 · 355 阅读 · 0 评论 -
对象拷贝和引用拷贝
深拷贝、浅拷贝都是特指对象间的一种行为,属于对象拷贝。原创 2024-04-21 20:00:00 · 182 阅读 · 1 评论