剑指offer
文章平均质量分 77
走进项目实战,带你了解各种业务处理、代码优化、工具类的使用,java核心知识点的学习
暮色里de白雪檐
相信自己,人生之美在于当下
人生四季,寒暑交替,笑看起起落落
心若简单,生活就简单
展开
-
揭开浏览器验证HTTPS证书的合法性底层面纱
浏览器拿到了服务端的数字证书后,要怎么校验该数字证书是真实有效的呢?这个过程很多人没有关注到,我这里详细说下。转载 2024-06-15 14:28:49 · 195 阅读 · 0 评论 -
HashSet和TreeSet区别
因为都是set的子类,Set具有元素不可重复性,所以TreeSet和hashset都不可放2个相同的元素TreeSet底层是TreeMap实现的 ,很多api都是利用TreeMap来实现的HashSet底层是HashMap实现的,很多api都是利用HashMap来实现的TreeSetTreeSet判断两个对象不相等的方式是两个对象通过equals方法返回false,或者通过CompareTo方法比较没有返回0HashSet集合不能存储重复的元素,那么元素之间是否重复,HashSet是根据什么机原创 2021-04-08 23:23:39 · 10366 阅读 · 0 评论 -
设计模式-责任链模式
概念责任链,顾名思义,就是用来处理相关事务责任的一条执行链,执行链上有多个节点,每个节点都有机会(条件匹配)处理请求事务,如果某个节点处理完了就可以根据实际业务需求传递给下一个节点继续处理或者返回处理完毕。场景现实中,请假的OA申请,请假天数如果是半天到1天,可能直接主管批准即可;如果是1到3天的假期,需要部门经理批准;如果是3天到30天,则需要总经理审批;大于30天,正常不会批准。类图为了实现上述场景,我们可以采用责任链设计模式。1、员工提交请求类:LeaveRequest。.原创 2021-01-26 14:45:12 · 221 阅读 · 2 评论 -
设计模式-装饰者模式(Decorator Pattern)
定义动态地给一个对象添加一些额外的职责,就增加功能来说,装饰者模式比生成子类更为灵活。——《设计模式:可复用面向对象软件的基础》装饰者模式是一种对象结构型模式。使用场景在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。需要动态地给一个对象增加功能,这些功能也可以动态地被撤销当不能采用继承的方式对系统进行扩充或者采用继承不利于系统扩展和维护时。不能采用继承的情况主要有两类:第一类是系统中存在大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长;第二类是.原创 2021-01-26 11:24:24 · 221 阅读 · 0 评论 -
求求你了,不要再自己实现这些逻辑了,java开源工具类不香吗?
不过最近给其 Review 代码的时候,有些代码逻辑有些繁琐,有些代码看来可以用一些开源工具类实现,不需要自己重复实现下文主要分享这几个方向的常用工具类:字符串相关工具类Java 中 String 应该是日常用的最多一个类吧,平常我们很多代码需要围绕 String ,做一些处理。JDK 提供 String API 虽然比较多,但是功能比较基础,通常我们需要结合 String 多个方法才能完成一个业务功能。下面介绍一下 Apache 提供的一个工具类 StringUtils.Maven .原创 2020-12-16 17:33:43 · 147 阅读 · 2 评论 -
JVM中new一个对象的时候发生了什么?
引言如你所知,Java是一门面向对象的编程语言。我们平常在写代码的时候也是在不停的操作各种对象,那么当你在写出User user = new User();这样一行代码的时候,JVM都做了些什么呢?了解对象内存布局在Hotspot虚拟机中一个对象的内存布局分为三个部分:对象头、实例数据、对齐填充。对象头又有两部分的信息,第一部分是用于存储对象自身的运行数据(HashCode、GC分代年龄、锁状态标志等)。另一部分是类型指针,指向它的类元数据,虚拟机通过这个指针确定这个对象是哪个类的实.转载 2020-12-16 17:13:53 · 281 阅读 · 0 评论 -
HashMap中hash函数设计原理和设计缘由
说到hashmap大家都再熟悉不过了,因为面试必问,这篇文章也不会去说原理,因为百度一大堆说的很详细的资料和视频可以去查阅,那么此次博客来说说Hashmap最精髓的部门-hash函数在写一个HashSet时候有个需求,是判断HashSet中是否已经存在对象,存在则取出,不存在则add添加。HashSet也是通过HashMap实现,只用了HashMap的key,value都存储一个赘余的Object,如下是HashSet中持有的HashMap对象,add函数:private transient HashM原创 2020-12-15 14:30:24 · 446 阅读 · 0 评论 -
一个HashMap能跟面试官扯上半个小时
HashMap应该算是Java后端工程师面试的必问题,因为其中的知识点太多,很适合用来考察面试者的Java基础。转载 2020-12-14 15:47:09 · 146 阅读 · 0 评论 -
String是值传递还是引用传递-jvm底层剖析
把一个String类型的参数传入方法,并在方法内改变了引用的值。 然后在方法外使用这个值,发现这个String还是之前的值,并没有改变。这里要向大家介绍一下,大家都知道java在传参时分为值 传递 和 引用传递 。参数为基本类型时是值传递, 参数为封装类型时是引用传递。例如:基本类型参数public class Test { public static void main(String[] args) { int num = 0 ; changeNum(num)原创 2020-12-14 15:43:23 · 130 阅读 · 0 评论 -
String类型在JVM中的内存分配
这篇博文虽然是一个很基础的知识点,没什么好讲解的,主要为了记录下jdk升级到1.8以后jvm存储的变化而已String类型在JVM中的内存分配转载 2020-11-27 17:11:45 · 441 阅读 · 0 评论 -
设计模式-工厂模式+策略模式
由于现如今都是使用spingboot框架,这么现在就是基于springboot来实现工厂模式+策略模式为了防止大量的if…else…或switch case代码的出现,可以使用策略模式+工厂模式进行优化。在我的项目当中,报表繁多,所以尝试了这种方式进行优化报表的架构。代码很简单,如下:工厂模式+策略模式-低配版Factory工厂类@Servicepublic class ReportFactory { /** * 初始化的时候将所有的ReportService自动加载原创 2020-12-02 15:31:42 · 387 阅读 · 2 评论 -
解析JDK动态代理实现原理
解析JDK动态代理实现原理原创 2020-10-27 14:17:58 · 130 阅读 · 0 评论 -
JAVA集合类-全面梳理
JAVA集合类-全面梳理原创 2020-10-27 14:07:44 · 140 阅读 · 0 评论 -
JAVA中BIO与NIO、AIO的区别
什么是阻塞和非阻塞?什么是同步和异步?什么是BIO、NIO、AIO?转载 2020-10-27 14:04:48 · 101 阅读 · 1 评论 -
设计模式-模板模式详解
模板模式的定义在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式模板模式的特点意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤主要解决:一些方法通用,却在每一个子类都重新写了这一方法。何时使用:有一些通用的方法。如何解决:将这些通用算法抽象出来。.原创 2020-09-22 14:50:41 · 259 阅读 · 0 评论