随笔分类 - 后端
摘要:Voliate关键字 禁止线程缓存变量结果。 可见性问题主要指一个线程修改了共享变量值,而另一个线程却看不到。 引起可见性问题的主要原因是每个线程拥有自己的一个高速缓存区——线程工作内存 1.Voliate保证可见性 不使用volatile关键字 public class Test { privat
阅读全文
摘要:深入理解Java之synchronized 1.问题发散 我们知道syhchronized(后面用sync替代)是用来控制线程同步的,其可以用在代码块上也可以用在方法上。但是sync很”难”用,且看下段代码,首先说明一下这段代码的作用,用sync来锁住一个方法,让不同线程能够顺序执行这段方法 cas
阅读全文
摘要:深拷贝和浅拷贝 1.类型 拷贝一般分为二大类 引用拷贝 和 对象拷贝,我们通常讲的深拷贝和浅拷贝都属于对象拷贝。 2.引用拷贝 定义:顾名思义,即是对引用地址的拷贝,说明引用地址一样,指向堆中的对象是同一个对象。 如果对一个对象进行改变,其他对象也会跟着改变。 Teacher teacher = n
阅读全文
摘要:ThreadLocal 1.什么是ThreadLocal ThreadLocal(线程本地),用通俗易懂的话来说,就是每个线程中都会存一份变量副本,这个变量相对于当前线程来说是全局的 ThreadLocal<Integer> tl = new ThreadLocal<>(); Thread t1 =
阅读全文
摘要:1.Stream 2.Optional 2.1 概述 概述:我们在编写代码的时候出现最多的就是空指针异常,所以在很多时候我们需要做各种非空的判断 例如: Author author = getAuthors(); if(author != null){ System.out.println(auth
阅读全文
摘要:Spring事务 1.事务的传播行为 1.1.Propagation.REQUIRED 定义:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。这是默认值(default) @Transactional(rollbackFor = Exception.class, propaga
阅读全文
摘要:1.SpringSecurity执行流程 2.RBAC模型 用户表(user),权限表(menu),角色表(role),角色权限关联表(role_menu) 关系均为多对多 3.自定义失败处理 4.跨域 4.1.springboot跨域配置 @Configuration public class C
阅读全文
摘要:Spring-01 1.Spring简介 Spring是一个开源框架,它由[Rod Johnson](https://baike.baidu.com/item/Rod Johnson)创建。它是为了解决企业应用开发的复杂性而创建的。 目前是JavaEE开发的灵魂框架。他可以简化JavaEE开
阅读全文
摘要:深入理解微服务Maven父子项目构造以及项目打包部署 一、问题背景 随着微服务项目的越来越流行,更多的公司开始使用微服务来搭建自己的业务系统。微服务很好地解耦了业务,每一个服务只提供特定的功能,真正的做到了各司其职,互不干扰,同时微服务间可以互相通信,可以更好的互相协调并完成一条完整的业务逻辑。
阅读全文
摘要:Java异常 1.异常类型 a.受检异常 受检异常(Checked Exceptions): 受检异常是那些在编译期间Java编译器要求必须处理(要么用try-catch捕获,要么在方法签名中用throws子句声明)的异常 它们继承自java.lang.Exception类,但不包括java.lan
阅读全文
摘要:Java设计模式 1.类图的表示法 1.1.关联关系 单向关联 双向关联 自关联 1.2.聚合关系 1.3.组合关系 1.4.依赖关系 1.5.继承关系 1.6.实现关系 2.软件设计原则 2.1.开闭原则 定义:对扩展开放,对修改关闭。在程序需要扩展的时候,不能去修改原有的代码,实现一个热插拔的效
阅读全文
摘要:Java全局异常处理和拦截器 1.全局异常处理 @ControllerAdvice 用于标识一个类,表示它是一个全局性的控制器异常处理器 @RestControllerAdvice 是 Spring Framework 提供的一个注解,用于全局性地处理控制器(Controller)抛出的异常。它结合
阅读全文
摘要:Java强引用、软引用、弱引用和虚引用 Java执行GC判断对象是否存活有两种方式其中一种是引用计数 引用计数:Java堆中每一个对象都有一个引用计数属性,引用每新增1次计数加1,引用每释放1次计数减1 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说
阅读全文
摘要:Java垃圾回收机制 标记-清除 算法 标记-整理 算法
阅读全文
摘要:Java基础知识巩固 1.修饰符 java中有四种访问修饰符,分别是 public default private protected (1)public:被 public 修饰的类、方法和变量可以被任何其他类访问 (2)private:被 private 修饰的类、方法和变量只能在声明它们的类内部
阅读全文
摘要:Java回调函数 1.前言 先让我们通过一个生活中的场景来还原一下回调的场景:你遇到了一个技术难题(比如,1+1等于几?,于是你去咨询大牛,大牛说现在正在忙,待会儿告诉你结果 此时,你可能会去刷朋友圈了,等大牛忙完之后,告诉你答案是2 那么,这个过程中询问问题(调用对方接口),然后问题解决之后再告诉
阅读全文
摘要:SpringCloud 1.服务注册中心 1.1.服务注册中心 定义:服务注册中心就是在整个微服务架构中单独抽取一个服务,这个服务不完成项目中任何业务功能,仅仅用来在微服务中记录微服务以及对整个系统微服务进行健康状态检查,以及服务元数据信息存储 1.2.服务注册中心组件开发 常用注册中心组件:eur
阅读全文
摘要:SpringBoot项目部署Docker 1.准备工作 1.IDEA创建的没有错误的springboot项目 2.安装好docker环境的linux服务器 centos7 3.MobaXterm工具 2.打包SpringBoot项目 打开idea工具,点击底部Terminal,在命令行中输入命令:m
阅读全文
摘要:一.SpringBoot 事件驱动(本地模式) 1.什么是事件驱动 Spring的事件(Application Event)为Bean与Bean之间的消息通信提供了支持 事件机制中有三种角色:发布事件者、事件、事件监听者 发布事件者:发布事件的对象 事件:事件的具体内容 事件监听者:等待处理时间的对
阅读全文
摘要:Lambda表达式 java普通函数的组成部分由:返回值,方法名,参数列表,方法体 int add(int a, int b){ return a + b; } Lambda表达式的函数,只有参数列表和方法体 ( 参数列表 )-> { 方法体 } ():用来描述参数列表 { } :用来描述方法体 -
阅读全文