自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (3)
  • 收藏
  • 关注

原创 第1讲 | 谈谈你对Java平台的理解?

从你接触Java开发到现在,你对Java最直观的印象是什么呢?是它宣传的 “Write once, run anywhere”,还是目前看已经有些过于形式主义的语法呢?你对于Java平台到底了解到什么程度?请你先停下来总结思考一下。今天我要问你的问题是,谈谈你对Java平台的理解?“Java是解释执行”,这句话正确吗?典型回答Java本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“书写一次,到处运行”(Write once, run anywhere),能够非常容易地获得跨平台能力

2022-04-11 20:39:47 282

原创 Mac安装zsh及工具

首先确保你安装了brew,未安装的请参考此文:Mac安装Homebrew以及使用安装zshbrew install zsh zsh-completions验证是否安装成功我们可以在命令行中输入这个命令来查看我们的电脑上是否安装了zsh命令行$ zsh --version安装oh my zsh前提条件:必须已安装ZSH我们可以在命令行中输入这个命令来查看我们的电脑上是否安装了zsh命令行$ zsh --version如果安装了,这个命令就会输出zsh当前的版本号。确

2021-03-31 19:10:39 1495 1

原创 jstat命令查看jvm的GC情况

jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]注意!!!:使用的jdk版本是jdk8.类加载统计: Loaded:加载class的数量 Bytes:所占用空间大小 Unloaded:未加载数量 Bytes:未加载占用空间 Time:时间编译统计 Compiled:编译数量。 Failed:失败数量 Invalid:不可用数量 Time:时间 Fail...

2020-12-07 11:37:42 241

原创 macOS安装Homebrew官网安装

Homebrew官网http://brew.sh/index_zh-cn.html官网安装Homebrew的安装很简单,mac自带ruby环境,只需在终端下输入如下指令即可完成Homebrew的安装,如果以下链接失效可以去官网看看新的链接:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"命令详解:1.先用 shell命令curl,将文件下载本地,文件名为 i

2020-10-21 15:59:22 12810

原创 Mac安装thrift

