![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
知识点复习
普通网友
这个作者很懒,什么都没留下…
展开
-
spring 知识点01
Spring可以做很多事情,它为企业级开发提供给了丰富的功能,但是这些功能的底层都依赖于它的两个核心特性,也就是依赖注入(dependency injection,DI)和面向切面编程(aspect-oriented programming,AOP)。为了降低Java开发的复杂性,Spring采取了以下4种关键策略基于POJO的轻量级和最小侵入性编程;通过依赖注入和面向接口实现松耦合;...原创 2020-03-28 22:14:19 · 58 阅读 · 0 评论 -
消息队列mq 知识点02
消息队列的面试题31、面试题如何保证消息不被重复消费啊(如何保证消息消费时的幂等性)?2、面试官心里分析其实这个很常见的一个问题,这俩问题基本可以连起来问。既然是消费消息,那肯定要考虑考虑会不会重复消费?能不能避免重复消费?或者重复消费了也别造成系统异常可以吗?这个是MQ领域的基本问题,其实本质上还是问你使用消息队列如何保证幂等性,这个是你架构里要考虑的一个问题。面试官问你,肯...原创 2020-01-31 16:32:45 · 67 阅读 · 0 评论 -
ThreadLocal原理
ThreadLocal原理分析与使用场景什么是ThreadLocal变量ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象,在不同的 Thread 中有不同的副本。这里有几点需要注意:因为每个 Thread 内有自己的实例副本,且该副本只能由当前 Thread 使用。这是也是 ThreadLocal 命名的由来。 既然每个 Thread 有自己的实例副本,且其它 Thread 不可访问,那就不存在多线程间共享的问题。ThreadLocal 提供了线程本地的原创 2020-07-20 18:14:13 · 46 阅读 · 0 评论 -
一致性hash
一致性hash算法先构造一个长度为2^32的整数环(这个环被称为一致性Hash环),根据节点名称的Hash值(其分布为[0, 232-1])将服务器节点放置在这个Hash环上,然后根据数据的Key值计算得到其Hash值(其分布也为[0, 232-1]),接着在Hash环上顺时针查找距离这个Key值的Hash值最近的服务器节点,完成Key到服务器的映射查找。这种算法解决了普通余数Hash算法伸...原创 2019-09-23 09:46:15 · 88 阅读 · 0 评论 -
JDK 源码复习 lock 包AQS 分析03
转载自美团点评技术博客https://mp.weixin.qq.com/s/sA01gxC4EbgypCsQt5pVog 本文只涉及到独占锁,不涉及共享锁Java中的大部分同步类(Lock、Semaphore、ReentrantLock等)都是基于AbstractQueuedSynchronizer(简称为AQS)实现的。AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型...原创 2019-12-07 09:23:27 · 187 阅读 · 0 评论 -
MyCat 分析01
一、后端连接工厂,开启socketChannel1 如果是AIO,就开启一个异步的channel2 NIO 模式,就开启SocketChannel,然后设置为非阻塞的+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++查看代码MySQLConnectionFactory,创建后台连接的...原创 2020-03-21 18:37:25 · 216 阅读 · 0 评论 -
Mysql 知识点汇总01
https://thinkwon.blog.csdn.net/article/details/104778621数据库基础知识为什么要使用数据库数据保存在内存优点: 存取速度快缺点: 数据不能永久保存数据保存在文件优点: 数据永久保存缺点:1)速度比内存操作慢,频繁的IO操作。2)查询数据不方便数据保存在数据库1)数据永久保存2)使用SQL语句,查询方便效率...原创 2020-04-23 11:46:42 · 88 阅读 · 0 评论 -
JDK 源码复习 concurrent 包 concurrentHashMap 01
https://baijiahao.baidu.com/s?id=1617089947709260129&wfr=spider&for=pchttps://www.cnblogs.com/zerotomax/p/8687425.htmlhttps://www.cnblogs.com/yangming1996/p/8031199.htmlhttps://www.cnblo...原创 2019-09-18 09:55:33 · 120 阅读 · 0 评论 -
Java 基础知识点01
原创 2020-02-15 10:21:44 · 42 阅读 · 0 评论 -
知识点复习46 Java 垃圾回收03
吞吐量优先选择什么垃圾回收器?响应时间优先呢?新生代 Parallel GC 回收器新生代 Parallel GC 回收器与新生代 ParNew 回收器非常类似,其也是使用复制算法,都是多线程、独占式的收集器,也会导致 Stop-The-World。但其余 ParNew 回收器的一个重大不同是:其非常注重系统的吞吐量。之所以说新生代 Parallel GC 回收器非常注重系统吞吐量,是...原创 2019-10-13 14:47:33 · 189 阅读 · 0 评论 -
知识点复习0704 java基础07
java 为什么wait(),notify(),notifyAll()必须在同步方法/代码块中调用?2015-11-01 15:59:39FishBear_move_on阅读数 7982在Java中,所有对象都能够被作为"监视器monitor"——指一个拥有一个独占锁,一个入口队列和一个等待队列的实体entity。所有对象的非同步方法都能够在任意时刻被任意线程调用,此时不需要考虑加锁的...原创 2019-10-12 12:07:43 · 94 阅读 · 0 评论 -
知识点复习45 Java NIO && DirectBuffer
用户态只能执行简单运算,不能调用系统资源,通过系统接口函数,向内核发出指令Linux I/O 读写方式Linux 提供了轮询、I/O 中断以及 DMA 传输这 3 种磁盘与主存之间的数据传输机制。其中轮询方式是基于死循环对 I/O 端口进行不断检测。I/O 中断方式是指当数据到达时,磁盘主动向 CPU 发起中断请求,由 CPU 自身负责数据的传输过程。DMA 传输则在 ...原创 2019-10-12 00:11:35 · 293 阅读 · 0 评论 -
知识点复习08 Java 垃圾回收01
jvm 中一次完整的 GC 流程是怎样的,对象如何晋升到老年代,说说你知道的几种主要的jvm 参数。对象诞生即新生代->eden,在进行minor gc过程中,如果依旧存活,移动到from,变成Survivor,进行标记代数,如此检查一定次数后,晋升为老年代,堆内存GC JVM(采用分代回收的策略),用较高的频率对年轻的对象(young generation)进行YGC...原创 2019-10-05 15:23:26 · 101 阅读 · 0 评论 -
知识点复习 20 Mysql 知识点01
数据库的三范式是什么?什么是反模式?1.1第一范式(1NF)第一范式,强调属性的原子性约束,要求属性具有原子性,不可再分解。举个例子,活动表(活动编码,活动名称,活动地址),假设这个场景中,活动地址可以细分为国家、省份、城市、市区、位置,那么就没有达到第一范式。1.2第二范式(2NF)第二范式,强调记录的唯一性约束,表必须有一个主键,并且没有包含在主键中的列必须完全依赖于主键,...原创 2019-10-05 15:20:19 · 265 阅读 · 0 评论 -
知识点复习40 实战设计
预防“缓存被击穿”总结评估缓存是否满足具体业务场景的请求流量,不是简单地对预估访问流量除以单台缓存的最大服务能力。 如果使用的缓存机制是按key的hash值散列到同一台机器,则必须梳理出当前业务场景中被高并发访问的那些key,看看这些key的并发访问量是否会超过单台机器的服务能力,如果超过则必须采取更多措施进行规避。 除了关注key的并发访问量外,还要关注key对应value的大小,如果k...原创 2019-10-08 10:42:48 · 169 阅读 · 1 评论 -
知识点复习0703 java基础06
简要解释: 序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。 序列化是为了解决在对对象流进行读写操作时所引发的问题。序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用...原创 2019-10-07 20:38:01 · 116 阅读 · 0 评论 -
知识点复习0702 java基础05
一、引言Cloneable接口是Java开发中常用的一个接口, 它的作用是使一个类的实例能够将自身拷贝到另一个新的实例中,注意,这里所说的“拷贝”拷的是对象实例,而不是类的定义,进一步说,拷贝的是一个类的实例中各字段的值。在开发过程中,拷贝实例是常见的一种操作,如果一个类中的字段较多,而我们又采用在客户端中逐字段复制的方法进行拷贝操作的话,将不可避免的造成客户端代...原创 2019-10-07 17:51:31 · 162 阅读 · 0 评论 -
知识点复习41 计算机网络
TCP建立连接的过程rest 风格 是用来描述什么的?描述接口(api) ,各种接口.http 接口 按照rest 风格设计 就是 restfull httpwebservice 接口 按照rest 风格设计 就是 restfull webserivce.这和rest 风格的http 接口 比较来说 ,只能算是实现了 一个接口 ,但是 没有 更加规范的定义 h...原创 2019-10-08 20:45:00 · 111 阅读 · 0 评论 -
知识点复习0801 垃圾回收器总结
前面文章中,我们介绍了 Java 虚拟机的内存结构,Java 虚拟机的垃圾回收机制,那么这篇文章我们说说具体执行垃圾回收的垃圾回收器。总的来说,Java 虚拟机的垃圾回收器可以分为四大类别:串行回收器、并行回收器、CMS 回收器、G1 回收器。串行回收器串行回收器是指使用单线程进行垃圾回收的回收器。因为每次回收时只有一个线程,因此串行回收器在并发能力较弱的计算机上,其专注性和独占性的特...原创 2019-10-09 13:55:01 · 185 阅读 · 0 评论 -
知识点复习42 Java NIO 01
1.1. JavaIO读写原理无论是Socket的读写还是文件的读写,在Java层面的应用开发或者是linux系统底层开发,都属于输入input和输出output的处理,简称为IO读写。在原理上和处理流程上,都是一致的。区别在于参数的不同。用户程序进行IO的读写,基本上会用到read&write两大系统调用。可能不同操作系统,名称不完全一样,但是功能是一样的。先强调一个基础知...原创 2019-10-09 23:14:21 · 331 阅读 · 0 评论 -
编程规范
1.代码提交pr前,需要对所有涉及的修改进行格式化2.去掉所有多余的import3.http接口必须有@RequestLog注解4.对简单的数据校验,使用注解实现5.业务数据校验,只校验一次,多余的校验需要删除6.用MAssert代替checkArgument校验7.接入外部接口,需要充分利用开关,降低对外部接口的依赖8.提供接口,需要了解调用方的调用场景,调用次数,影...原创 2019-10-10 15:56:11 · 328 阅读 · 0 评论 -
知识点复习43 架构设计与分布式
dubbo协议下的单一长连接与多线程并发如何协同工作上班的路上突然就冒出了这么个问题:既然在dubbo中描述消费者和提供者之间采用的是单一长连接,那么如果消费者端是高并发多线程模型的web应用,单一长连接如何解决多线程并发请求问题呢?对于单一的socket通道来说,如果发送方多线程的话,不加控制就会导致通道中的数据乱七八糟,接收端无法区分数据的单位,也就无法正确的处理请求。乍一看,似乎...原创 2019-10-10 21:47:18 · 103 阅读 · 0 评论 -
知识点复习39 Spring 01
spring中beanFactory和ApplicationContext的联系和区别总体上讲: BeanFactory是Spring中最基本、通用的工厂,这里的工厂,其不仅仅是构造实例,它可以创建并管理各种类的对象,即是Spring IOC容器体系结构的基本接口,其与其子接口便构成了Spring IOC容器的体系结构(如下图:IOC容器主要接口关系图)。所以不要把它理解成常...原创 2019-10-07 16:18:26 · 80 阅读 · 0 评论 -
知识点复习0701 java基础04
Java String类为什么是final的?答:1.为了实现字符串池 2.为了线程安全 3.为了实现String可以创建HashCode不可变性 首先你要理解final的用途,在分析String为什么要用final修饰,final可以修饰类,方法和变量,并且被修饰的类或方法,被final修饰的类不能被继承,即它不能拥有自己的子类,被final修饰...原创 2019-10-07 16:06:14 · 94 阅读 · 0 评论 -
知识点复习37 SpringBoot 知识点01
什么是springboot用来简化spring应用的初始搭建以及开发过程使用特定的方式来进行配置(properties或yml文件)创建独立的spring引用程序main方法运行嵌入的Tomcat无需部署war文件简化maven配置...原创 2019-10-06 20:00:14 · 145 阅读 · 0 评论 -
知识点复习15 计算机网络
HTTP1.0 HTTP 1.1 HTTP 2.0主要区别长连接HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接。HTTP是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,如果每次通讯都要重新建立连接的话,对性能有影响。因此最好能维持一个长连接,可以用个长连接来发多个请求。节约带宽HTTP 1...原创 2019-10-05 15:24:50 · 166 阅读 · 0 评论 -
知识点复习14 多线程02
ThreadLocal 用过么,用途是什么,原理是什么,用的时候要注意什么。Threadlocal底层是通过threadlocalMap进行存储键值 每个ThreadLocal类创建一个Map,然后用线程的ID作为Map的key,实例对象作为Map的value,这样就能达到各个线程的值隔离的效果。ThreadLocal的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个...原创 2019-10-05 15:24:40 · 86 阅读 · 0 评论 -
知识点复习13 多线程01
多线程的几种实现方式,什么是线程安全。实现runable接口,继承thread类。Java多线程面试问题1. 进程和线程之间有什么不同?一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的单一进程。线程可以被称为轻量级进程。线程需要较少的资源来创建和驻留在进程中,...原创 2019-10-05 15:24:33 · 109 阅读 · 0 评论 -
知识点复习12 操作系统
Linux 下 IO 模型有几种,各自的含义是什么。阻塞式io,非阻塞io,io复用模型,信号驱动io模型,异步io模型。Linux IO模型漫谈(1)Linux将所有外部设备都看做一个文件来进行操作。因此,linux对所有外部设备的操作都可以看做是文件的操作。文件的操作当然需要有个标示描述它,这就是文件描述符(file descriptor)。linux的IO操作如何形象理解...原创 2019-10-05 15:24:00 · 149 阅读 · 0 评论 -
知识点复习11 Spring 事务的传播属性
七种传播属性。事务传播行为所谓事务的传播行为是指,如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为。在TransactionDefinition定义中包括了如下几个表示传播行为的常量:TransactionDefinition.PROPAGATION_REQUIRED:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。Trans...原创 2019-10-05 15:24:21 · 163 阅读 · 0 评论 -
知识点复习10 tomcat学习
1、Tomcat的缺省端口是多少,怎么修改?1)找到Tomcat目录下的conf文件夹2)进入conf文件夹里面找到server.xml文件3)打开server.xml文件4)在server.xml文件里面找到下列信息<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectP...原创 2019-10-05 15:24:11 · 110 阅读 · 0 评论 -
知识点复习09 Java 垃圾回收02
g1 和 cms 区别,吞吐量优先和响应优先的垃圾收集器选择。Java G1 GC 垃圾回收深入浅出G1 GC全称是Garbage First Garbage Collector,垃圾优先垃圾回收器,以下简称G1。G1是HotSpot JVM的短停顿垃圾回收器。其实关于G1的论文早在2004年就有了,但是G1是在2012年4月发布的JDK 7u4中才实现。从长期来说,G1旨在取代CMS(...原创 2019-10-05 15:23:52 · 291 阅读 · 0 评论 -
知识点复习07 java基础03
在自己的代码中,如果创建一个 java.lang.String 对象,这个对象是否可以被类加载器加载?为什么类加载无须等到“首次使用该类”时加载,jvm允许预加载某些类。。。。在 jdk1.5 中,引入了泛型,泛型的存在是用来解决什么问题。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数,泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,以提高代...原创 2019-10-05 15:22:54 · 73 阅读 · 0 评论 -
知识点复习06 java基础02
反射的原理,反射创建类实例的三种方式是什么?一、什么是JAVA的反射机制Java反射是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等)、superclass(例如Object)、实现之interfaces(例如Cloneab...原创 2019-10-05 15:22:48 · 99 阅读 · 0 评论 -
知识点复习05 java基础01
抽象类和接口的区别,类可以继承多个类么,接口可以继承多个接口么,类可以实现多个接口么。1、抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。2、抽象类要被子类继承,接口要被类实现。3、接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现4、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通...原创 2019-10-05 15:22:30 · 98 阅读 · 0 评论 -
知识点复习04 java集合
TreeMap和LinkedHashMap是有序的(TreeMap默认升序,LinkedHashMap则记录了插入顺序)Java中的TreeMap用于存储与HashMap类非常相似的键值对。区别在于TreeMap提供了一种以排序顺序存储键/值对的有效方法。它是基于红黑树的NavigableMap实现。在这个Java TreeMap教程中,我们将学习TreeMap类,它的方法,用例和其他重要...原创 2019-10-05 15:22:23 · 69 阅读 · 0 评论 -
知识点复习03 设计模式
常用设计模式编程中自己都怎么考虑一些设计原则的,比如开闭原则,以及在工作中的应用。设计模式六大原则1.单一原则(Single Responsibility Principle):一个类只负责一项职责,尽量做到类的只有一个行为原因引起变化; a、业务对象(BO business object)、业务逻辑(BL business logic)拆分;2.里氏替换原则(LSP lis...原创 2019-10-05 15:25:01 · 90 阅读 · 0 评论 -
知识点复习02 JVM02
Java并发编程 Synchronized及其实现原理Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:(1)确保线程互斥地访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序问题。Java中每一个对象都可以作为锁,这是synchronized实现同步的基础:1、普通同步方法,锁是当前实例...原创 2019-10-05 15:22:01 · 85 阅读 · 0 评论 -
知识点复习16 架构设计与分布式
常见的缓存策略有哪些,你们项目中用到了什么缓存系统,如何设计的。Cdn缓存,redis缓存,ehcache缓存等Cdn 图片资源 js等, redis一主一从 echcache缓存数据分布式集群下如何做到唯一序列号。Redis生成,mongodb的objectId,zk生成http://www.cnblogs.com/haoxinyue/p/5208136.html用 java ...原创 2019-10-05 15:25:10 · 127 阅读 · 0 评论 -
短期学习计划
3.完成数据库中间件mycat,zebra代码分析, mycat 完成,zebra完成4.Canal源码分析 完成5. 服务保障 Rhino && Hystrix 完成6. Spring Boot 分析 开始7. 消息队列RocketMQ 分析 开始8. 分布式事务 sesta https://github.com/seata/seata;完成http://...原创 2019-10-06 17:08:39 · 175 阅读 · 0 评论