自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 JUC并发编程

jun

2022-08-10 19:37:11 141 1

原创 Redis问题沉淀

redis

2022-07-25 23:15:52 247

原创 学习计划1-10

1、谈谈对SpringIOC的理解IOC:控制反转,原来我们使用对象的时候,是由使用者控制的,有了spring之后,可以将整个对象交给容器来帮助我们进行管理(理论思想)DI:依赖注入,将对应的属性注入到具体的对象中@Autowired,@Resource,populateBean方法来完成属性注入容器:存储对象,使用map结构在存储对象。在spring中存储对象的时候一般有三级缓存。//todobean的生命周期是什么?//todo循环依赖问题是怎么产生的,以及如何解决?//todo面试官,这是

2022-04-02 16:42:01 277

原创 Dubbo问题整理02

Dubbo 的架构设计?Dubbo 框架设计一共划分了 10 个层:1、服务接口层(Service):该层是与实际业务逻辑相关的,根据服务提供方和服务消费方的业务设计对应的接口和实现。2、配置层(Config):对外配置接口,以 ServiceConfig 和ReferenceConfig 为中心。3、服务代理层(Proxy):服务接口透明代理,生成服务的客户端 Stub和服务器端 Skeleton。4、服务注册层(Registry):封装服务地址的注册与发现,以服务 URL为中心。5

2021-04-18 17:10:15 182

原创 Dubbo问题整理01

Dubbo 是什么?Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和Spring 框架无缝集成。Dubbo 的主要应用场景?1、透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何 API 侵入。2、软负载均衡及容错机制,可在内网替代 F5 等硬件负载均衡器,降低成本,减少单点。3、服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的 IP 地址,并且能够平滑添加或删

2021-04-17 00:08:07 102

原创 注解和反射

注解元注解@Target:定义注解的作用目标**用于描述注解的范围,即注解在哪用。**它说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)等。取值类型(ElementType)有以下几种:CONSTRUCTOR:用于描述构造器FIELD:用于描述域即类成员变量LOCAL_VARIABLE:用于描述局部变量

2021-04-14 11:07:34 57

转载 Bean生命周期

Bean 的完整生命周期在传统的Java应用中,bean的生命周期很简单,使用Java关键字 new 进行Bean 的实例化,然后该Bean 就能够使用了。一旦bean不再被使用,则由Java自动进行垃圾回收。相比之下,Spring管理Bean的生命周期就复杂多了,正确理解Bean 的生命周期非常重要,因为Spring对Bean的管理可扩展性非常强,下面展示了一个Bean的构造过程Bean 的生命周期如上图所示,Bean 的生命周期还是比较复杂的,下面来对上图每一个步骤做文字描述:Spring

2021-04-13 20:58:56 83

转载 缓存和数据库一致性/sql优化/主键外键索引

如何保证缓存与数据库的一致性一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不是严格要求 缓存 + 数据库 必须保持一致性的话,最好不要做这个方案。即:读请求和写请求串行化,串到一个内存队列里去。串行化可以保证一定不会出现不一致的情况,但是它也会导致系统的吞吐量大幅度降低,用比正常情况下多几倍的机器去支撑线上请求。Cache Aside Pattern最经典的缓存+数据库读写的模式,就是 Cache Aside Pattern。读的时候,先读缓存,缓存没有的话,就读

2021-04-10 16:36:35 115

原创 索引/连接池/缓存

数据库常见问题索引的作用和原理实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。建立索引会占用磁盘空间的索引文件。为什么能够提高查询速度?索引就是通过事先排好序,从而在查找时可以应用二分查找等高效率的算法。一般的顺序查找,复杂度为O(n),而二分查找复杂度为O(log2n)。当n很大时,二

2021-04-08 21:03:07 275

原创 单例模式 /ThreadLocal

单例模式饿汉式单例(立即加载)//饿汉式单例(立即加载)public class SingletonEHan { //指向自己实例的私有静态引用,主动创建 private static SingletonEHan singletonEHan = new SingletonEHan(); //私有的构造方法 public SingletonEHan() { } //以自己实例为返回值的静态的公有方法,静态工厂方法 public static S

2021-04-04 16:57:55 1048 1

转载 Spring/事务

Spring为什么要使用 Spring简介目的:解决企业应用开发的复杂性功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能范围:任何Java应用简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。轻量从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Sprin

2021-03-31 16:27:18 169

转载 关键字/volatile/synchronized

关键字什么是线程安全?Synchronized 关键字sychronized 是java中的内置锁,可以限制线程对代码块或者方法的访问sychronized可以修饰类方法,实例方法,代码块在执行sychronized方法或代码块时,线程需要先获取被修饰对象的锁。一次只能有一个线程可以获取到一个对象的锁,同一个线程可以多次获取同一个对象的锁(可重入锁)sychronized 不能响应中断,当一个线程在等待锁的时候,调用该线程的interrupt是不起作用的锁的获取和释放是隐式的,进入同步s

2021-03-31 16:20:07 70

原创 并发编程02/线程复用/线程生老病死/禁Executors

并发编程02Java线程池是如何实现线程复用的呢在线程池中,线程会从 workQueue 中读取任务来执行,最小的执行单位就是 Worker,Worker 实现了 Runnable 接口,重写了 run 方法,这个 run 方法是让每个线程去执行一个循环,在这个循环代码中,去判断是否有任务待执行,若有则直接去执行这个任务,因此线程数不会增加。以春运形象来解释参数:corePoolSize:表示常驻核心线程数,如果大于0,即使本地任务执行完也不会被销毁。​

