自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(122)
  • 收藏
  • 关注

原创 日志系统学习与应用治理实践

标准——log4j最开始出现的是log4j,也是应用最广泛的日志系统,它的出现使Java日志系统的标准基本确定了。它提出的一些基本理念,一直沿用至今:Appender: 实际的输出是通过Appender(输出源)。有许多可用的Appender,比如FileAppender、ConsoleAppender、SocketAppender、SyslogAppender、NTEventLogAppender,甚至SMTPAppender。多个Appender可以被关联到任何Logger上,所以可以到多个

2022-03-20 11:54:45 835 1

原创 React.js框架

一、框架介绍JSX语法: 两种类型标签: html标签,以前在js里写html标签得加单引号,现在可以直接在js写普通的html标签 组件标签,比如<App />需要首字符大写 npm start启动

2021-11-22 22:47:23 648

原创 前端学习之HTML、CSS、JavaScript

一、HTML标签meta标签: Keywords关键词和Description描述信息,这两个属性主要用于SEO优化 div标签,分割标签: 用来将相关的内容组合到一起,和其他的内容进行分割 clss属性主要用于和css进行关联 p标签,段落标签: p代表一个段落 ,不会进行换行 h标签,标题标签h1-h6: h1最大,h6最小 列表标签 <ul> <ol> <dl>: <ul>无序列表: type:disc(.

2021-11-19 21:27:25 1091

原创 服务器之Netty分析

一、Netty的线程模型boss thread NioEventLoop 中的 selector 轮询创建连接事件(OP_ACCEPT): 创建 socket channel 初始化 socket channel 并从 worker group 中选择一个 NioEventLoop worker thread 将 socket channel 注册到选择的 NioEventLoop 的 selector 注册读事件(OP_READ)到 selector 上 ...

2021-09-29 15:26:46 651 1

原创 安卓开发之Activity活动

1.活动的四种状态1.1运行状态当一个活动位于返回栈的栈顶时,这时活动就处于运行状态。系统最不愿意回收的就是处于运行状态的活动,因为这会带来非常差的用户体验。1.2暂停状态当一个活动不再处于栈顶位置,但仍然可见时,这时活动就进入了暂停状态。你可能会觉得既然活动已经不在栈顶了,还怎么会可见呢?这是因为并不是每一个活动都会占满整个屏幕的,比如对话框形式的活动只会占用屏幕中间的部分区域,你很快就会在后面看到这种活动。 处于暂停状态的活动仍然是完全存活着的,系统也不愿意去回收这种活动(因为它还是可见

2020-11-28 10:08:11 320

原创 Hadoop之HBase基本简介

目录1.HBase的基本概念2.HBase的工作流程1.HBase的基本概念1.1基本概念HBase运行在HDFS上,所以HBase中的数据以多副本形式存放,数据也服从分布式存放,数据的恢复也可以得到保障。 HBase支持横向扩展,这就意味着如果现有服务器硬件性能出现瓶颈只需要在现有的正在运行的集群中添加新的机器节点即可。 HBase是面向列存储的非关系型数据库,每个列都单独存储,所以在HBase中列是连续存储的,而行不是,区别于关系型数据库。 HBase不支持事务,适合结构化数据

2020-11-07 12:51:38 4573 1

原创 Hadoop之MapReduce基本简介

五、基于数据仓库的Hive数据仓库:汇聚了来自各个维度的数据(日志的,数据库的,爬虫的....),主要用于数据的查询,不可更新如果进行了修改会进行数据的备份。什么是Hive:专门对大数据进行离线的分析使用的工具适用于数据分析,特征处理等任务,它的底层是把HQL转化为MapReduce程序,并且数据存储在HDFS上,程序运行在yarn上。(经常是深夜的定时任务,处理完后自动存放入数据库中。)ps:所以然,Hive主要是基于数据的查询而不是更新,否则你的数据仓库由于数据备份的问题,会变得...

2020-11-03 23:38:34 2631 1

原创 Hadoop之基本环境搭建

1.Hadoop的本地运行模式1.1克隆虚拟机!1.2修改主机名!sudo vim /etc/hostname ,重启reboot 1.3网络节点进行通信!sduo vim /etc/hosts 192.168.91.139 master1.4创建文件夹:sudo chown pyvip:pyvip model/ software/ #赋予用户文件权限tar -zxvf jdk... -C /opt/model/ #解压文件1.5安装jdk:sudo v...

2020-11-02 17:29:44 370

原创 Java高并发分析介绍

一、线程池1.介绍如果每个任务都新开一个线程,并且还需要销毁开销太大,不需要给每个任务都开一个线程,可以线程复用避免反复开启和销毁线程;在任务少时可以维护固定数量线程,任务多会有最大线程数以及任务队列,动态扩容和缩容应对突发流量以及资源利用率。2.创建和停止线程池2.1参数介绍corePoolSize:一直会保持的线程数,对每一个到来的任务只要没有空闲线程就会创建;ma...

2020-03-20 20:48:21 269

原创 微服务框架之SpringBoot分析

1.启动流程new SpringApplication()框架初始化配置resourceLoader 配置primarySources 配置webApplicationType配置ApplicationContextInitializer(实现该接口的类通常会设置一些环境有关的属性变量,有三种配置实现类的方式) 实现类会在refresh方法刷新上下文前,准备上下文时调用,可以通过...

2020-03-03 23:04:54 385 1

原创 WEB框架之MyBatis分析

1.常用核心原理1.1orm框架: 也就是把表字段映射为对象的属性;包含hibreate功能,可以直接写sql语句,自定义表字段映射 1.2映射之前:1、导入JDBC驱动包2、通过DriverManager注册驱动 3、创建连接4、创建Statement5、CRUD6、操作结果集(需要手动设置到对象) 7、关闭连接//jdbc使用预编译语句String ...

2020-03-03 23:04:53 260

原创 WEB框架之Spring分析

1.Spring源码分析知识预备1.1反射通过Class(obj.getClass/Class.forName)、Constructor(clazz.newInstance默认是无参构造器/clazz.getConstructor(参数列表).newInstance)、Method(clazz.getMethod('method名','method参数').invoke(obj,v...

2020-03-02 23:03:43 352

原创 分布式系统之RabbitMq分析

1.RabbitMq 介绍1.1为什么要使用消息中间件如果没有消息系统,订单系统处理完成还需要自己处理库存系统,耦合性强。 如果有了消息系统,各个系统之间可以进行解耦,实现异步处理,订单系统处理完成后,只需要发送消息,将接下来所有的操作都交给库存系统去异步完成,而订单系统可以不管他而去做自己的事情。1.2消息队列协议AMQPBroker: 接收和分发消息的应用,我们...

2020-02-28 18:55:10 353

原创 服务器之Tomcat分析

1.tomcat介绍1.1概念Server:接受请求并解析,完成相关任务,返回处理结果 Connector:开启Socket并监听客户端请求,返回响应数据 Container:负责具体的请求处理 Engine:Container是一个通用的概念,而Engine是一个具体概念来负责具体的处理器请求 Service:服务,接受请求、解析请求、分配给Container Host:代表主......

2020-02-24 23:20:54 867

原创 微服务框架之SpringClound

目录一、配置客户端1.Environment3.Bootstrap 的上下文加载顺序:4.调整 Bootstrap 配置5.自定义 Bootstrap 配置(配置文件放在了首位,还取决于加载顺序)6.自定义 Bootstrap 配置属性源(配置文件放在了首位,还取决于加载顺序)二、配置服务器1.配置服务器--基于本地文件系统(File System)2.配置服务...

2020-01-12 16:17:26 1408 1

原创 WEB框架之MyBatis基础应用

目录一、走进MyBatis1.核心对象2.MIyBatis的配置文件3.OGNL表达式(对象图形-映射语言)4.生命周期和作用域5.Mapper接口6.参数处理7.注解开发8.动态SQL二、对象关系设计1.关联关系2.多对一对象查询3.一对多对象查询4.延迟加载三、高级应用1.一级缓存2.二级缓存3.流程分析4.插件5...

2019-12-28 10:37:11 628

原创 WEB框架之Spring基础应用

目录一、Spring基础1.IoC和DI的思想如果没有IoC(控制反转)和DI(依赖注入),调用者需要使用某个对象,其自身就得负责该对象及该对象所依赖对象的创建和组装; 通过IoC和DI的思想,就是将原本在程序中手动创建对象的控制权,交由Spring框架来管理;对象的管理和依赖注入交给框架去完成; IoC的实现方式:依赖注入(Dependency Injection,简称DI...

2019-12-26 18:08:44 1111

原创 WEB框架之Spring MVC基础应用

目录一、EasyMVC1.三层架构2.MVC原理3.前端控制器二、走进SpringMVC1.Spring Web框架2.入门程序(使用XML开发)3.执行流程4.使用注解开发5.静态资源访问三、请求和响应1.返回类型2.请求跳转3.参数处理4.其他请求信息5.处理多对象属性名相同的问题6.JSON数据处理7.日期类型处理四...

2019-12-25 00:12:43 1052

原创 微机原理知识整理

第一章 微机系统导论1.微处理器:具有运算器和控制器功能的中央处理器,也称为微处理机(CPU)。2.微型计算机:以微处理器为核心,配上存储器、输入输出接口/设备及系统总线所组成的计算机。2.1总线:地址总线AB、数据总线DB、控制总线CB2.1.1系统中各部件均挂在总线上(CPU、存储器、I/O接口),用于系统各部件之间的信息传递2.2微处理器:由运算器(主要用来进行算术运算,...

2019-12-15 18:46:12 8993

原创 计算机组成原理知识整理

第一章 计算机系统概述1.计算机硬件的基本组成:输入设备、输出设备、运算器(冯诺依曼以运算器为中心)、控制器、存储器(现代计算机以存储器为中心)1.1存储器:主存储器(内存/主存,属于主机)、辅助存储器(外存,属于外设)1.1.1地址寄存器(MAR)通过译码器到达存储体,存储体最终放入数据寄存器(MDR)1.1.2容量由存储体(每行)组成,存储体由存储单元(代表一个字节)构成,存储...

2019-12-14 17:27:10 954

原创 Java锁之CountDownLatch、Atomic源码解析

1.CountDownLatch1.1整体架构一个线程或多个线程等待所有线程运行完毕,在继续执行 sync 是一个同步器,是 CountDownLatch 的内部类实现private static final class Sync extends AbstractQueuedSynchronizer {...}1.2await方法 public void await...

2019-11-23 23:29:12 317

原创 Java锁之ReentrantLock源码解析

目录1.ReentrantLock1.1整体结构1.2ReentrantLock 构造器1.3释放锁的源码分析1.4公平锁源码分析——FairSync类1.5非公平锁源码解析——NonfairSync类1.6加锁和尝试加锁——ReentrantLock类1.ReentrantLock1.1整体结构可重入锁针对同一个线程可以对同一个对象重复获取锁;支持公平和非...

2019-11-23 20:35:50 407

原创 Java锁之AbstractQueuedSynchronizer源码解析

目录1.AbstractQueuedSynchronizer1.1整体架构1.2同步器的状态1.3同步队列——获取排他锁源码解析1.4同步队列——获取共享锁源码解析1.5同步队列——释放排他锁源码解析1.6同步队列——释放共享锁源码解析1.7条件队列——入队等待源码解析1.8条件队列——signal源码解析1.9条件队列——signalAll源码解析1....

2019-11-23 16:35:26 376

原创 Java线程池之ThreadPoolExecutor线程池源码解析

目录0、引言0.1任务队列: LinkedBlockingQueue 没有设置固定容量大小0.2最大线程数量是: Integer.MAX_VALUE0.3拒绝策略:不能自定义1、ThreadPoolExecutor1.1基本架构1.2提交方法源码解析1.3线程的管理解析0、引言为甚麽线程池不允许使用Executors去创建,而是通过ThreadPoolEx...

2019-11-23 11:22:44 302

原创 Java线程之Thread、Future、FutureTask源码解析

目录1.Thread1.1start方法源码解析1.2初始化源码分析2.Future2.1基本架构3.FutureTask3.1整体架构3.2初始化源码解析3.3get源码解析1.Thread1.1start方法源码解析// 创建一个新的线程public synchronized void start() { // 如果没有初始化,抛异常...

2019-11-20 23:16:41 1222

原创 Java队列之ArrayBlockingQueue源码解析

目录1.ArrayBlockingQueue1.1整体架构1.2初始化源码解析1.3新增数据源码解析1.4拿数据源码解析1.5删除数据1.ArrayBlockingQueue1.1整体架构有界的阻塞队列,容量一旦创建,就无法进行修改 队列满时,往队列中 put 数据会被阻塞,队列空时,往队列中拿数据也会被阻塞。// 队列存放在 object 的数组里面/...

2019-11-20 15:12:37 211

原创 Java队列之DelayQueue源码解析

目录1.DelayQueue1.1整体结构1.2放数据1.3拿数据1.DelayQueue1.1整体结构延迟执行,并且可以设置延迟多久之后执行 队列中元素将在过期时被执行,越靠近队头,越早过期 底层使用了优先级队列来实现,复用组合了PriorityQueue(策略者模式),让先过期的元素先执行//队列的元素必须为Delayed本身或者子类public clas...

2019-11-20 11:34:20 307

原创 Java队列之SynchronousQueue源码解析

目录1.SynchronousQueue1.1整体架构1.2非公平的堆栈1.2.1堆栈结构1.3公平的队列1.3.1队列结构1.SynchronousQueue1.1整体架构本身没有容量的大小,当put的数据被take消费/take等待put操作放入数据,完成后才可以返回 一种是先入先出的结构,一种是先入后出的结构 // 堆栈和队列共同的接口 ...

2019-11-20 09:24:15 374

原创 Java队列之LinkedBlockingQueue源码解析

目录1.LinkedBlockingQueue1.1整体架构1.2初始化源码解析1.3阻塞新增源码解析1.4阻塞删除源码分析1.5查看元素源码分析1.LinkedBlockingQueue1.1整体架构主要实现了BlockingQueue和Queue接口 Queue接口包含了:遇到队列满或空的时候,抛异常,如 add、remove、element;遇到队...

2019-11-20 00:26:53 290

原创 Java并发集合之ConcurrentHashMap源码解析

目录1.ConcurrentHashMap1.1整体框架1.2put方法源码解析1.3数组初始化时的源码解析1.4扩容的源码分析1.5get方法源码解析1.ConcurrentHashMap1.1整体框架HashTable是对实例方法进行加锁,会锁住整个实例对象, 1.7中ConcurrentHashMap使用了分段锁,对每个段进行加锁,降低了锁的粒度 1....

2019-11-19 21:09:39 330

原创 Java并发集合之CopyOnWriteArrayList源码解析

目录1.CopyOnWriteArrayList1.1整体架构1.2新增方法源码分析1.3删除方法的源码分析1.4迭代方法分析1.CopyOnWriteArrayList1.1整体架构通过锁+数组拷贝+volatile关键字保证了线程安全 每次操作都会拷贝一份数组,然后在新数组上进行操作,操作成功后在赋值回去//一旦数组被改变就可以知道private tra...

2019-11-19 17:47:13 265

原创 Java集合之HashSet和TreeSet源码解析

目录1.HashSet1.1HashSet整体架构1.2初始化源码解析1.3增加源码解析2.TreeSet2.1TreeSet整体架构2.2增加源码解析2.3迭代器方法1.HashSet1.1HashSet整体架构底层实现基于HashMap,使用了组合的方式把HashMap当成一个实例变量来实现// 把 HashMap 组合进来,key 是 Hash...

2019-11-19 00:42:08 356

原创 Java集合之LinkedHashMap和TreeMap源码解析

目录1.TreeMap1.1TreeMap整体架构1.2新增节点的源码解析2.LinkedHashMap2.1整体结构2.1按照插入顺序访问2.2访问最少删除原则(LRU)1.TreeMap1.1TreeMap整体架构底层数据结构使用了红黑树来进行实现,是一个有序且基本平衡的二叉排序树,可以维护节点的大小//比较器,如果外部有传进来 Comparator...

2019-11-18 18:51:14 383

原创 Java集合之HashMap源码解析

目录1.HashMap1.1整体架构1.2新增源码解析1.HashMap1.1整体架构底层使用了数组+链表+红黑树的数据结构,当链表长度大于等于8会转换为红黑树,当链表长度小于等于6红黑树会转化为链表 JDK1.7没有引进红黑树,单纯的使用链表解决冲突,在1.8版本中引进了红黑树并且实现了转换和退化操作 由于引进了红黑树所以,key的对象,必须正确的实现了Compare...

2019-11-18 15:14:20 131

原创 Java集合之LinkedList源码解析

目录1.LinkedList1.1整体架构1.2追加源码分析1.3节点删除1.4节点查询2.迭代器ListIterator2.1整体架构2.2三个方法源码解析1.LinkedList1.1整体架构底层使用了双向链表来进行实现,有一个头节点,尾节点和一个元素个数size 这里的头节点和尾节点不是哨兵的概念,只是单纯的指针指向概念!!!public c...

2019-11-18 01:45:32 356

原创 Java集合之ArrayList源码解析

目录1.ArrayList1.1整体结构1.2初始化源码解析1.3新增和扩容源码解析1.4删除源码分析2.迭代器2.1总体结构2.2三个方法源码解析1.ArrayList1.1整体结构初始化大小,默认是10;第一次add的时候扩容的值 size表示当前数组大小 modCount表示当前版本号1.2初始化源码解析private static f...

2019-11-17 15:37:19 374

原创 算法之海量数据处理

1.散列分治或MapReduce这种题目很多,大多都相似一通,针对数据特别多的情况下,一般可以选择MapReduce或者散列分治这两种方式其实思想很相似的只有些许不同;针对数据量不大的情况下可是直接加载进内存来的可以使用Trie树,红黑树这一套,hash表都可以使用。寻找共同的URL给定两个a和b文件,各存放50亿个URL,每个URL占64字节,内存限制4GB,请找出a和b文件中共同的...

2019-10-20 00:26:41 270

原创 分布式系统之Redis

目录一.redis的介绍二.redis的数据结构一.redis的介绍介绍:属于nosql非关系型数据库(表之间没有关系) key-value类型数据库值的数据类型支持:字符串,散列,列表,集合,有序集合。应用场景:缓存,任务队列(秒杀,12306)......通用命令:keys * :获取所有的key(*代表任意多个字符,?代表任意1个字符)del k...

2019-07-31 19:28:20 245

原创 Java(ajax)

目录一.ajax的介绍二.jquery中的ajax使用三.json的介绍一.ajax的介绍概念:"Asynchronous Javascript And XML"(异步JavaScript和XML), 即使用Javascript语言与服务器进行异步交互,传输的数据为XML(本质为字符串)。作用:通过在后台与服务器进行少量数据交换, AJAX 可以使网页实现异步更...

2019-07-31 00:30:33 309

原创 Java(Listener)

一.listener的介绍概念:监听器其实就是一个实现特定接口的普通java程序 用于监听另一个对象事件的发生,当事件发生后,监听器的方法立即被执行。ps:例如实现接口ServletContextListener,ServletRequestListener,HttpSessionListener作用:监听javaweb的三个对象,ServletContext,Servlet...

2019-07-30 21:02:51 586

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除