04 2020 档案
摘要:分布式锁简介 锁 是一种用来解决多个执行线程 访问共享资源 错误或数据不一致问题的工具 如果 把一台服务器比作一个房子,那么 线程就好比里面的住户,当他们想要共同访问一个共享资源,例如厕所的时候,如果厕所门上没有锁…更甚者厕所没装门…这是会出原则性的问题的..装上了锁,大家用起来就安心多了,本质也就
阅读全文
摘要:导读: 类加载器是怎么被创建出来的? 什么是双亲委派机制?为什么要有这种机制? Class实例和类加载器究竟是在Java Heap中,还是在方法区中? 类加载器: 可以实现通过一个类的全限定名称来获取描述此类的二进制字节流。实现这个动作的代码模块成为”类加载器“。 通过自定义类加载器可以实现各种有趣
阅读全文
摘要:1 Maven 介绍 1.1 为什么使用 Maven 由于 Java 的生态非常丰富,无论你想实现什么功能,都能找到对应的工具类,这些工具类都是以 jar 包的形式出现的,例如 Spring,SpringMVC、MyBatis、数据库驱动,等等,都是以 jar 包的形式出现的,jar 包之间会有关联
阅读全文
摘要:前言...... 投向oracle的怀抱☺☺☺☺☺☺☺☺ 1. 安装OracleDatabase客户端 11g 这里提供百度云链接供大家下载:客户端32位:pan.baidu.com/s/1a0M02GGk… 提取码:olvb客户端64位:pan.baidu.com/s/1IcK1MKpZ… 提取码
阅读全文
摘要:前言 代码开发最爽的技巧有哪些?代码热部署一定是其中之一。 想想一下,昏暗的灯光下,凌晨一点的你正在写着代码,思路如尿崩,写代码肆意顺畅,但是这个时候,你为了测试代码需要频繁的手动重启项目。这是一种何种的卧草,顺畅的思路被手动启动项目分割的支离破碎。 介个时候,你最需要的不是一颗平和的心,而是一个
阅读全文
摘要:一面竟然问我Maven? maven package和maven install 有什么区别? 你常用的maven命令有哪些? <dependencyManagement> 是干什么的? 还有用过其它构建工具吗? 和maven有啥区别? 这几个问题都可以脱口而出,你应该是有点 maven 能耐,写代
阅读全文
摘要:Spring Bean是什么 比较官方的解释是 Spring Bean是事物处理组件类和实体类(POJO)对象的总称,是能够被实例化、能够被spring容器管理的java对象。可以把bean看做是一个组件,这个组件用来具体实现某个业务功能。总结性的讲,Bean就是由IOC容器初始化、装配及管理的对象
阅读全文
摘要:初探原理 所有的启动器都在Spring-Boot-dependendencies这个依赖包下面 主程序 springbootApplication注解 springbootApplication 注解里面包含: 主启动类怎么运行 通过 springbootApplication >@EnableAu
阅读全文
摘要:Token(令牌) token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。 单点登录原理: 当用户第一次登录后,服务器生成一个token并将此token返回给客户端,客户端收到token后把它存储起来,可以放在cookie或者Local Storage(本地存储)里。
阅读全文
摘要:前言... 对于Redis服务器来说,内存资源非常宝贵,如果一些过期键一直不被删除,就会造成资源浪费,因此我们需要考虑一个问题:如果一个键过期了,它什么时候会被删除呢? 1. 常见的删除策略 常见的删除策略有以下3种: 定时删除 在设置键的过期时间的同时,创建一个定时器,让定时器在键的过期时间来临时
阅读全文
摘要:http: HTTP 是一种 超文本传输协议(Hypertext Transfer Protocol),HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范 HTTP 主要内容分为三部分 超文本(Hypertext)、传输(Transfer)、协议(Prot
阅读全文
摘要:前言 相信大家日常开发中,经常看到Java对象“implements Serializable”。那么,它到底有什么用呢?本文从以下几个角度来解析序列这一块知识点~ 什么是Java序列化? 为什么需要序列化? 序列化用途 Java序列化常用API 序列化的使用 序列化底层 日常开发序列化的注意点 序
阅读全文
摘要:1、在 java 中守护线程和本地线程区别? java 中的线程分为两种:守护线程(Daemon)和用户线程(User)。 任何线程都可以设置为守护线程和用户线程,通过方法 Thread.setDaemon(boolon);true 则把该线程设置为守护线程,反之则为用户线程。Thread.setD
阅读全文
摘要:装饰模式的定义: 装饰模式是用来替代继承的一种设计模式。它通过一种无须定义子类的方式来给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系。降低了系统的耦合,可以动态的增加或者删除对象的职责。 装饰模式的结构 装饰模式主要包含以下角色。 抽象构件(Component)角色:定义一个抽象接口
阅读全文
摘要:什么是代理模式 简单说即是在不改变源码的情况下,实现对目标对象的功能扩展。 举个例子:比如有个歌手对象叫Singer,这个对象有一个唱歌方法叫sing() ,假如你希望,通过你的某种方式生产出来的歌手对象,在唱歌前后还要想观众问好和答谢,也即对目标对象Singer的sing方法进行功能扩展。但是往往
阅读全文
摘要:单例模式的定义: :指一个类只有一个实例 单例模式的具体实现 需要: (1)私有的构造方法,使其不能在类的外部通过new关键字实例化该类对象。 (2)私有的静态实例化对象,并且将其封装为private static类型。 (3)对外提供一个公共的访问方法,并返回该实例对象。 单例模式的两种实现: 第
阅读全文
摘要:什么是Dubbo? Dubbo是一个RPC远程调用 分布式服务治理 框架. 是Alibaba开源的分布式服务框架 Dubbo能做什么? 负载均衡、容错、降级、路由规则、自动注册服务。 节点角色说明: Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的服务消费方。 Regi
阅读全文
摘要:什么是反射,反射原理 java类的执行需要经历以下过程 编译:.java文件编译后生成.class字节码文件 加载:类加载器负责根据一个类的全限定名来读取此类的二进制字节流到JVM内部,并存储在运行时内存区的方法区,然后将其转换为一个与目标类型对应的java.lang.Class对象实例 连接:细分
阅读全文
摘要:拦截器与过滤器的区别: ——————————————看脸的时代 1、过滤器和拦截器触发时机不一样,过滤器是在请求进入容器后,但请求进入servlet之前进行预处理的。请求结束返回也是,是在servlet处理完后,返回给前端之前。 2、拦截器可以获取IOC容器中的各个bean,而过滤器就不行,因为拦截
阅读全文
摘要:1. 高并发和大流量解决方案 高并发架构相关概念 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行;在互联网时代,所讲的并发,高并发通常是指并发访问,也就是在某个时间点,有多少个访问同时到来
阅读全文
摘要:一、集合与数组 数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。 集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。 二、层次关系 如图所示:图中,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口 Colle
阅读全文
摘要:if 标签 if 标签通常用于 WHERE 语句、UPDATE 语句、INSERT 语句中,通过判断参数值来决定是否使用某个查询条件、判断是否更新某一个字段、判断是否插入某个字段的值。 <if test="name != null and name != ''"> and NAME = #{name
阅读全文
摘要:tcp3次握手: 1、客户端发送请求报文到服务器 表示客户端想要和服务端建立连接 2、服务端接收到客户端的请求,返回客户端报文 询问客户端是否准备好 3、客户端再次响应服务端一个ACK,表示我已经准备好。主机收到后检查ack number是否正确,若正确,则连接建立成功。 三次握手的具体步骤: 建立
阅读全文
摘要:上面这个段子估计很多朋友都看过,程序员被黑过无数次,在其他人眼中,仿佛我们需要写得了木马,翻得了围墙,修得了电脑,找得到资源,但凡是跟计算机沾点边的,咱都得会才行。 段子归段子,言归正传,对于咱们程序员来说,多多少少了解一些信息安全的技术知识还是大有裨益的,不仅能了解一些计算机和网络的底层原理,也能
阅读全文
摘要:事务 什么是事务? 事务最开始是数据库中的概念,它把一系列的操作统一为一个整体,这一系列的操作要么同时成功,要么同时失败。一个事务基本的操作是: 开启事务 如果发生了错误,进行回滚 如果没有发生错误,则提交事务 为什么要有事务? 在我们处理简单业务的时候,比如说一条插入数据的操作,只会得到两个结果,
阅读全文
摘要:背景.......... 最近我司准备上一新的项目 对前端使用什么框架进行了热烈的讨论 Javascript 框架以及 HTML 和 CSS 已成为每个现代软件项目前端开发的重要组成部分。 2020 年将会是为你的 Web 项目选择正确的 javascript 框架的又一个年头。 React 或 V
阅读全文
摘要:目标 简单多数据配置 JdbcTemplate 多数据源配置 多数据源配置 首先是配置文件 这里采用yml配置文件,其他类型配置文件同理 我配置了两个数据源,一个名字叫ds1数据源,一个名字叫ds2数据源,如果你想配置更多的数据源,继续加就行了 spring: # 数据源配置 datasource:
阅读全文
摘要:一、背景介绍 今天在解决一个当点击弹窗之后 整个背景应当是灰色的 界面 但是谷歌和IE浏览器 显示的背景不一致 所以 就有了下文........ 解决之后的背景效果: body.a-active::after{ content: ""; background-color: $ciot_black;
阅读全文
摘要:因为项目使用的是MongoDB 最近在做数据查询优化时 用到的 聚合管道 因使用不当造成索引失效 所以就把这篇文档 分享出来 与君一起学习 最全mongodb中文文档学习资料 传送门
阅读全文
摘要:1)a = a + b 与 a += b 的区别 += 隐式的将加操作的结果类型强制转换为持有结果的类型。如果两这个整型相加,如 byte、short 或者 int,首先会将它们提升到 int 类型,然后在执行加法操作 (因为 a+b 操作会将 a、b 提升为 int 类型,所以将 int 类型赋值
阅读全文
摘要:1)如何判断一个对象是否已经死去? 引用计数:每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收。此方法简单,无法解决对象相互循环引用的问题。 可达性分析(Reachability Analysis):从GC Roots开始向下搜索,搜索所走过的路径称为引用链
阅读全文
摘要:0)在了解jvm内存之前先明白什么是jvm JVM,即 Java Virtual Machine,Java 虚拟机。它通过模拟一个计算机来达到一个计算机所具有的的计算功能。JVM 能够跨计算机体系结构(跨平台)来执行 Java 字节码,主要是由于 JVM 屏蔽了与各个计算机平台相关的软件或者硬件之间
阅读全文
摘要:简述一下 Java 中创建一个对象的过程? 类的生命周期 解析:回答这个问题首先就要清楚类的生命周期 下图展示的是类的生命周期流向: Java中对象的创建就是在堆上分配内存空间的过程,此处说的对象创建仅限于new关键字创建的普通Java对象,不包括数组对象的创建。 对象创建过程 1.检测类是否被加载
阅读全文
摘要:解析:类的加载过程采用双亲委派机制,这种机制能更好的保证 Java 平台的安全性 类加载器 ClassLoader 是具有层次结构的,也就是父子关系,其中,Bootstrap 是所有类加载器的父亲,如下图所示: 该模型要求除了顶层的 Bootstrap class loader 启动类加载器外,其余
阅读全文
摘要:一、 消息队列 1. 分布式应用与集群的区别: 如果是一个业务被拆分成多个子业务部署在不同的服务器上,那就是分布式应用;如果是同一个业务部署在多台服务器上,那就是集群。 2. 系统间通信方式: 一种是基于远程过程调用的方式(如RPC调用);另一种是基于消息队列的方式。 二、RabbitMQ 1.Ra
阅读全文
摘要:Spring AOP的底层实现有两种方式:一种是JDK动态代理,另一种是CGLib的方式 jdk动态代理和CGLib 两者对比: JDK动态代理是面向接口的。利用拦截器(拦截器必须实现InvocationHanlder)加上反射机制生成一个实现代理接口的匿名类 CGLib动态代理是通过字节码底层继承
阅读全文
摘要:Spring IoC 概述 IoC:Inverse of Control(控制反转) 读作 “反转控制”,更好理解,不是什么技术,而是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由Spring框架来管理。 正控:若要使用某个对象,需要自己去负责对象的创建 反控:若要使用某个对象,只需要从
阅读全文
摘要:而在 Spring 中提供了 3 种方法进行配置: 在 XML 文件中显式配置 在 Java 的接口和类中实现配置 隐式 Bean 的发现机制和自动装配原则 通过 XML 配置装配 Bean 使用 XML 装配 Bean 需要定义对应的 XML,这里需要引入对应的 XML 模式(XSD)文件,这些文
阅读全文
摘要:1.hashMap底层实现原理 可以访问这篇文档 >传送门 2.hashMap是怎样取值和设置 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到buck
阅读全文
摘要:BeanFactory和FactoryBean的区别 1、 BeanFactory BeanFactory是IOC容器的核心接口,是一个工厂类(接口), 它负责生产和管理bean,它为其他具体的IOC容器提供了最基本的规范,Spring容器给出了很多种实现。例如: DefaultListableBe
阅读全文
摘要:前言...... Redis 作为一个开源的,高级的键值存储和一个适用的解决方案,已经越来越在构建 「高性能」、「可扩展」 的 Web 应用上发挥着举足轻重的作用。 当今互联网技术架构中 Redis 已然成为了应用得最广泛的中间件之一,它也是中高级后端工程 技术面试 中面试官最喜欢问的工程技能之一,
阅读全文