Mac下安装thrift 0.8.01:下载[github](https://github.com/apache/thrift/releases/tag/0.8.0)2:依赖// 安装依赖brew install autoconf automake libtool pkg-configbrew install boost3:编译安装# 1. 生成configurethrift-0.8.0/bootstrap.sh# 2. 配置安装位置及只安装java生成thrift-0

2020-10-20 16:47:30 420 1

原创 mac上安装包管理工具homebrew失败!【Failure while executing; `git clone https://github.com/Homebrew/homebrew-cor】

1.错误代码Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core'...fatal: unable to access 'https://github.com/Homebrew/homebrew-core/': LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54Error: Failure while executing; `git clone https://gith.

2020-10-16 17:21:42 3434

原创 RocketMq事务消息原理与二阶段提交原理

大家日常使用事务的场景,基本上都是在操作数据库时,我们都知道,事务具有ACID的特性,可以为数据的可靠性提供保证但在分布式场景中,不同系统使用不同的库,当一个请求涉及到多个系统数据变更时,单靠数据库事务就无法保证数据的可靠了,这就需要另一种机制,用于保证跨系统数据变更动作的可靠性,这个机制就是我们常说的分布式事务,对于分布式系统来说,严格实现ACID这四个特性代价往往太高,高到我们无法承受,仅仅是保证"一致性"就已经非常困难了,"顺序一致性"、"最终一致性"、"强一致性"的分类,就是一种妥协,业...

2020-08-21 17:06:59 948 1

原创 ZooKeeper原理与应用

一、简介ZooKeeper是一个开源的分布式协调服务,ZooKeeper是一个典型的分布式数据一致性的解决方案。分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。二、特性ZooKeeper可以保证如下分布式一致性特性。顺序一致性从同一个客户端发起的事务请求,最终将会严格按照其发起顺序被应用到ZooKeeper中。原子性所有事务请求的结果在集群中所有机器上的应用情况是一致的,.

2020-08-16 11:36:02 359

原创 理解Zookeeper的Leader选举过程

一、选择机制中的概念serverId(服务器ID 既 myid) 比如有三台服务器,编号分别是1,2,3。 编号越大在选择算法中的权重越大。 zxid(最新的事物ID 既 LastLoggedZxid) 服务器中存放的最大数据ID。 ID值越大说明数据越新,在选举算法中数据越新权重越大。 epoch (逻辑时钟 既 PeerEpoch) 每个服务器都会给自己投票,或者叫投票次数,同一轮投票过程中的逻辑时钟值是相同的。 每投完一次票这个数据就会增加,

2020-08-16 11:13:04 164

原创 Dubbo原理、应用与面经总结

目录一、Dubbo简介二、工作流程三、工作原理工作层调用过程四、服务发布五、服务引用六、服务路由七、集群容错八、负载均衡九、配置参数标签bean标签参数十、Dubbo面经一、Dubbo简介Dubbo 是一个RPC框架,SOA框架。Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。Dubbo 和 Spring Cloud 有...

2020-08-15 19:35:12 489

原创 [Dubbo] 源码解析之服务路由策略

目录Dubbo源码解析之服务路由策略1. 简介2. Dubbo-服务调用路由规则① 脚本路由规则② 标签路由规则③ 条件路由规则表达式:3. 源码分析表达式解析服务路由总结4. 扩展Dubbo源码解析之服务路由策略1. 简介服务目录在刷新 Invoker 列表的过程中,会通过 Router 进行服务路由,筛选出符合路由规则的服务提供者。在详细分析服务路由的源码之前,先来介绍一下服务路由是什么。服务路由包含一条路由规则,路由规则决定...

2020-08-14 13:59:32 354

原创 为什么单线程的Redis能够达到百万级的QPS?

目录性能测试报告Redis的设计与实现1、高效的数据结构2、多路复用 IO 模型3、事件机制性能测试报告查看了下阿里 Redis 的性能测试报告如下,能够达到数十万、百万级别的 QPS(暂时忽略阿里对 Redis 所做的优化),我们从 Redis 的设计和实现来分析一下 Redis 是怎么做的。Redis的设计与实现其实 Redis 主要是通过三个方面来满足这样高效吞吐量的性能需求高效的数据结构 多路复用 IO 模型 ...

2020-08-13 19:16:54 133

原创 BIO到NIO到Netty实现原理

目录BIO简单代码实现代码优化实现NIO代码实现nio相对bioNetty1. Netty简介2. Netty线程模型3. Reator模式的实现1.第一种实现模型2.Reactor多线程模型3.Reactor主从模型4.Netty模型4.Buffer5.简单代码实现6.总结BIO简单代码实现首先是我们熟悉的bio,利用原生socket进行操作。public class SocketServer { publ.

2020-08-13 18:12:19 126

原创 MySQL实现原理-存储引擎-数据结构-面试详解

目录一、MySQL逻辑架构1、客户端/服务端通信协议2、查询缓存3、语法解析和预处理4、查询优化5、查询执行引擎6、MySQL整个查询执行过程二、存储引擎1、MySQL支持哪些存储引擎?2、InnoDB和MyISAM有什么区别?3、innodb引擎的4大特性4、innodb的读写参数优化5、innodb的事务与日志三、索引1、索引数据结构2、Hash索引和B+树认识2.1 Hash与B+树实现原理2.2 Hash与B+树区别2.

2020-08-12 16:49:22 1087 1

原创 Java Kafka工作原理-消息中间件

目录1、Kafka核心模块2、kafka优点3、Kafka如何保证消息有序4、Kafka消费方式5、Kafka高可用6、Kafka一致性7、Kafka持久化8、Kafka网络模型9、Kafka消息丢失问题生产者和broke阶段消息丢失场景消费数据重复场景及解决方案1、Kafka核心模块broker:中间的kafka cluster,存储消息,是由多个server组成的集群。 topic:kafka给消息提供的分类方式。broker用来存储不同topic的

2020-08-12 15:34:13 273

原创 Java HashSet的实现原理详解

目录一、HashSet实现原理总结二、HashSet的实现原理详解1. HashSet概述:2. HashSet的实现:HashMap的原理HashSet的源代码一、HashSet实现原理总结HashSet的实现原理总结如下:①是基于HashMap实现的,默认构造函数是构建一个初始容量为16,负载因子为0.75 的HashMap。封装了一个 HashMap 对象来存储所有的集合元素,所有放入 HashSet 中的集合元素实际上由 HashMap 的 ke...

2020-08-12 15:19:31 508

原创 Socket通信原理浅谈

Socket简介对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1.什么是TCP/IP、UDP?2.Socket在哪里呢?3.Socket是什么呢?4.你会使用它们吗?socket是在应用层和传输层之间的一个抽象层,socket本质是编程接口(API),它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络中通信。TCP/I...

2020-08-11 18:55:34 458

原创 消息中间件——RocketMQ与Kafka特性对比

如今随着分布式系统架构的盛行。一个高可用、高并发的消息中间件对我们来说尤为重要。在公司快速增长时期,是没有精力去研发这种基础中间件。所以如何选择就成了一个问题?这个问题也需要我们深入了解各个消息中间件的特性。我们就当前比较热门的消息中间件淘宝开源的RocketMQ和linkin开源的kafka做一个横向对比。就互联网目前应用场景划分。kafka更多的应用在日志传输上。但是对于交易、订单、充值等对消息高要求的情况下有诸多特性不满足。淘宝在借鉴kafka的原理的基础上使用java开发了RocketMQ(kafk

2020-08-11 17:31:33 348

原创 RocketMQ原理

RocketMQ概览简介上图是一个典型的消息中间件收发消息的模型,RocketMQ也是这样的设计,简单说来,RocketMQ具有以下特点:是一个队列模型的消息中间件,具有高性能、高可靠、高实时、分布式特点。 Producer、Consumer、队列都可以分布式。 Producer向一些队列轮流发送消息,队列集合称为Topic,Consumer如果做广播消费,则一个consumer实例消费这个Topic对应的所有队列,如果做集群消费,则多个Consumer实例平均消费这个topic对应的队

2020-08-11 17:15:27 1258

原创 Redis原理详解

Redis 基础详解一、Redis 是什么Redis 是一个使用 C 语言写成的,开源的、key-value 结构的、非关系型数据库。它支持存储的 value 类型相对更多,包括 String(字符串)、List(列表)、Set(集合)、Sorted Set(有序集合) 和 Hash(哈希),而且这些操作都是原子性的。在此基础上,Redis 支持各种不同方式的排序。为了保证效率,数据都是缓存在内存中。Redis 可以周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了m

2020-08-11 15:40:30 5357 2

原创 java的反射机制原理

反射是什么(反射是框架设计的灵魂)JAVA反射机制是在运行状态中对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。反射提供的功能在运行时判断任意一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断任意一个类所具有的成员变量和方法 在运行时调用任意一个对象的方法(要想解剖一个类,必须先要获取到该类的字节码文件对象(clas...

2020-08-11 15:11:21 97

原创 JAVA多线程原理浅谈

JAVA多线程1.继承Thread类,重写run方法2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target3.通过Callable和FutureTask创建线程4.通过线程池创建线程1、继承Thread类实现多线程public class ThreadDemo01 extends Thread{ public ThreadDemo01(){ //编写子类的构造方法,可缺...

2020-08-11 14:56:32 182

原创 HashMap、Hashtable、ConcurrentHashMap、LinkedHashMap 数据结构及原理

hashmap数据结构HashMap底层是由数组+链表组成的。HashMap会有一个方法,先拿到要add进HashMap中的对象的hashCode,再将这个hashCode异或上对象自身hashCode右移16位(是不是感觉说的不是人话?这个步骤叫扰乱)这样做的目的是为了让hashCode每一位都尽可能用到,hashCode经过上述步骤之后再&(数组长度-1),计算的结果就是这个对象在数组中的位置了hashmap扩容时机默认链表长度达到8就将链表树形化(变为红黑树)。..

2020-08-11 14:50:59 615

原创 进程和线程的浅谈

进程和线程进程和线程的区别线程是被CPU调度的基本单位,进程是能独立运行的基本单位,是系统分配资源的基本单位。 创建销毁线程要比创建销毁进程成本低的多。(创建进程要,创建PCB(进程控制块),开辟虚拟地址空间,创建页表,维护映射关系,加载硬盘数据到内存,创建文件描述符,等等,而创建线程只要创建一个PCB指向进程的虚拟地址空间即可) 进程拥有自己独立的虚拟地址空间,而一个进程中的多个线程共享进程的虚拟地址空间 线程占用的资源要比进程少 线程缺乏访问控制,进程中的一个线程出错,会终止掉整个进程.

2020-08-11 14:10:51 172

原创 AQS并发原理

AQS :抽象的队列式的同步器深入分析AQS实现原理简单解释一下J.U.C,是JDK中提供的并发工具包,。里面提供了很多并发编程中很常用的实用工具类,比如atomic原子操作、比如lock同步锁、fork/join等。谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronized(AQS)!,类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的Reen.

2020-08-11 14:09:20 133

原创 JVM内存模型与常见面试问题JVM优化JVM参数GC ROOT

jvm--Java堆、方法区、Java虚拟机栈、本地方法栈、程序计数器程序计数器(Program Counter Register)它是一块较小的内存空间,它的作用可以看做是当先线程所执行的字节码的信号指示器。每一条JVM线程都有自己的PC寄存器,各条线程之间互不影响,独立存储,这类内存区域被称为“线程私有”内存在任意时刻,一条JVM线程只会执行一个方法的代码。该方法称为该线程的当前方法(Current Method)如果该方法是java方法,那PC寄存器保存JVM正在执行的字节码指

2020-08-11 13:55:48 314

原创 tomcat启动时报Junit相关错误java.lang.ClassNotFoundException: org.junit.Test

最近在做spring+activeMQ整合时启动tomcat在log4j日志打印下老是报如下错误。环境:eclipse、maven错误详情:tomcat启动时报juint相关错误错java.lang.ClassNotFoundException: org.junit.Testat org.apache.catalina.loader.WebappClassLoader.loadClass(Weba...

2018-06-11 14:06:55 3735 3

原创 tableau报表第三方免登陆配置

获取Tableau凭证,实现报表在第三方的免登陆。分为三步第一步:在Tableau服务器上命令行设置授信白名单 配置白名单 cd C:\Program Files\Tableau\Tableau Server\bin tabadmin stop //可以配置多个IP,也可以只配置一个;多个时用英文逗号分开且增加一空格 tabadmin set wgserver.trusted_hosts "10....

2018-06-08 12:29:24 6456 3

获取Tableau集成时的免登陆凭证

获取Tableau凭证,实现报表在第三方的免登陆。 第一步:在Tableau服务器上命令行设置授信白名单配置白名单 第二步:这里使用java发送请求,其他方式也可:如php。将返回值返回客户端页面 第三步:页面嵌入报表路径格式

2018-06-08

Tableau常用命令集

Tableau 帮助任何人快速分析、可视化并分享信息。支持列表,柱形图,堆积图,饼图,热力图,折线图等报表设计;支持报表多维度筛选;支持第三方项目调用tableau报表。

2018-05-28

如何接收页面之间传递的参数

页面之间传递参数的接收方法,传参时,在地址路径后拼接如?参数名=参数值 接参时使用el公式:${param.参数名}

2018-04-16

空空如也

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

TA关注的人

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