-
Java面试题:基础
Java面试题:基础1. 说一下ArrayList底层实现方式 ArrayList 通过数组实现,一旦我们实例化 ArrayList 无参数构造函数默认 为数组初始化长度为 10 add 方法底层实现如果增加的元素个数超过了 10 个,那么 ArrayList 底层会 新生成一个数组,长度为原数组的 1.5 倍+1,然后将原数组的内容复制到新数 组当中,并且后续增加的内容都会放到新数组当中。当新数组无法容纳增加的 元素时,重复该过程。是一旦数组超出长度,就开始扩容数组。扩容数组调用 的...…
-
AOP 之 通知、连接点、切点、切面
AOP 之 通知、连接点、切点、切面##面向切面的基本原理###什么是面向切面编程 横切关注点:影响应用多处的功能(安全、事务、日志)切面 横切关注点被模块化为特殊的类,这些类称为切面优点 每个关注点现在都集中于一处,而不是分散到多处代码中 服务模块更简洁,服务模块只需关注核心代码。AOP术语 通知: 定义:切面也需要完成工作。在 AOP 术语中,切面的工作被称为通知。 工作内容:通知定义了切面是什么以及何时使用。除了描述切...…
-
ActiveMQ简单介绍
ActiveMQ简单介绍##一、什么是ActiveMQActiveMQ是Apache公司旗下的一个消息总线ActiveMQ是一个开源兼容Java Message Service (JMS) 1.1面向消息的中件间. 来自Apache Software Foundation. ActiveMQ提供松耦合的应用程序架构.二、ActiveMQ用途用来在服务与服务之间进行异步通信的三、ActiveMQ的优势 流量削锋 任务异步处理ActiveMQ特点:可以解耦合四、通信模式点对点(queu...…
-
java基础知识小节之方法
知识点十六: 方法方法的概述Java方法是语句的集合,它们在一起执行一个功能。###方法的概述 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用###方法的优点 使程序变得更简短而清晰。 有利于程序维护。 可以提高程序开发的效率。 提高了代码的重用性。###方法的命名规则 方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。 下划线可能出现在 JUnit 测试方法名...…
-
java基础知识小节之正则表达式
知识点十五: 正则表达式正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。正则表达式实例一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 “Hello World” 字符串。.(点号)也是一个正则表达式,它匹配任何一个字符如:”a” 或 “1”。下表列出了一些正则表达式的实例及描述:Java 正则表达式和 Perl 的是最为相似的。java.util.regex 包主要包括...…
-
java基础知识小节之Date类
知识点十四: Date类Java时间日期java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date()第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。Date(long millisec)Date对象创建以后,可以调用下面的方法。获取当前时间Java中获取当前日期和时间很简单,使用 Date 对象的 toString() 方法来打印当前日期和时间,如下所...…
-
Redis之持久化
知识点二: Redis持久化前言在上一篇文章中,介绍了Redis的内存模型,从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化、复制(及读写分离)、哨兵、以及集群。本文将先说明上述几种技术分别解决了Redis高可用的什么问题;然后详细介绍Redis的持久化技术,主要是RDB和AOF两种持久化方案;在介绍RDB和AOF方案时,不仅介绍其作用及操作方法,同时介绍持久化实现的一些原理细节及需要注意的问题。最后,介绍在实际使用中,持久化方案的选择,以及经常遇到的问题等。一、Redis高...…
-
Redis内存模型
知识点一: Redis内存模型前言Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。我们使用Redis时,会接触Redis的5种对象类型(字符串、哈希、列表、集合、有序集合),丰富的类型是Redis相对于Memcached等的一大优势。在了解Redis的5种对象类型的用法和特点的基础上,进一步了解Redis的内存模型,对Redis的使用有很大帮助,例如: 估算Redis内存使用量。目前为止,内存的使用成本仍...…
-
Redis之主从复制
知识点三: Redis主从复制前言在前面的两篇文章中,分别介绍了Redis的内存模型和Redis的持久化。在Redis的持久化中曾提到,Redis高可用的方案包括持久化、主从复制(及读写分离)、哨兵和集群。其中持久化侧重解决的是Redis数据的单机备份问题(从内存到硬盘的备份);而主从复制则侧重解决数据的多机热备。此外,主从复制还可以实现负载均衡和故障恢复。这篇文章中,将详细介绍Redis主从复制的方方面面,包括:如何使用主从复制、主从复制的原理(重点是全量复制和部分复制、以及心跳机制)、...…
-
java基础知识小节之类与数组
知识点十四: 数组数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。Java 语言中提供的数组是用来存储固定大小的同类型元素。你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,….,number99。声明数组变量首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:dataType[]arrayRefVar; // 首选的方法dataTypearrayRef...…