学习
文章平均质量分 54
约翰.史密斯
生活不止有眼前的苟且。
展开
-
java多线程学习
一.实现多线程二.开启多线程启动三.线程停止、中断四.图解线程生命周期五.Thread和Object类中的重要方法详解六. 线程属性七.线程异常处理八.线程使用的利弊并发编程底层原理活跃性问题:死锁、活锁、饥饿...原创 2021-04-09 20:53:13 · 138 阅读 · 0 评论 -
四.图解线程生命周期
四.图解线程生命周期线程的一生,六个状态(生命周期)public enum State { //新建 NEW, //可运行 RUNNABLE, //阻塞 BLOCKED, //等待 WAITING, //计时等待 TIMED_WAITING, //终止 TERMINATED; }每个状态的含义New已创建,但是还未启动的新线程.也就是已经new出来了,但是还没有调原创 2021-04-08 15:50:06 · 400 阅读 · 0 评论 -
三.线程停止、中断
三线程停止、中断之最佳实践1.停止线程的正确方法(原理)通常线程会在什么情况下停止正常运行的线程只有在两种状况下会停止1.run方法的代码全部执行完毕,正确结束的情况2.出现异常,并且方法没有捕获,这时线程也会停止线程停止之后,它所占有的资源比如说内存等,都会和其他不可达的对象一样被jvm回收通过interrupt来通知,而不是强制停止注意只是通知,如果被通知线程执行的代码没有对这个通知进行处理,没有在被捕获的异常中做相应的退出操作,那么是不会真正退出的,而是直接执行到run方法代码结束为止原创 2021-04-08 15:47:09 · 878 阅读 · 0 评论 -
二.开启多线程启动
二.开启多线程启动的世界1.启动线程的正确和错误方式 public static void main(String[] args) { Runnable run = () -> System.out.println(Thread.currentThread().getName()); run.run(); sout(); Thread thread = new Thread(run); thread.start(原创 2021-04-08 15:35:09 · 177 阅读 · 0 评论 -
@Bean和@Component
@Bean和@Component都是用于创建一个bean实例.区别于@Component只能定义bean名称,且只能用于类上//只能用于类上@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Indexedpublic @interface Component { /** * The value may indicate a suggestion for a logical component原创 2020-12-26 00:24:38 · 3398 阅读 · 1 评论 -
Spring Aop 切面通知(Advice)的初始化和执行流程
文章目录配置类通知的初始化执行顺序涉及类和顺序频繁调用方法一个切面各个切点执行顺序结果配置类@Component@Aspectpublic class LogComponent { @Pointcut("execution(* com.test.UserService.*(..))") public void plc() { } @Before("plc()") public void before(JoinPoint jp) { Strin原创 2020-12-10 20:55:40 · 1045 阅读 · 1 评论 -
第 05 章 Spring Boot 整合持久层技术
文章目录前言JDBCSpringBoot整合jdbcJDBC多数据源MybatisSpringBoot整合MybatisMybatis多数据源JPASpringBoot整合JpaJpa多数据源总结前言当前版本mysql8.0.15父pom <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001原创 2020-12-09 18:35:09 · 155 阅读 · 0 评论 -
第 04 章 Spring Boot 整合 Web 开发
文章目录JSON处理前言自动转配的json处理默认的json处理(Jackson)剩下的存在自动配置的json处理源头(@EnableAutoConfiguration)手动配置的fastjson案例源头(DelegatingWebMvcConfiguration)静态资源访问默认的访问策略自定义静态资源访问代码配置properties配置总结文件上传参数定义自定义配置代码配置properties配置属性来源单文件表单上传单文件ajax上传多文件表单上传多文件ajax上传大文件上传(兼容乱序和顺序)乱序上传原创 2020-12-07 21:54:32 · 533 阅读 · 0 评论 -
第 02 章 Spring Boot 基础配置
文章目录原创 2020-12-01 01:27:59 · 290 阅读 · 0 评论 -
装饰器模式和观察者模式
文章目录装饰器模式装饰者模式的应用场景装饰者模式在源码中的应用装饰者模式的优缺点观察者模式观察者模式的应用场景观察者模式在源码中的应用总结装饰器模式装饰者模式的应用场景装饰者模式(Decorator Pattern)是指在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式。装饰者在代码程序中适用于以下场景:1、用于扩展一个类的功能或给一个类添加附加职责。2、动态的给一个对象添加功能,这些功能可以再动态的撤销。例如登录功能定义操原创 2020-11-28 20:51:13 · 328 阅读 · 0 评论 -
策略模式和适配器模式的区别
文章目录策略模式适配器模式总结策略模式对于策略模式来说,在调用者看来每个策略都是已知的策略,对于会返回怎样的结果,有着一个预期例如调用Arrays.sort(T[], java.util.Comparator<? super T>) public static void main(String[] args) { List<Integer> lists = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);原创 2020-11-28 14:49:22 · 4459 阅读 · 3 评论 -
模板模式和适配器模式
文章目录模板模式(Template)简介模板模式(Template)简介模板模式又叫模板方法模式,是指定一个算法的骨架,并允许子类为一个或多个步骤提供实现,模板方法使得子类可以在不改变算法结构的情况下重新定义算法的某些步骤,属于行为性设计模式.模板方法适用于以下应用场景:1.一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。2.各子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码重复。例如jdbc的使用,一次jdbc的调用一般需要经历如下流程public void原创 2020-11-28 01:00:44 · 760 阅读 · 0 评论 -
委派模式和策略模式
文章目录委派模式介绍举例策略模式介绍委派模式介绍并不属于23种设计模式,可以理解为一种特殊的静态代理,但比起代理关注过程(例如JDK动态代理的Invoke),委派更关注结果(对对应返回值的处理,派遣任务后处理结果)举例例如在SpirngMVC的dispatchservlet中对于请求的映射派遣,就用到了委派模式@RestControllerpublic class HelloController { @GetMapping("/") public String hello(@原创 2020-11-26 17:26:04 · 245 阅读 · 1 评论 -
代理模式(JDK和CGLib)
文章目录掌握代理模式的应用场景和实现原理了解静态代理和动态代理的区别。静态代理动态代理JDK实现动态代理CGLib 实现动态代理生成代理对象通过java代码通过jvm工具生成的代理对象分析了解CGLib和JDK Proxy的根本区别手写实现JDK的动态代理生成Proxy类代码生成的代理类小结手写实现小结掌握代理模式的应用场景和实现原理生活中常见的常见,如租房中介,黄牛,婚介,猎头等代码中常见的应用有事务代理,非侵入式的日志监听等.代理模式(Proxy Pattern)的定义就是为一般对象提供代理(访原创 2020-11-25 22:43:06 · 132 阅读 · 0 评论 -
单例模式及原型模式
文章目录前言单例模式的应用饿汉式懒汉式通过内部类初始化IDEA下多线程的调试反射暴力攻击单例解决方案及原理分析序列化破坏单例的原理及解决方案。前言单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。单例模式是创建型模式。例如ServletContext、ServletContextConfig在 Spring 框架应用中 ApplicationContext,数据库的连接池都是单例模式单例模式的应用单例模式又分为饿汉式和懒汉式饿汉式原创 2020-11-25 02:59:18 · 1294 阅读 · 2 评论 -
SpringBoot2学习
系列文章目录第 00 章 准备工作第 01 章 Spring Boot 入门原创 2020-11-24 14:55:40 · 139 阅读 · 1 评论 -
第 01 章 Spring Boot 入门
文章目录前言SpringBoot的三种创建方式根据官网创建根据IDE开发工具创建手动创建启动类上的注解parent的理解参考文档前言SpringBoot的三种创建方式,启动类上的注解,parent的理解。SpringBoot的三种创建方式根据官网创建https://start.spring.io/通过点击右上角的Add Dependencies添加依赖,这里添加了一个web依赖直接通过idea导入就可以运行了根据IDE开发工具创建IDE(integrated development原创 2020-11-24 14:36:53 · 107 阅读 · 0 评论 -
设计模式学习
系列文章目录第 00 章 准备工作原创 2020-11-24 01:42:00 · 107 阅读 · 1 评论 -
第 00 章 准备工作(回顾xml配置SpringWeb和Java配置SpringWeb)
文章目录前言通过xml配置SpringWeb项目正文问题处理tomcat乱码解决玩转 IDEA 之 Maven依赖自动提示参考链接通过java配置SSM正文效果展示问题处理参考链接前言当前操作环境jdk1.8,maven3.6,tomcat9.0.19通过xml配置SpringWeb项目正文使用idea进行操作.首先通过idea#file->New->Project->Maven,直接选择next设置项目名和地址点击finish设置pom文件 <modelVe原创 2020-11-24 01:41:11 · 159 阅读 · 0 评论 -
关于SpringMvc使用时,不加@RequestParam注解,根据方法形参名也可以获取请求值的分析
首先是不加@RequestParam注解,请求方法http://localhost:8080/a/admin/hello?sex=1&name=5&password=x可以看到,方法的参数列表里都是有值的那么,这是为什么呢?首先需要了解@RequestParam注解的作用http://localhost:8080/a/admin1/hello?sex=1&...原创 2019-06-24 21:09:27 · 4669 阅读 · 0 评论 -
记录一次虚拟机Linux下jdk1.9的安装
本身是打算直接用wget命令网络获取的,可是现在Oracle官网下载需要登录认证了......直接下载的话就会报错401需要认证于是只好先注册,然后下载tar.gz的包通过VMware-tools的共享文件夹功能,来实现文件互传一开始安装出错,搞半天没有头绪,就把VMware-tools卸载了(可能根本就没安装上去),然后把多出来的目录都删除了rm ...原创 2019-04-14 15:34:56 · 716 阅读 · 0 评论 -
解决@OneToMany关联后插入新数据,先清空中间表再插入的问题
最近学习大佬的开源项目https://waylau.com/books/,有个用到hibernate的地方困惑很久,blog对象和comment对象为一对多关系,一个博客可能有多个评论 但是在配置完成之后,每插入一条新的评论,中间表就会被清空,然后重新插入,这很明显是不合理的。如果评论变多,一个博客上百条评论,每次新增一个评论都需要执行上百次的插入操作 ...原创 2018-12-30 09:31:02 · 2752 阅读 · 0 评论 -
最近学习Security 做个记录
按照例子进行配置之后 看了一下源码 发现每次到这里之后 就进入了 重写的方法 而不是父类本身的方法一直比较纠结 以为是父类在执行自身的方法的时候 如果有子类重写了它的方法 Security就会做一个 不清楚的操作 然后将这里的方法的入口变成重写的方法研究了一下之后 发现 回退几步的话先是获得了自己配置的类 而这个类继承了WebSecurit...原创 2018-11-24 15:40:30 · 150 阅读 · 0 评论 -
使用gradle的错误
一开始老以为是bean注入失败 之后才知道是类没有找到 Error creating bean with name 'blogController': Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [com.xgl...原创 2018-11-05 14:56:01 · 952 阅读 · 0 评论