06 2019 档案

摘要:概念 面向切面编程 Aspect Oriented Programming 底层使用了动态代理,指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式。 原理 阅读源码 要实现 AOP 必须添加注解 @EnableAspectJAutoProxy,点击该注解,进入接口 Enable 阅读全文
posted @ 2019-06-29 19:57 duniqb 阅读(124) 评论(0) 推荐(0)
摘要:概述 给容器中注册组件一共有 4 种方法 包扫描+组件标注注解 (@Controller/@Service/@Repository/@Component)[自己写的类] @Bean[导入的第三方包里面的组件] @Import[快速给容器中导入一个组件] @Import(要导入到容器中的组件);容器中 阅读全文
posted @ 2019-06-24 19:28 duniqb 阅读(231) 评论(0) 推荐(0)
摘要:一、理论算法 引用计数法 比较古老经典的垃圾手机算法,核心是在对象被其他所引用时计数器 +1,而当引用失效时则 -1 这种方式有个严重的问题:无法处理循环引用的情况,还有每次进行加减操作比较浪费系统性能。 标记清除法 分为标记和清除两个阶段进行处理内存中的对象 弊端是空间碎片问题,垃圾回收后的空间是 阅读全文
posted @ 2019-06-21 00:44 duniqb 阅读(120) 评论(0) 推荐(0)
摘要:传统的 ACID 关系型数据库遵循ACID规则 事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性: A (Atomicity) 原子性 原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个 阅读全文
posted @ 2019-06-19 22:08 duniqb 阅读(901) 评论(0) 推荐(0)
摘要:1.类加载子系统 负责从文件系统或者网络中加载 Class 信息,加载的信息存放在一块称为方法区的内存空间。 2.方法区 就是存放类信息,常量信息,常量池信息,包括字符串字面量和数字常量等 3.Java 堆 在 Java 虚拟机启动的时候建立 Java 堆,它是 Java 程序最主要的内存工作区域, 阅读全文
posted @ 2019-06-19 00:42 duniqb 阅读(114) 评论(0) 推荐(0)
摘要:转载自:https://www.cnblogs.com/lgk8023/p/6427977.html Servlet运行在Servlet容器中,其生命周期由容器来管理。Servlet的生命周期通过 javax.servlet.Servlet 接口中的 init() 、 service() 和 des 阅读全文
posted @ 2019-06-16 10:38 duniqb 阅读(140) 评论(0) 推荐(0)
摘要:简介与概念 RabbitMQ 简介 RabbitMQ 是一个由 erlang 开发的 AMQP(Advanved Message Queue Protocol) 的开源实现。 相关概念 Message 消息,消息是不具名的,它由消息头和消息体组成。消息体是不透明的,而消息头则由一系列的可选属性组成, 阅读全文
posted @ 2019-06-16 00:03 duniqb 阅读(236) 评论(0) 推荐(0)
摘要:用途 大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力 消息服务中两个重要概念: 消息代理(message broker) 目的地(destination) 当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。 消息队列主要有两种形式的目的地 队列(queu 阅读全文
posted @ 2019-06-15 23:30 duniqb 阅读(178) 评论(0) 推荐(0)
摘要:类从加载到运行到销毁过程 类加载器过程 1.加载 加载 把二进制形式的 Java 类型读入到 Java 虚拟机中 2.连接过程中的 3 个子过程 验证 对 class 字节码验证 准备 为类变量分配内存,设置默认值。 但是在到达初始化之前,类变量都没有初始化为真正的初始值 解析 解析过程就是在类型的 阅读全文
posted @ 2019-06-14 23:31 duniqb 阅读(126) 评论(0) 推荐(0)
摘要:接口初始化规则 当一个接口在初始化时,并不要求其父接口都完成了初始化 只有在真正使用父接口的时候 (如引用接口中所定义的常量时),才会初始化 public class MyTest5 { public static void main(String[] args) { System.out.prin 阅读全文
posted @ 2019-06-11 01:24 duniqb 阅读(157) 评论(0) 推荐(0)
摘要:编译期常量 当一个常量的值并非编译期间可以确定的,那么其值就不会放到调用类的常量池中 这时在程序运行时,会主动使用这个常量所在的类,显然会导致这个类会被初始化,输出静态代码块中语句 public class MyTest3 { public static void main(String[] arg 阅读全文
posted @ 2019-06-10 22:58 duniqb 阅读(139) 评论(0) 推荐(0)
摘要:VM 参数 -XX:+<option> 表示开启 option 选项 -XX:-<option> 关闭 option 选项 -XX:<option>=<value> 将 option 选项的值设置为 value 比如堆空间大小 -XX:+TeaceClassLoading 用于追踪类的加载信息并打印 阅读全文
posted @ 2019-06-10 22:57 duniqb 阅读(155) 评论(0) 推荐(0)
摘要:类加载 Class Loading 在 Java 代码中,类型的加载、连接与初始化过程都是在程序运行期间完成的 提供了更大的灵活性,增加了更多的可能性 生命周期 以下情况,Java 虚拟机将结束生命周期 执行了 System.exit() 方法 程序正常执行结束 程序在执行过程中遇到了异常或错误而异 阅读全文
posted @ 2019-06-10 22:56 duniqb 阅读(124) 评论(0) 推荐(0)
摘要:HTTP 状态码 1,2,3 开头的是正常的,4 开头的请求错误,5 开头的服务器错误 1XX:消息 2XX:成功 3XX:重定向 4XX:请求错误 5XX:服务器错误 重要的几个 200:成功返回网页 301/302:永久/临时重定向 304:Not Modified,未修改,告诉浏览器资源未修改 阅读全文
posted @ 2019-06-10 19:30 duniqb 阅读(274) 评论(0) 推荐(0)
摘要:满二叉树 一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树。 完全二叉树 完全二叉树是由满二叉树而引出来的。 若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大 阅读全文
posted @ 2019-06-08 15:48 duniqb 阅读(506) 评论(0) 推荐(0)
摘要:文件分类 在操作系统看来都是比特流的二进制,以人能否看懂区分为: 二进制文件 文本文件 open 指令 需要文件路径和权限信息 文件怎么存储 连续分配 常见于光盘 File-Allocation Table:FAT 适用于小文件 文件分配表 类链表结构,存储文件 可靠性差,FAT 表一般存 2 份 阅读全文
posted @ 2019-06-06 20:37 duniqb 阅读(130) 评论(0) 推荐(0)
摘要:微服务架构遇到的问题 客户端如何访问这么多服务 API 网关 服务与服务直接如何通信 同步通信 HTTP:Apache Http Client RPC:Dubbo,Apache Thrift 异步通信 消息队列:kafka,RabbitMQ,RocketMQ 这么多服务如何管理 服务治理 服务注册与 阅读全文
posted @ 2019-06-05 22:01 duniqb 阅读(121) 评论(0) 推荐(0)