摘要: 一、什么时候使用synchronized关键字 在多线程编程永远都逃不开线程安全的问题,影响线程安全的因素主要有两:1、存在共享数据;2、多线程共同操作共享数据。关键字synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时synchronized可以保证一个线程的 阅读全文
posted @ 2020-07-23 23:09 Jerryoned 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 一、什么是代理模式 代理模式是一种设计模式,是在不修改源代码下,实现目标对象的功能扩展。 举个例子,有个歌手对象Singer,然后这个对象有个方法sing()。 public class Singer { public void sing(){ System.out.println("演唱一首歌曲" 阅读全文
posted @ 2020-07-19 20:39 Jerryoned 阅读(420) 评论(0) 推荐(0) 编辑
摘要: 一、什么是工厂设计模式 当需要获取对象时,并不是直接去实例化,而是通过一个工厂类间接获取,以实现创建者和调用者的分离,实现更好的解耦。直白一点说,就是调用者不用也根本不会知道对象时如何创建的,它只需要工厂提出条件即可,由工厂来根据提交创建具体的实例。 二、使用场景 当框架需要深度解耦,高度可扩展时就 阅读全文
posted @ 2020-07-15 22:50 Jerryoned 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 一、什么是单例设计模式 单例设计模式的定义是只有一个类,并且提供一个全局访问点。 二、适用于那些场景 一个对象即可完成所有工作,无需大量创建对象消耗资源。比如一个长连接,建立起来就不断的发送数据,如果每一个请求都创建一个链接,资源很快就被消耗殆尽。 三、有什么特点 只有一个实例 自我实例化 提供一个 阅读全文
posted @ 2020-07-07 22:34 Jerryoned 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 要想理解它们俩之间区别,首先要了解一下它们的定义。 ==比较的是变量(栈)中存放的对象(堆)的内存地址是否相同,即是否指向同一个对象。比较是真正意义上的指针操作。 equals比较的是两个对象的内容是否相同,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该 阅读全文
posted @ 2020-07-05 22:04 Jerryoned 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 针对这个问题,首先我们要知道什么是值传递,什么是引用传递。 值传递是指在调用函数时将实际值复制一份副本,然后将副本传递到函数中去,这样函数对参数修改实际上对副本的修改,不会影响到实际参数。 引用传递是指在调用函数时将地址传递到函数中,函数对参数的修改自然会影响到实际参数。 总之,一句话概括值传递和引 阅读全文
posted @ 2020-07-02 22:49 Jerryoned 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 之前对JVM中堆内存和栈内存都是一直半解,今天有空就好好整理一下,用做学习笔记。 包括Java程序在内,任何程序在运行时都是要开辟内存空间的。JVM运行时在内存中开辟一片内存区域,启动时在自己的内存区域中进行更细致的划分,因为虚拟机中每一片内存处理的方式都不同,所以要单独进行管理。实际上在JVM有五 阅读全文
posted @ 2020-06-30 23:40 Jerryoned 阅读(746) 评论(0) 推荐(0) 编辑
摘要: 最近一直在研究Spring Boot。从GitHub上下载了一个my-Blog源码,一边看,一边自己尝试去实现,结果掉在坑了,研究了近一周才爬出来,特地来这博客园记录下来,一是避免自己在放这样的错误,二是希望看到的朋友能有所帮助,毕竟我在网上查了很多资料,答案基本上千篇一律,并不能解决我的问题。 先 阅读全文
posted @ 2020-06-15 23:33 Jerryoned 阅读(11777) 评论(0) 推荐(0) 编辑