Java基础
文章平均质量分 59
基础知识
乔一屿七
希望一起进步咯
展开
-
Java反射
简单来说:反射是可以帮助程序员去获取类的详细信息的一种机制。Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,原创 2024-04-02 20:37:47 · 384 阅读 · 1 评论 -
BigDecimal 详解 清晰版
本文较为清晰的说明了BigDecimal的原理和等值比较问题,其中原理部分解释为什么BigDecimal可以解决精度丢失问题,等值比较部分,也放出源码,从源头上解决了equals和compareTo()的不同的原因。原创 2024-04-03 17:22:54 · 864 阅读 · 1 评论 -
Java代理(手写板)
cglib详细内容可以 参考javaguide。原创 2024-04-03 14:46:22 · 402 阅读 · 1 评论 -
Java面试 之 值传递(独家版本)最清晰
这些局部变量引用是方法参数的副本,它们指向相同的对象,但它们本身的交换不会影响方法外部的原始引用。修改对象状态:另一方面,当你传递一个对象到方法中,并在该方法内部修改对象的状态(例如,改变一个数组对象的元素),这个改变会影响到原始对象,因为对象的引用指向的是同一个对象。简而言之,方法内部的引用交换不会影响外部的引用,但是对对象状态的修改会影响到所有指向该对象的引用。可以看到,在swap函数中,两个变量的值发生交换,但是在main函数中,未发生交换。值传递:方法接收的是实参值的拷贝。原创 2024-03-26 21:25:43 · 539 阅读 · 0 评论 -
Java面试题之128陷阱与装箱拆箱
在Java中,基本数据类型的比较使用的是值比较,而对象的比较默认使用的是引用比较。但是,Java对于值从-128到127之间的Integer对象做了特殊处理,它们会被自动缓存,所以当你创建这个范围内的Integer对象时,实际上会返回相同的引用。当比较的值超出这个范围,或者使用new Integer()创建对象时,相同值的Integer对象可能会有不同的引用,那么使用==进行比较就会返回false。如果Integer的值是1280,那么即使两个Integer对象的值相同,使用==比较也会返回false。原创 2024-03-25 23:09:38 · 432 阅读 · 0 评论 -
Java异常
Java异常原创 2024-04-10 23:33:25 · 734 阅读 · 1 评论 -
Java集合(一)Map(1)
HashSet 底层是由 HashMap 实现的,它可以实现重复元素的去重功能,如果存储的是自定义对象必须重写 hashCode 和 equals 方法。HashSet 保证元素不重复是利用 HashMap 的 put 方法实现的,在存储之前先根据 key 的 hashCode 和 equals 判断是否已存在,如果存在就不在重复插入了,这样就保证了元素的不重复。原创 2024-04-13 11:52:42 · 1485 阅读 · 0 评论 -
Java集合(一)--Map(2)
在JDK1.7时,底层采用的是分段数组+链表的形式,在JDK1.8之后,采用的是与HashMap相同的形式,数组+链表/红黑树。只锁定当前链表或红黑二叉树的首节点,这样只要 hash 不冲突,就不会产生并发,就不会影响其他 Node 的读写,效率大幅提升。o(n)->o(logn),ConcurrentHashMap利用的是node数组+链表+红黑树的方式去实现,并且并发控制使用synchronized和CAS去实现操作。当冲突链表达到一定程度的时候,链表会转换成红黑树,一般来说阈值是8,多个线程访问时,原创 2024-04-13 14:59:54 · 935 阅读 · 2 评论