自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张文军

一个追求技术的小白

  • 博客(72)
  • 收藏
  • 关注

原创 搞定storm-入门

文章目录大数剧-storm一、Storm是什么二、Storm的特点三、Storm的应用四、Storm模型五、概念1. 拓扑(Topologies)2. 元组(Tuple)3. 流(Streams)4. Spouts5. Bolts6. 任务(Tasks)7. 组件(Component)8. 流分组(Stream Grouping)9. 可靠性(Reliability)10. Workers(工作进程)六、Storm中用到的技术七、Storm架构思想1. Storm和Hadoop架构组件功能对应关系2. St

2020-12-10 02:09:45 1546 6

原创 设计模式-行为型

更多内容请关注:锁清秋面向对象设计口诀:变化的抽接口,相同的建模版行为型模式概述行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。行为型模式是 GoF 设计模式中最为庞大

2021-06-26 13:52:43 279

原创 搞定storm-进阶

更多内容请关注:https://wjhub.gitee.io锁清秋大数剧-storm-进阶Storm集群的框架Storm集群遵循主/从( master/slave)结构,和Hadoop等分布式计算技术类似,语义上稍有不同。主/从结构中,通常有一个配置中静态指定或运行时动态选举出的主节点。Storm使用前一种实现方式。主/从结构中因为引人了单点故障的风险而被诟病,因此解释Storm的主节点是半容错的。Storm集群由一个主节点(称为nimbus)和一个或者多个工作节点(称为supervisor

2020-12-14 00:58:26 232

原创 JAVA多线程并发--全

更多内容请关注:锁清秋JAVA多线程并发进程和线程的区别进程是资源分配的最小单位,线程是CPU调度的最小单位。Java进程和线程的关系Java对操作系统提供的功能进行封装,包括进程和线程运行一个程序会产生一个进程,进程包含至少—个线程每个进程对应一个JVM 实例,多个线程共享JVM里的堆Java采用单线程编程模型,程序会自动创建主线程主线程可以创建子线程,原则上要后于子线程完成执行进程和线程联系① 线程是进程的最小执行和分配单元,不能独立运动,必须依赖于进程,这也就可以说众

2020-05-08 23:03:49 1167

原创 Java垃圾回收机制

更多内容请关注:锁清秋Java垃圾回收机制内存区域中的 程序计数器、虚拟机栈、本地方法栈 这3个区域随着线程而生,线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈的操作,每个栈帧中分配多少内存基本是在类结构确定下来时就已知的。在这几个区域不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟着回收了。而Java堆和方法区则不同,一个接口中的多个实现类需...

2020-04-29 02:48:30 189

原创 一文搞完数据库

更多内容请关注:锁清秋一文搞完数据库文章目录一文搞完数据库常见通用的`Join`查询存储引擎概念`InnoDB`(B+树)`InnoDB` 和 `MyIsam` 对比索引优化简介`MySQL`索引结构BTree索引B+Tree索引B+Tree与B-Tree 的区别聚簇索引与非聚簇索引常见索引原则有基本语法索引性能分析Explain查询优化单表案例(索引失效)单表索引总结:单表一般性建议关联...

2020-04-19 00:40:19 183

原创 一分钟搞定所有 “树”

