java笔记本
文章平均质量分 93
总结所有会遇到的面试题,通过深入解析记录下来提高自己的技术水平.
VirtiL
good good study day day up!
展开
-
创建型模式之原型模式(5)
文章目录设计模式之原型模式(5)什么是原型模式?为什么用原型模式?原型模式怎么用?浅克隆:深克隆:总结优点:缺点:设计模式之原型模式(5)什么是原型模式?原型模式是创建型模式的一种,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类原创 2021-01-22 14:26:41 · 106 阅读 · 0 评论 -
创建型模式之单例模式(1)
设计模式之单例模式1.什么是单例模式? 单例模式,是一种常用的软件设计模式。属于创建型模式的一种,在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。 数学与逻辑学中,Singleton定义为“有且仅有一个元素的集合”。单例模式最初的定义出现于《设计模式》(艾迪生维斯理, 1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。” Java中单例模式定义:“一个类有且仅有一个实例,并且原创 2021-01-13 16:21:27 · 175 阅读 · 0 评论 -
zookeeper集群搭建脚本(最简单的搭建方式)
zookeeper集群搭建脚本> 注意点1: centos7.x的系统,低版本没有尝试> 注意点2: IPADDRS的服务器间通信必须正常,防火墙关闭或开放对应集群的选举端口和通信端口以及2181> 注意点3: !!!!!! 必须在IPADDRS中的某一台服务器上用root账号执行此脚本 !!!!!! 执行时必须在此服务器执行的命令: yum inst...原创 2019-11-21 19:35:13 · 283 阅读 · 0 评论 -
redis集群搭建脚本(最简单的搭建方式)
redis集群搭建脚本> 注意点1: centos7.x的系统,低版本没有尝试,失败一般发生在编译redis源码的时候缺少依赖> 注意点2: IPADDRS的服务器间通信必须正常,防火墙关闭或开放对应集群端口> 注意点3: !!!!!! 必须在IPADDRS中的某一台服务器上用root账号执行此脚本 !!!!!! 执行时必须在此节点执行的命令: yum...原创 2019-11-20 11:11:04 · 619 阅读 · 0 评论 -
SQL优化常用方法
常见的SQL优化sql优化三部曲sql优化一般都是经历三个步骤:查询日志定位那条sql时间比较长,也就是查询慢通过explain等工具查询该sql的信息修改sql或者尽量让sql走索引explain命令的结果解释列介绍id查询的序号,包含一组数字,表示查询中执行select子句或操作表的顺序两种情况:id相同,执行顺序从上往下id不同,id值越大,优先级越高...原创 2019-06-20 17:27:41 · 488 阅读 · 0 评论 -
十大经典排序算法-堆排序08
堆排序堆排序概念:堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序特点:将初始待排序关键字序列(R1,R2….Rn)构建成大顶堆,此堆为初始的无序区;将堆顶元素R[1]与最后一个元素R[n]交换,此时得到新的无序区(R1,R2,……Rn-1)和新的有序区...原创 2019-06-19 13:51:14 · 355 阅读 · 0 评论 -
十大经典排序算法-计数排序09
计数排序计数排序概念:计数排序不是基于比较的排序算法,其核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。 作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。计数排序特点:找出待排序的数组中最大和最小的元素;统计数组中每个值为i的元素出现的次数,存入数组C的第i项;对所有的计数累加(从C中的第一个元素开始,每一项和前一项相加);反向填充目标数组:将...原创 2019-06-19 13:57:26 · 269 阅读 · 0 评论 -
zookeeper安装与部署(单机和集群)
安装java环境下载jdk,这就不用说了吧https://download.oracle.com/otn/java/jdk/8u211-b12/478a62b7d4e34b78b671c754eaaf38ab/jdk-8u211-linux-x64.tar.gz?AuthParam=1561776727_ad53904309344ce63b77b1b3d8a93092上传到服务器,方...原创 2019-06-29 12:15:05 · 340 阅读 · 0 评论 -
zookeeper的leader选举过程
Leader 选举流程Leader选举是保证分布式数据一致性的关键所在。当Zookeeper集群中的一台服务器出现以下两种情况之一时,才需要进入Leader选举。1. 服务器初始化启动。 2. 服务器运行期间无法和Leader保持连接。两种情况解析集群服务器启动时的Leader选举若进行Leader选举,则至少需要两台机器,这里选取3台机器组成的服务器集群为例。在集群初始化阶...原创 2019-06-30 18:24:48 · 722 阅读 · 0 评论 -
mysql配置文件大全
**[client]**#socket方式运行时的sock文件位置socket=/自定义/mysql.sock**[mysqld_safe]**#错误日志位置log-error=/自定义/mysqld.log#进程id文件pid-file=/自定义/mysqld.pid**[mysql]**#以socket方式运行的sock文件位置socket=/自定义/m...原创 2019-07-12 15:54:52 · 3628 阅读 · 1 评论 -
mysql主从环境搭建与配置
文章目录从0开始搭建mysql主从集群下载mysql安装mysql配置mysql主从配置master配置slave测试存在的问题从0开始搭建mysql主从集群下载mysql我的是在centos7.3上进行的,mysql版本为5.7,毕竟5.7比5.6强了不少嘛.下载源wget http://repo.mysql.com/mysql57-community-release-el7-8.no...原创 2019-07-13 12:45:54 · 219 阅读 · 0 评论 -
Redis单机与集群安装
文章目录Redis环境搭建下载redis源码包单机安装Redis环境搭建下载redis源码包下载库:http://download.redis.io/releases/我这里下载的是redis-3.2.11.tar.gz单机安装1. 将源码包上传到服务器,我这里是/opt2. 解压源码包 tar -zxvf redis-3.2.11.tar.gz3. 进入安装目录 cd re...原创 2019-07-16 11:23:06 · 233 阅读 · 0 评论 -
序列化与反序列化
序列化潜规则序列化的对象必须实现Serializable接口序列化与反序列化的版本号不一致会报错序列化与反序列化的字段不同不会报错,只是反序列化字段多余的会是null,缺少的就缺少了静态变量不参与序列化transient关键字修饰的字段不会参与序列化子类实现序列化但是父类没有,那么父类的字段不能被序列化会是null,但是父类实现序列化,子类不实现,那就可以全部序列化可以通过writ...原创 2019-08-02 13:13:43 · 267 阅读 · 0 评论 -
微信支付服务商模式采坑记录
微信支付服务商模式采坑记录微信支付小程序服务商模式的实现,官方文档写的简直格外坑爹.开发文档地址:微信支付小程序服务商模式开发文档统一下单几个注意点:非沙箱环境的下单请求地址是:https://api.mch.weixin.qq.com/pay/unifiedorder不需要证书统一下单的几个需要注意的参数,下边是参数列表描述变量名必填类型你申请服务商模式...原创 2019-10-24 11:07:34 · 1351 阅读 · 0 评论 -
日常开发需要规避的注意点
日常开发需要规避的注意点JAVA注意点命名规范编码规范日志规范服务器规范数据库规范JAVA注意点命名规范根据自己系统的领域模型去判断需要那些POJO的规范POJO所处领域说明DODao层与数据库表结构一一对应,通过 DAO 层向上传输数据源对象DTOService层或Manager层数据传输对象, Service 或 Manager 向外传输的对象。...原创 2019-10-30 19:23:08 · 275 阅读 · 0 评论 -
Redis知识点总结
文章目录Redis知识点总结简介Redis的16个DBRedis的数据结构Redis的应用场景Redis常用命令Redis分布式锁的实现LuaRedis持久化Redis知识点总结简介Redis的16个DBredis默认是有16个db组成,默认操作的一半都是第0个,这些DB主要有以下特点:不支持自定义数据库名词每个数据库不能单独设置授权每个数据库之间并不是完全隔离的。 可以通过flu...原创 2019-11-06 15:29:11 · 564 阅读 · 0 评论 -
CAP和BASE理论
CAP:C (一致性):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)A (可用性):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)P (分区容错性):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在 C 和 A 之间做出选择...原创 2019-11-06 15:29:35 · 140 阅读 · 0 评论 -
工作中常用的git命令
1.仓库操作 git init //初始化 git remote add origin url //关联远程仓库 git pull //拉取远程仓库内容 git fetch //获取远程仓库中所有的分支到本地 git update-index --assume-unchanged 文件名 //忽略单个文件,忽略...原创 2019-01-22 10:52:53 · 296 阅读 · 0 评论 -
个人操作笔记
Centos7防火墙CentOS7使用firewalld打开关闭防火墙与端口firewalld的基本使用启动: systemctl start firewalld关闭: systemctl stop firewalld查看状态: systemctl status firewalld开机禁用 : systemctl disable firewalld开机启用 : systemctl e...原创 2019-06-23 11:43:51 · 239 阅读 · 0 评论 -
RabbitMQ知识点总结
文章目录RabbitMQ简介RabbitMQ作用RabbitMQ压缩包方式安装RabbitMQ的使用RabbitMQ的原理RabbitMQ简介RabbitMQ是目前非常热门的一款消息中间件,常见的还有Kafka,ActivieMQ,RocketMQ等,不管互联网行业还是传统行业消息中间件都是很常用的技术,RabbitMQ凭借其高可靠,易扩展,高可用以及丰富的功能特性收到越来越多企业的青睐,Ra...原创 2019-11-06 15:28:52 · 632 阅读 · 0 评论 -
Spring知识点总结
文章目录Spring知识点总结Spring概述设计理念Spring的特征Spring框架常用到的设计模式SpringIOCIOCDISpringAOPSpringMVC1. SpringMVC是什么?2. SpringMVC能干什么?3. SpringMVC怎么实现的?3.1 SpringMVC的9大核心组件MultipartResolverLocaleResolverThemeResolverH...原创 2019-11-06 15:29:27 · 282 阅读 · 0 评论 -
十大经典排序算法-快速排序07
快速排序快速排序概念:快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。快速排序特点:快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)从数列中挑出一个元素,称为 “基准”(pivot);重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比...原创 2019-06-06 09:38:56 · 184 阅读 · 0 评论 -
正则表达式的语法与应用(持续更新)
什么是正则表达式?正则表达式的"祖先"可以一直上溯至对人类神经系统如何工作的早期研究。Warren McCulloch 和 Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。1956 年, 一位叫 Stephen Kleene 的数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为"神经网事件的表示法"的论文,引入了正则表达式的概念。...原创 2019-05-14 11:14:40 · 220 阅读 · 0 评论 -
logback的使用和logback.xml详解
一、logback的介绍Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch。它当前分为下面下个模块:logback-core:其它两个模块的基础模块logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logginglog...原创 2019-04-24 10:00:35 · 288 阅读 · 0 评论 -
Linux中安装Docker最简单教程
1.预备条件 在安装前需要知道linux的信息来确保能不能安装Docker,这两个条件就是64位系统和内核版本高于3.10 输入命令: uname -r 可以查看响应信息,对应的就是内核版本号和系统的位数 注意: 以下所有命令建议在管理员root账户下操作,或者sudo也可以.2.更新yum源 ...原创 2019-03-14 10:22:36 · 342 阅读 · 0 评论 -
进制技巧
1.第一种:000000011000000102000001004000010008000100001600100000320100000064100000001282.第二种:00000...原创 2019-03-01 12:35:33 · 148 阅读 · 0 评论 -
创建型模式之抽象工厂模式(4)
工厂模式三兄弟之工厂方法模式1.什么是抽象工厂?上一篇博文介绍了工厂方法模式,这里来说说比他更高级一点的抽象工厂模式,附上官方说法: 抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产...原创 2019-03-15 18:03:48 · 207 阅读 · 0 评论 -
创建型模式之工厂方法模式(3)
工厂模式三兄弟之工厂方法模式1.什么是工厂方法?工厂方法模式(FACTORY METHOD)是一种常用的创建型设计模式,此模式的核心精神是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用和方便后期维护拓展的目的。它的核心结构有四个角色,分别是抽象工厂,具体工厂,抽象产品,具体产...原创 2019-03-08 14:03:46 · 163 阅读 · 0 评论 -
创建型模式之简单工厂(2)
工厂模式三兄弟之简单工厂模式1.什么是简单工厂? 在设计模式中,工厂模式基本有三种,简单工厂模式,工厂方法模式,抽象工厂模式,严格来说,简单工厂模式并不算是一种设计模式,甚至可以理解成为一种编程的习惯,或者就是静态工厂方法,这种模式也是创建型模式的一种,在简单工厂模式中,可以根据传递的参数不同,返回不同类的实例。简单...原创 2019-03-04 16:00:34 · 340 阅读 · 0 评论 -
设计模式之总纲(0)
深入浅出java设计模式之总纲java的设计模式大体上分为三大类:创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。 行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器...原创 2019-03-01 10:53:04 · 211 阅读 · 0 评论 -
09-java集合框架之HashSet详解
HashSet详解1. HashSet是什么?老样子先上图:再来看源码:public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable{...}从UML类图和类源码可以知道,HashSet继承了Ab...原创 2019-04-22 16:00:54 · 206 阅读 · 0 评论 -
08-java集合框架之ArrayList和LinkedList和Vector的区别和优缺点
ArrayList,LinkedList和Vector的区别和优缺点ArrayList、LinkedList和Vector都是实现了List接口。其中,ArrayList和Vector底层是用数组实现的,因此可以用序号下标来访问他们,查找的效率高,一般数组的大小比要插入的数据大数量要大。LinkedList的底层使用双向链表实现的,因此插入和删除的效率高。从使用上说:ArrayList属...原创 2019-04-18 14:33:44 · 2084 阅读 · 0 评论 -
07-java集合框架之Vector详解
Vector详解1.Vector是什么?老样子,先来看一下UML类图:再来看看源码:public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{...}看起来和Arr...原创 2019-04-18 14:33:02 · 189 阅读 · 0 评论 -
06-java集合框架之LinkedList详解
LinkedList详解1.LinkedList是什么?从图中可以看出来,LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作,同时它也实现 List 接口,所以能对它进行队列操作,并且它也实现了 Deque 接口,为 add、poll 提供先进先出队列操作,从而能将LinkedList当作双端队列使用。它还实现...原创 2019-04-15 17:31:04 · 177 阅读 · 0 评论 -
04-java集合框架之List,Set,Map的区别
List,Set,Map的区别相同点1.三者都属于集合类型2.都可以存储和操作数目不固定的一组数据3.实现类一般都支持自动扩容来保证数据的存储4.都有自己的最大最小值设置5.存储的内容都是对象的引用,而非对象本身.不同点1. List,Set的区别1.1 继承方式以及遍历方式List和Set都继承了Collection接口,Collection是最基本的集合接口,一个Colle...原创 2019-04-12 17:23:50 · 244 阅读 · 0 评论 -
03-java集合框架之Map
java集合框架之MapMap 接口类图:代码public interface Map<K,V> {...}Map 接口存储一组键值对象,提供key(键)到value(值)的映射。Map的三大特点:1.包含键值对 2.键唯一 3.键对应的值唯一它的方法如下:...原创 2019-04-12 17:22:54 · 129 阅读 · 0 评论 -
02-java集合框架之Set
java集合框架之SetSet 接口类图:代码public interface Set<E> extends Collection<E> {...}Set 具有与 Collection 完全一样的接口,只是行为上不同,Set 不保存重复的元素。Set 接口存储一组唯一,无序的对象,Set 注重独一无二的性质,该体系集合用于存储无序(存入和取出的顺序不一定相同)...原创 2019-04-12 17:22:21 · 115 阅读 · 0 评论 -
01-java集合框架之List
java集合框架之ListList 接口类图:代码public interface List<E> extends Collection<E>{...}Java 的 List 是非常常用的数据类型,List接口是一个有序的 Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的下标)来访问List中的...原创 2019-04-12 17:21:37 · 140 阅读 · 0 评论 -
00-java集合框架体系结构
java集合框架集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。特点如下:Collection:Collection 是集合 List、Set、Queue 的最基本的接口。Iterator:迭代器,可以通过迭代器遍历集合中的数据Map:是映射表的基础接口来看一张体系结构图:基本特点如下:...原创 2019-04-12 17:20:44 · 370 阅读 · 0 评论 -
05-java集合框架之ArrayList详解
1.ArrayList是什么?先来看一下源码和体系结构:public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.SerializableArrayList是我们使用频率最高的一个容器,它本质上是一个动...原创 2019-04-12 10:20:00 · 152 阅读 · 0 评论