- 博客(11)
- 资源 (2)
- 收藏
- 关注
原创 java面试锁的问题,锁升级
经典面试题回顾基础原理回顾CAS 原理简单看下jdk中一个cas原理的运用 : unsafe.class public final int getAndAddInt(Object var1, long var2, int var4) { int var5; do { var5 = this.getIntVolatile(var1, var2); } while(!this.compareAndSwapInt(va
2020-08-11 15:35:04 780 1
原创 java8补充——函数式编程、新增时间类函数
1、函数式接口函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。public interface PersonSay { void sayMessage(String message);} public static void main(String[] args) { PersonSay ps = (message) -> { System.out.println("hello" + message
2020-08-05 16:36:42 9498
原创 spring注解驱动开发
1、传统的写配置文件的方式,配置一个类然后使用是用下面的方法:使用:2、使用注解的方式://告诉spring这是一个配置类@Configurationpublic class Anno { //给容器中注册一个bean,类型为返回值类型 id是默认方法名作为id @Bean public Person person(){ return new Person("hdx",27); }}使用: public static
2020-08-05 15:08:49 171
原创 springboot源码解析
1、springboot是什么?脚手架,纵观框架的发展过程,最终由springboot出来做了SSM的整合,方便程序员偷懒,因为SSM整合过程中有很多的配置,很多的依赖,很容易出错,也不方便快速开发。2、spring创建对象的过程,图解开始springboot源码讲解1、springboot的启动过程1、解释下beanFactory和factoryBean之间的区别?二者都是用来生产对象的,但是factoryBean提供了三个方法,其中一个是getObject().
2020-08-03 00:41:09 158
原创 rabbitmq延迟队列——订单超时
从单体应用到微服架构:可以先讲服务根据业务进行解耦,然后再做集群,这样在应用层就解决了大量的并发和计算数据库层面的演变:读写分离,分库分表,对于秒杀这样的很多热点数据可以放到redis 缓存里面。对于搜索的内容还需要搜索引擎(分布式搜索引擎)订单延时的回顾比如一个秒杀活动,很多人同时抢,有些人抢到了,但是一直没有支付,后面的人没抢到,当时又很想买,这样就造成了想买的下不到单的情况,最终会导致商品销量不好。这样就需要延迟队列来解决超时不支付,订单自动取消,库存系统加回去。其他用户可...
2020-06-16 18:19:06 1181
原创 springboot webflux
函数式编程:网上也没有清晰的定义,我个人理解函数式编程和非函数编程是这样的:有流相关的一些思想,并能运用到工作中,我们就可以说自己会函数式编程。为什么要使用函数式编程?和命令式编程区别?命令式编程你要告诉计算机怎样做,才能实现什么样的功能,但是在函数式编程里面你只需告诉计算机需要什么样的功能,具体怎样做不需要告诉他,不需要关注实现的细节比如:找到最小值:你需要告诉程序怎样去比较才能找出最小的值,这样的编程叫命令式编程用了函数式编程,直接java8就搞定了,个人认为函数式编程更..
2020-06-15 15:48:46 273
原创 docker专题讲解——超详细
docker路线Docker概述 Docker安装 Docker命令镜像命令 容器命令 操作命令...Docker镜像 Docker数据卷 Docker网络原理 idea整合Docker Docker compose (集群版实操) Docker swarm jenkins也需要学docker 概述1、项目多环境的情况下需要部署很多套,环境部署相当麻烦,部署多了还有可能部署错了,所以是费时费力的。2、当打包jar包的时候顺便把运行的环境也打包进去,docke.
2020-06-01 22:00:13 360
原创 springcloud微服务系列课程——1
为什么需要将单一应用拆成微服务——微服务优点根据业务的不同将服务拆分成一个一个的应用,实现完全的解耦 每个服务都很小,多个服务之间可以并行开发互不影响 微服务能使用不同的语言开发(不同语言之间可以通过sidecar进行相互调用) 每个服务都可以有自己的数据库,也可以用公共的微服务缺点机器内存消耗大,每个服务单独部署,都要启动一个jvm 随着服务数量增多,难以维护 服务间通信的成本变高了 因为是分布式部署,所以问题追踪难 运维压力增大,当服务比较多的时候需要配合自动化部署工具.
2020-06-01 20:30:09 238
原创 多线程并发编程——1
哪些情况下会使用到多线程1、通过并行计算,提高程序的性能2、通过开启多线程的方式解决网络IO、响应等待的问题 解释:比如socket的accept,当客户端发送来一个请求,必须等accept之后才能继续往下执行,当多个客户端同时发起请求的时候,Tomcat的就会在线程池里面用多个线程的方式并行处理,从而解决一个一个等待的现象。多线程常见的3种的实现方式第一种:继承Thread类:重写run()方法public class TestThread extends Thread{..
2020-05-31 10:13:17 188
原创 final和static的作用、静态变量&成员变量&局部变量的定义和区别
final和static的作用: 一、final final是java关键字,被final修饰的变量值无法改变,代表“终态”的意思。final类不能被继承,没有子类,final类中的方法也默认是final类型的 final修饰的方法不能被子类覆盖,但是可以被继承 final成员变量表示常量,只能被赋值一次,赋值后值不再改变。 final不能用于修饰构造方法。 1、final类: 如果设计类的时候希望这个类不被子类继承,并且确认这个类不...
2020-05-25 17:39:37 1693
java面试宝典
2016-04-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人