文章目录平衡二叉树(二分搜索树 BST: *Binary Search Tree* )插入操作删除操作1. 删除树中最小元素2. 删除树中最大元素3. 任意删除某个元素操作查询操作扩展 二分搜索树的 键值对(K,V)实现平衡二叉树 ( AVL )主要性质平衡二叉树调整旋转过程代码实现总结2-3树性质2-3树查找元素2-3树插入元素红黑树将2-3树转换成红黑树红黑树的添加元素操作(结合2-3树添加...

2020-04-14 21:07:24 173

原创 一分钟搞定Java高频面试题

一分钟搞定Java高频面试题一、变量赋值和计算题目: public static void main(String[] args) { int i = 1; i = i++; int j = i++; int k = i + ++i * i++; System.out.println("i=" ...

2020-04-13 14:32:18 745

原创 Java面试?操作系统-进程与线程

Java面试?操作系统-进程与线程进程与线程1. 进程进程是资源分配的基本单位。进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。下图显示了 4 个程序创建了 4 个进程,这 4 个进程可以并发地执行。2. 线程线程是独立调度的基本单位。一个进程中可以有多个线程,它们共享进程资源...

2020-04-13 13:38:17 698

原创 JAVA单例模式,这一篇就够了

单例模式一、使用单例模式的原因和方法原因:多个线程要操作同一对象,要保证对象的唯一性方法:实例化过程中只实例化一次二、单例模式三个主要特点:构造方法私有化;实例化的变量引用私有化;[ 有一个实例化的过程(只有一次),产生实例化对象 new ]获取实例的方法共有。[ 提供返回实例对象的方法 getInstace() ]三、评判单例模式的标准线程的安全性、性能、...

2020-04-11 20:55:10 643

原创 操作系统-进程与线程

操作系统-进程与线程进程与线程1. 进程进程是资源分配的基本单位。进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。下图显示了 4 个程序创建了 4 个进程,这 4 个进程可以并发地执行。2. 线程线程是独立调度的基本单位。一个进程中可以有多个线程,它们共享进程资源。QQ 和浏...

2020-02-28 03:31:16 262

原创 操作系统-死锁

死锁什么是死锁?在并发环境下,各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象,就是“死锁”。发生死锁后若无外力干涉,这些进程都将无法向前推进。死锁、饥饿、死循环的区别死锁:各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进的现象。饥饿:由于长期得不到想要的资源,某进程无法向前推进的现象。比如:在短进程优先(SPF)算法中,若有源源不...

2020-02-28 03:29:44 239

原创 操作系统-系统调用

操作系统-系统调用什么是系统调用,有何作用?知识点回顾:操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AoaDgDJc-1582831563374)(http://zhangwenjun-1258908231.cos.ap-n...

2020-02-28 03:27:50 825

原创 操作系统-概述

操作系统-概述基本特征1. 并发并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。操作系统通过引入进程和线程,使得程序能够并发运行。2. 共享共享是指系统中的资源可以被多个并发进程共同使用。有两种共享方式:互斥共享和同时共享。互斥共享的资源称为临界资源,例如打印机等,在同一时刻只允许一个进程...

2020-02-28 03:24:30 117

原创 Volatile关键字实现原理

Volatile关键字实现原理1、认识volatile关键字程序举例用一个线程读数据,一个线程改数据存在数据的不一致性2、机器硬件CPU与JMM(1)CPU Cache模型程序的局部执行原理(2)CPU缓存的一致性问题解决方案:1)总线加锁(粒度太大)2)MESI()a. 读操作:不做任何事情,把Cache中的数据读到寄存器b. 写操...

2020-02-14 04:18:55 150

原创 并发:openjdk编译调试、java线程模型

并发:openjdk编译调试、java线程模型一 、 java当中的线程和操作系统的线程之间的关系1、关于操作系统的线程linux操作系统的线程控制原语int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (voi...

2020-02-14 04:18:07 158

原创 线程的同步

有关共享变量的理解可参考:深入分析Java中的关键字static一、多线程问题多个线程执行的不确定性引起执行结果的不稳定多个线程对账本的共享,会造成操作的不完整性,会破坏数据问题的原因:当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完,另一个线程参与进来执行。导致共享数据的错误。解决办法 :对多条操作共享数据的语句,只能让一个线程...

2020-02-14 04:16:50 89

原创 Java内存模型

Java内存模型[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vDpFiODZ-1581624919757)(/images/favicon.png)]1、线程和进程的区别进程与线程的一个简单解释1、 进程是执行着的应用程序,线程是进程中的执行单元。2、 进程是资源分配单元,线程是执行单元3、 进程之间相互独立,同一进程的线程共用进程资源。4、 进程间...

2020-02-14 04:15:51 85

原创 单例模式

单例模式一、使用单例模式的原因和方法原因:多个线程要操作同一对象,要保证对象的唯一性方法:实例化过程中只实例化一次二、单例模式三个主要特点:构造方法私有化;实例化的变量引用私有化;[ 有一个实例化的过程(只有一次),产生实例化对象 new ]获取实例的方法共有。[ 提供返回实例对象的方法 getInstace() ]三、评判单例模式的标准线程的安全性、性能、...

2020-02-14 04:15:03 79

原创 并发集合

并发集合问题?并发修改异常并发环境下,遍历的过程中不容许更新操作(增删改)如:package cn.njauit;import java.util.ArrayList;import java.util.List;/** * @author 张文军 * @Description: 并发修改异常 * @Company: njauit.cn * @version: 1.0...

2020-02-14 04:14:18 137

原创 线程概述

线程概述一、基本概念:程序 - 进程 - 线程程序(program) 是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。进程(process) 是程序的一次执行过程,或是正在运行的一个程序。动态过程:有它自身的产生、存在和消亡的过程。如:运行中的QQ,运行中的MP3播放器程序是静态的,进程是动态的线程(thread) ,进程可进一步细化为线程,是一个程序...

2020-02-14 04:13:26 97

原创 并发编程之-CAS-的原理

并发编程之 CAS 的原理一、什么是CAS:​ CAS(compareAndSwap),中文叫比较交换,一种无锁原子算法。过程是这样:它包含 3 个参数 CAS(V,E,N),V表示要更新变量的值,E表示预期值,N表示新值。仅当 V值等于E值时,才会将V的值设为N,如果V值和E值不同,则说明已经有其他线程做两个更新,则当前线程则什么都不做。最后,CAS 返回当前V的真实值。CAS 操作时抱着...

2020-02-14 04:12:33 185

原创 Linux之 SSH、 yum、 Shell、Maven、Git

Linux之 SSH、 yum、 Shell、Maven、Git一、SSH1、SSH工作机制ssh为Secure Shell(安全外壳协议)的缩写。很多ftp、pop和telnet在本质上都是不安全的。我们使用的Xshell6就是基于SSH的客户端实现。SSH的服务端实现为openssh- deamon。在linux上使用sshssh [email protected]、S...

2020-02-14 04:11:22 192

原创 剑指offer

剑指 offer1、 二维数组中的查找题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。分析:数组中每一行第一个数记作 m ,由给出的二维数组可知,m 是该行最小数据,也是该列从0 行开始到该行最大数据所以,比较 target...

2020-02-14 04:07:57 105

原创 Tomcat

Tomcat1、Tomcat架构说明Tomcat是一个基于JAVA的WEB容器,其实现了JAVA EE中的 Servlet 与 jsp 规范,与Nginx apache 服务器不同在于一般用于动态请求处理。在架构设计上采用面向组件的方式设计。即整体功能是通过组件的方式拼装完成。另外每个组件都可以被替换以保证灵活性。Tomcat是一个由一系列可配置的组件构成的Web容器,而Catalina是T...

2020-02-14 04:06:50 228

原创 线程池

线程池概述例子: 10年前单核CPU电脑,假的多线程,像马戏团小丑玩多个球,CPU需要来回切换。现在是多核电脑,多个线程各自跑在独立的CPU上,不用切换效率高。线程池的优势:线程池做的工作只要是控制运行的线程数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等其他线程执行完毕,再从队列中取出任务来执行。它的主要特点为:线...

2020-02-14 04:05:50 67

原创 JUC多线程及高并发

JUC多线程及高并发1、谈谈你对volatile的理解valtile 是JVM提供的一种轻量级的锁;保证可见性禁止指令重排不保证原子性2、JMM关于同步的规定:1.线程解锁前,必须把共享变量的值刷新回主内存。2.线程加锁前,必须读取主内存的最新值到自己的工作内存。3.加锁解锁是同一把锁。由于JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(有...

2020-02-14 04:02:11 359

原创 集合之间的属性赋值

/** * @param input 输入集合 * @param clzz 输出集合类型 * @param <E> 输入集合类型 * @param <T> 输出集合类型 * @return 返回集合 */ public static <E, T> List<T> conve...

2019-11-13 02:41:47 390

原创 统一返回结果

统一返回数据结果项目中我们会将响应封装成json返回,一般我们会将所有接口的数据格式统一, 使前端(iOS Android, Web)对数据的操作更一致、轻松。一般情况下,统一返回数据格式没有固定的格式,只要能描述清楚返回的数据状态以及要返回的具体数据就可以。但是一般会包含状态码、返回消息、数据这几部分内容例如,我们的系统要求返回的基本数据格式如下:列表:{ "success": t...

2019-11-02 14:14:47 1551

原创 线程池

线程池文章目录线程池概述架构线程池几个重要参数源码:7大参数线程池底层工作原理Executors.newFixedThreadPool(int)概述例子: 10年前单核CPU电脑,假的多线程,像马戏团小丑玩多个球,CPU需要来回切换。现在是多核电脑,多个线程各自跑在独立的CPU上,不用切换效率高。线程池的优势:线程池做的工作只要是控制运行的线程数量,处理过程中将任务放入队列,然后在线...

2019-10-23 01:23:23 72

原创 Mysql+Explain数据库优化分析

Explain数据库优化分析Explain各字段解释分析语句:#至少有2位非掌门人成员的门派explain select t_dept.*from t_dept, (select deptId id, count(*) count from t_dept d, t_emp e where e.deptId = d.id ...

2019-10-18 16:36:19 154

原创 Mysql执行顺序

Mysql执行顺序文章目录Mysql执行顺序下面我们来具体分析一下查询处理的每一个阶段MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作。其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回。如果没有在语句中指定某一个子句,那么将会跳过相应的步...

2019-10-15 20:44:33 105

原创 Docker

Docker文章目录Docker一、 docker 常用命令:一、 docker 常用命令:attach Attach to a running container # 当前 shell 下 attach 连接指定运行镜像build Build an image from a Dockerfile # 通过 Doc...

2019-10-11 21:10:54 107

原创 几种常见排序算法

算法:几种常见排序算法文章目录算法:几种常见排序算法一,冒泡排序1. 百度百科:2. 代码示例:3. 优化:4. 结果:二,选择排序:1. 百度百科:2. 实现过程:3. 代码示例:4. 测试结果:三、直接插入排序1. 百度百科:2. 实现过程:3. 代码示例:4. 测试结果:四、希尔排序 ( 分组排序 , 又名缩小增量排序 )1. **概述**:2. 百度百科:3. 基本思想:4. 实现:实现...

2019-10-02 01:49:46 308

原创 函数式接口

十二【函数式接口】文章目录十二【函数式接口】主要内容学习目标第一章 函数式接口1.1 概念1.2 格式1.3 @FunctionalInterface注解1.4 自定义函数式接口第二章 函数式编程2.1 Lambda的延迟执行2.2 使用Lambda作为参数和返回值第三章 常用函数式接口3.1 Supplier接口3.2 练习:求数组元素最大值3.3 Consumer接口3.4 练习:格式化打印...

2019-09-20 12:35:46 286

原创 网络编程

十一【网络编程】主要内容软件架构CS/BS网络通信三要素TCP通信Socket套接字ServerSocket目标 能够辨别UDP和TCP协议特点 能够说出TCP协议下两个常用类名称 能够编写TCP协议下字符串数据传输程序 能够理解TCP协议下文件上传案例 能够理解TCP协议下案例2第一章 网络编程入门1.1软件结构C/S结构 :全称为Client/Serve...

2019-09-15 00:54:50 105

原创 缓冲流、转换流、序列化流

十【缓冲流、转换流、序列化流】文章目录十【缓冲流、转换流、序列化流】主要内容目标第一章 缓冲流1.1 概述1.2 字节缓冲流构造方法效率测试1.3 字符缓冲流构造方法特有方法1.4 练习:文本排序案例分析案例实现第二章 转换流2.1 字符编码和字符集字符编码字符集2.2 编码引出的问题2.3 InputStreamReader类构造方法指定编码读取2.4 OutputStreamWriter类构...

2019-09-14 20:38:55 136

原创 字节流、字符流

九【字节流、字符流】文章目录九【字节流、字符流】主要内容教学目标第一章 IO概述1.1 什么是IO1.2 IO的分类1.3 IO的流向说明图解1.4 顶级父类们第二章 字节流2.1 一切皆为字节2.2 字节输出流【OutputStream】2.3 FileOutputStream类构造方法写出字节数据数据追加续写写出换行2.4 字节输入流【InputStream】2.5 FileInputStr...

2019-09-14 20:27:14 99

原创 File类、递归

八【File类、递归】文章目录八【File类、递归】主要内容教学目标第一章 File类1.1 概述1.2 构造方法1.3 常用方法获取功能的方法绝对路径和相对路径判断功能的方法创建删除功能的方法1.4 目录的遍历第二章 递归2.1 概述2.2 递归累加求和计算1 ~ n的和代码执行图解2.3 递归求阶乘2.4 递归打印多级目录第三章 综合案例3.1 文件搜索3.2 文件过滤器优化3.3 Lamb...

2019-09-14 20:25:05 119

原创 线程池、Lambda表达式

七【线程池、Lambda表达式】文章目录七【线程池、Lambda表达式】主要内容概述第一章 等待唤醒机制1.1 线程间通信1.2 等待唤醒机制1.3 生产者与消费者问题第二章 线程池2.1 线程池思想概述2.2 线程池概念2.3 线程池的使用第三章 Lambda表达式3.1 函数式编程思想概述3.2 冗余的Runnable代码传统写法代码分析3.3 编程思想转换做什么,而不是怎么做生活举例3.4...

2019-09-14 10:09:53 98

空空如也

空空如也

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

TA关注的人

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