2021-03-29 17:10:58 118

原创 并发编程01/Synchronized/ReentrantLock

并发编程011.Synchronized用过吗,原理是什么​ Synchronized是由JVM实现的一种实现互斥同步的一种方式,被Synchronized修饰过的程序块,在编译前后被编译器生成了montiorenter和monitorexit两个字节码指令。​ 这两个指令是什么意思呢?在虚拟机执行到montiorenter指令时,首先要尝试获取对象的锁:如果这个对象没有锁定,或者当前线程已经拥有了这个对象的锁,把锁的计数器+1;当执行monitorexit指令时将锁计数器-1;当计数器为

2021-03-24 17:53:14 86

原创 JVM常见知识点

JVMJVM主要组成部分及其作用1、类加载器(Class Loader):加载类文件到内存。Class Loader只管加载,只要符合文件结构就加载,至于能否运行,他不负责。那是有Exectution Engine 负责的。2、执行引擎(Execution Engine):也叫解释器,负责解释命令,交由操作系统执行。3、本地库接口(Native Interface):本地接口的作用是融合不同的语言为java所用4、运行时数据区(Runtime Data Area):1)堆。堆是java对

2021-03-18 18:02:10 85

原创 SpringMVC/@几个注解

SpringMVCSpringMVC流程1、一个请求匹配前端控制器DispatcherServlet 的请求映射路径(web.xml中指定),WEB容器将该请求转交给DispatcherServlet 处理。2、DispatcherServlet 接收到请求后,将根据请求信息交给处理器映射器(HandlerMapping)3、HandlerMapping根据用户的url请求,查找匹配该url的Handler,并返回一个执行链。4、DispatcherServlet 再请求,处理器适配器(Hand

2021-03-15 21:03:00 95

原创 Java各种锁原理

Java锁乐观锁 / 悲观锁乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量,在Java中java.util.concurrent.atomic包下面的原子变量类就是使用了乐观锁的一种实现方式CAS(Compare and Swap 比较并交换)实现的。一般会使用“数据版本机制”或“CAS操作”来实现。(1) 数据版本机制  实现数据版本

2021-03-11 21:00:25 128

原创 Java多线程03(runnable/callable/sleep/wait/notify/notifyAll/run/start/线程池)

Java多线程03(runnable/callable/sleep/ wait/notify/ notifyAll/run/start/线程池)并发和并行的区别例子1你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发(不一定是同时的)。你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。例子2并发指在一台CPU上“同时”(也就是快速切换)处理多个任务。并行指在多台C

2021-03-10 20:13:39 182

原创 java容器01(List、Set、Map)

Java容器1.常用的容器List , Set, Map都是接口,前两个继承至Collection接口,Map为独立接口Set下有HashSet,LinkedHashSet,TreeSetList下有ArrayList,Vector,LinkedListMap下有Hashtable,LinkedHashMap,HashMap,TreeMapCollection接口下还有个Queue接口,有PriorityQueue类Connection接口:— List 有序,可重复ArrayList

2021-03-10 17:18:05 190

原创 Java基础常见高频问题

Java基础1.Java几种基本类型基本数据类型:​ 数值型:整数类型(byte,short,int,long); 浮点类型:(float,double)​ 字符型:char​ 布尔型:boolean引用数据类型:类(class),接口(interface),数组2.String能被继承吗 为什么不可以,因为String类有final修饰符,而fin

2021-03-08 20:35:47 124

原创 Java 多线程02(线程状态、线程同步)

Java 多线程02(线程状态、线程同步)线程状态Join合并线程:等待此线程执行完成后,再执行其他线程,其他线程阻塞。public class TestJoin implements Runnable { @Override public void run() { for (int i = 0; i < 500; i++) { System.out.println("VIP线程来插队了" + i); } }

2021-03-07 22:18:21 75

原创 关于OSGI中的Felix热插拔技术

关于OSGI中的Felix热插拔技术OSGI介绍OSGI的全称是Open Service Gateway Initiative,即开放服务网关。OSGI是基于模块(Bundle)驱动的,每个模块都有属于自己的classpath和类加载器,模块之间通过包暴露和引入进行关联,每个模块有着自己独立的生命周期,我们可以动态地对模块进行加载、卸载、更新。如此看来,OSGI可以用一句话描述,就是一个为Java提供的动态模块化的系统。Idea创建OSGI工程(简单整理一下)File -> New -&g

2021-03-06 19:06:47 688 2

原创 Java 多线程 自习功课笔记01(线程简介、线程创建)

Java 多线程 自习功课笔记线程简介(任务,进程,线程,多线程 )多任务:examp:吃饭玩手机多线程:多条道路解决一条道路阻塞的问题,多条线路同时跑起来。普通方法调用和多线程:程序.进程(Process).线程(Thread):一个进程可以有多个线程。如视频中同时听声音,图像,看弹幕等等进程:是执行程序的一次执行过程,它是一个动态的概念。是系统分配资源的单位。线程:是CPU调度和执行的单位线程创建Thread class:继承Thread类//创建线程方式一:继承Thread类

2021-03-06 18:31:27 382 8

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除