摘要: 代理模式 代理模式是结构型模式,相当于给一个对象生成一个代理对象,我们去访问的时候直接面对的是代理对象。在平时的生活中也有类似的例子,比如房产中介,我们在租房的时候面对的不是真正的房东而是中介,这个中介就相当于房东的代理对象。代理对象可以对原对象的功能进行增强。下面通过一张图来展示下代理模式。 在上 阅读全文
posted @ 2020-09-20 16:30 un1que~ 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 单例模式是Java设计模式之一,属于创建型模式。该模式的设计意图就是为了保证一个类仅有一个实例。单例模式实现方式也有很多种,下面是我在平时学习中了解到的几种单例模式模式的实现方式。 饿汉式 饿汉式实现方式,事先将类的实例创建好,然后每次访问的时候就返回创建好的实例即可。这种单例模式的实现方式是线程安 阅读全文
posted @ 2020-09-19 15:25 un1que~ 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 面试过程中,面试官经常会问一下代码细节的问题,比如在try...catch...finally都有return语句,那么那个代码块中的return会生效呢?又比如在try中返回一个值a,finally中修改这个值,那么返回的a是finally中修改过的还是没有修改过的呢?下面我们通过几组案例来分析下 阅读全文
posted @ 2020-07-26 20:35 un1que~ 阅读(560) 评论(0) 推荐(0) 编辑
摘要: 最近在面试的过程中被问到子线程中异常有几种处理方式,突然意识到没有了解过这方面的知识,于是通过这篇学习笔记来记录下Java中子线程的异常处理方式。 子线程异常处理方式 通过学习,了解到子线程中的异常处理方式有如下三种形式,我们依次通过案例来使用下这三种方式。 在子线程中捕获异常并处理 为线程设置"未 阅读全文
posted @ 2020-07-25 18:32 un1que~ 阅读(700) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal简介 通常我们创建的一个变量可以被任意一个线程去修改,但是有时候想实现每个线程都有自己专属的本地变量不会被其它的线程去修改,这时候ThreadLocal应运而生。ThreadLocal类主要解决的问题就是让每个线程可以绑定自己专有的变量,相当于一个存放数据的盒子,每一个线程都有 阅读全文
posted @ 2020-07-25 10:58 un1que~ 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 在面试中我们经常会遇到这样的问题:接口和抽象类之间的区别,两者在开发过程中该如何选择,下面总结一下关于接口和抽象类的这两个问题。 接口和抽象类的区别 修饰的关键字,接口是interface,抽象类是abstract,两者均不能被实例化。 继承关系,接口和派生类之间是LIKE-A关系,抽象类和派生类之 阅读全文
posted @ 2020-07-05 21:14 un1que~ 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 线程虚假唤醒问题描述 ​ 在JDK API文档中,关于Object类的wait()方法有这样一句话描述"线程也可以唤醒,而不会被通知,中断或超时,即所谓的虚假唤醒 。 虽然这在实践中很少会发生,但应用程序必须通过测试应该使线程被唤醒的条件来防范,并且如果条件不满足则继续等待",如下图所示: ​ 在多 阅读全文
posted @ 2020-07-04 22:08 un1que~ 阅读(2424) 评论(13) 推荐(3) 编辑