自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(471)
  • 资源 (1)
  • 收藏
  • 关注

转载 首次发布,2022年阿里巴巴Java高级架构师面试标准手册(对标P7+)

架构师

2022-08-22 13:37:52 248 1

原创 互联网黑话

互联网

2022-07-29 14:06:46 12302 1

原创 springboot实现websocket服务端、websocket客户端

springboot实现websocket服务端、websocket客户端。

2022-07-28 10:42:04 2217

原创 volatile如何实现线程可见和指令重排序

首先看下以下代码class VolatileBarrierExample { int a; volatile int v1 = 1; volatile int v2 = 2; void readAndWrite() { int i = v1; //第一个volatile读 int j = v2; // 第二个volatile读 a = i + j; //普通写

2022-01-07 11:15:05 784

转载 ASCII,Unicode 和 UTF-8

ASCIIASCII 码一共规定了128个字符的编码,对英语字符与二进制位之间的关系,做了统一规定。简体中文常见的编码方式是 GB2312,使用两个字节表示一个汉字,所以理论上最多可以表示 256 x 256 = 65536 个符号。UnicodeUnicode将世界上所有的符号都对应一个二进制数字。如果一定要问一个Unicode码占几个字节?回答是2个。但这样问是不对的,Unicode只是规定了字符的二进制数,至于怎么编码实现(utf-8)这个值,才涉及到占几个字节。UTF-8 是 Unico

2021-12-28 14:39:53 117

转载 操作系统-锁机制

计算机操作系统锁机制.在多线程编程中,操作系统引入了锁机制。通过锁机制,能够保证在多核多线程环境中,在某一个时间点上,只能有一个线程进入临界区代码,从而保证临界区中操作数据的一致性。所谓的锁,可以理解为内存中的一个整型数,拥有两种状态:空闲状态和上锁状态。加锁时,判断锁是否空闲,如果空闲,修改为上锁状态,返回成功;如果已经上锁,则返回失败。解锁时,则把锁状态修改为空闲状态。加锁过程用如下伪码表示:1、read lock;2、判断lock状态;3、如果已经加锁,失败返回;4、把锁状态设置为上

2021-12-20 15:43:22 776

原创 Mysql系统库作用

MySQL初始化完成后会创建出4个系统库,分别是information_schema、performance_schema、mysql、sysmysql库 核心数据库用户、权限 user表、慢日志和通用日志转化成表形式、索引信息、表信息user表:用户全局权限表,记录了每个用户权限db表:库级别权限表tables_priv:表级权限columns_priv:列级别全新表procs_priv:存储过程与函数权限proxies_priv:代理用户的权限event:事件与任务调度表gti

2021-03-25 16:01:50 436

原创 监控Mysql的锁

show variables like ‘%innodb_status%’; 看innodb的状态 变量set global innodb_status_output_locks=1; 设置innoDB 状态输出锁show engine innodb status\G; 可以查看锁

2021-03-22 23:57:43 153

转载 mysql-5.7 show engine innodb status 详解

一、show engine innodb status 简介:show engine innodb status 是mysql提供的一个用于查看innodb引擎时间信息的工具,就目前来说有两处比较常用的地方一、死锁分析 二、innodb内存使用情况二、通过show engine innodb status 查看内存使用情况:1、show variables like ‘innodb_buffer_pool_size’ 查看buffer pool 的内存配置show variables like ‘

2021-03-22 21:33:39 1069

原创 HTTP响应状态码

在网站建设的实际应用中,容易出现很多小小的失误,就像MySQL当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规http状态码的表现也是一样,Google无法验证网站几种解决办法,提及到由于404状态页面设置不正常,导致了google管理员工具无法验证的情况,当然,影响的不仅仅是这一方面,影响的更是网站的整体浏览效果。因此,比较清楚详细的了解http状态码的具体含义,对于一个网站站长来说

2020-12-14 20:13:43 220

原创 Hadoop-在linux安装Hive

1.解压tar -zxvf apache-hive-2.3.4-bin.tar.gzmvapache-hive-2.3.4-bin hive2.环境变量vim /etc/profileexport HIVE_HOME=/opt/hiveexport PATH=$JAVA_HOME/bin:$HADOOP/bin:$HIVE_HOME/bin:$PATH3.配置hivehive-site.xml需先从默认配置复制出来vim /opt/hive/conf/hive-site..

2020-11-25 23:02:27 143

原创 spring bean生命周期

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;import javax.annotation.PreDestroy;/** * @see A * @since 1.0 */@Componentpublic class A extends B

2020-07-29 20:36:19 129

原创 自定义类加载器、打破双亲委派

自定义类加载器、打破双亲委派import java.io.FileInputStream;import java.lang.reflect.Method;public class MyClassLoaderTest { static class MyClassLoader extends ClassLoader { private String classPath; public MyClassLoader(String classPath) { .

2020-07-21 01:08:38 595

原创 分布式锁zookeeper、redis

ZK分布式锁共享锁:也称作读锁,当⼀⽅获得共享锁之后,其它⽅也可以获得共享锁。但其只允许读 取。在共享锁全部释放之前,其它⽅不能获得写锁。排它锁:也称作写锁,获得排它锁后,可以进⾏数据的读写。在其释放之前,其它⽅不能获 得任何锁。获取读锁:1、基于资源ID创建临时序号读锁节点 /lock/888.R0000000002 Read2、获取 /lock 下所有⼦节点,判断其最⼩的节点是否为读锁,如果是则获锁成功3、最⼩节点不是读锁,则阻塞等待。添加lock/ ⼦节点变更监听。4、当节点变更监听触发

2020-06-19 23:46:21 183

原创 数据结构与算法-练习题-队列

public class MyArrayQueue<T> { private T[] items; private int head = 0; private int tail = 0; private int cap; private int size = 0; public MyArrayQueue(int cap){ ...

2020-04-23 00:59:30 311

原创 数据结构与算法-练习题-栈

public class MyStack<T> { private T[] eleData; private int cap; private int size; public MyStack(int cap){ this.eleData = (T[])new Object[cap]; this.cap = cap; ...

2020-04-23 00:33:24 316

原创 设计模式-23种设计模式

1.简介设计模式(Design Patterns)——可复用面向对象软件的基础目的2.目的(五大性)设计模式是为了让程序(软件)具有以下特性代码重用性(相同功能代码,不用多次编写)可读性(编码规范,便于他人阅读和理解)可扩展性(当需要增加新的功能时非常方便,称为可维护性)可靠性(增加新的功能后,对原来的功能没有影响)使程序呈现 高内聚 、低耦合的特性3.七大原则3.1单一职责原...

2020-04-03 16:14:29 197

原创 数据结构和算法-栈

介绍栈的英文为(stack)栈是一个先入后出(FILO-First In Last Out)的有序列表。栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元...

2020-04-02 17:48:57 210

原创 数据结构和算法-链表

1.链表介绍链表(Linked List)是有序的列表链表是以节点的方式来存储,是链式存储每个节点包含 data 域, next 域:指向下一个节点.发现链表的各个节点不一定是连续存储.链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定2.单链表创建和遍历添加(创建)先创建一个head 头节点, 作用就是表示单链表的头后面我们每添加一个节点,就直接加入到...

2020-04-02 16:51:42 113

原创 面试题-UDP和TCP区别

TCP/IP协议分5层:应用层、传输层、网络层、数据链路层、物理层传输层 有两个重要协议 TCP 和 UDP传输层作用:为应用进程之间提供端到端的逻辑通信连接可靠性流量控制/拥塞控制模式系统资源首部UDP面向无不可靠,丢包不重发,顺序乱掉不会纠正不使用数据报(文),不会对报文拆分合并原封不动发送占用少简单,开销(8位字节)少TCP面向有可...

2020-04-01 11:47:07 162

原创 MySQL-MySQL的锁

宏观数据库锁粒度小,方便用于集群环境代码锁粒度大,需要封装微观种类只有明确主键,才会执行行锁,否则执行表锁无锁#主键不存在select * from user where id = -1 for update;行锁select * from user where id = 1 for update;select * from user where id = ...

2020-03-31 23:43:28 127

原创 JVM

1. JVM体系结构概览1.1程序计数器指向当前线程正在执行得到字节码指令的地址(行号)为什么需要程序计数器?Java是多线程的,意味着线程切换确保多线程情况下的程序正确执行1.2虚拟机栈/java栈栈(Stack):数据结构,像个杯子,方法的调用链入口和出口只有一个入栈出栈先进后出(FILO)虚拟机栈存储当前线程运行方法所需的数据,指令,返回地址栈帧每个方...

2020-03-31 01:33:51 88

原创 JavaSE-Map接口,HashMap底层实现

1. Map接口框架(常用)|----Map:双列数据,存储key-value对的数据 —类似于高中的函数:y = f(x)|----HashMap:作为Map的主要实现类;线程不安全的,效率高;存储null的key和value|----LinkedHashMap:保证在遍历map元素时,可以按照添加的顺序实现遍历。原因:在原有的HashMap底层结构基础上,添加了一对指针,指向前一...

2020-03-30 16:39:16 160

原创 JavaSE-对象重写hashCode()、equals()原则

重写 hashCode() 方法的基本原则在程序运行时,同一个对象多次调用 hashCode() 方法应该返回相同的值。当两个对象的 equals() 方法比较返回 true 时,这两个对象的 hashCode() 方法的返回值也应相等。对象中用作 equals() 方法比较的 Field,都应该用来计算 hashCode 值。重写 equals() 方法的基本原则何时需要重写equ...

2020-03-30 14:12:47 171

原创 JavaSE-线程池

线程:调度cpu的最小单元,也叫轻量级进程LMP(Light Weight Process)ULT(用户级线程):用户程序实现,不依赖操作系统核心,应用提供创建、同步、调度和管理线程的函数来控制用户线程。不需要用户态/核心态切换。内核对ULT无感,线程阻塞则进程(包括他的所有线程)阻塞。KLT(内核线程):系统内核管理线程(KLT),内核保存线程的状态和上下文信息,线程阻塞不会引起进程阻塞。...

2020-03-30 00:23:58 146

原创 java锁体系

1.java中锁体系乐观锁,悲观锁读锁(共享锁),写锁(排他锁)自旋锁,非自旋锁无锁,偏向锁,轻量级锁,重量级锁分布式锁区间锁(分段锁)java.util.concurrent ConcurrentHashMap重入锁,非重入锁公平锁,非公平锁...

2020-03-29 01:13:22 283

原创 数据结构和算法-8种排序算法

1. 冒泡冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。优化:因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志flag判断元素是否进行过交换。从而减少不必要的...

2020-03-28 00:20:30 173

原创 数据结构和算法-算法

1.排序算法的介绍排序也称排序算法(Sort Algorithm),排序是将一 组数据,依指定的顺序进行排列 的过程。排序的分类:内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。常见8种排序算法2.算法的时间复杂度2.1 度量一个程序(算法)执行时间的两种方法事后统计的方法...

2020-03-27 23:15:39 105

原创 数据结构和算法-顺序存储二叉树、线索化二叉树

1. 顺序存储二叉树概念从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组要求:右图的二叉树的结点,要求以数组 的方式来存放 arr : [1, 2, 3, 4, 5, 6, 6]要求在遍历数组 arr时,仍然可以以前序遍历,中序遍历和后序遍历的方式完成结点的遍历顺序存储二叉树的特点:顺序二叉树通常只考虑完全二叉树第n个元素的左子节点...

2020-03-26 15:00:31 135

原创 数据结构和算法-二叉树概念、三种遍历

1. 树的常用术语树的常用术语(结合示意图理解):节点根节点父节点子节点叶子节点 (没有子节点的节点)节点的权(节点值)路径(从root节点找到该节点的路线)层子树树的高度(最大层数)森林 :多颗子树构成森林1.2 二叉树的概念每个节点最多只能有两个子节点的一种形式称为二叉树二叉树的子节点分为左节点和右节点3. 满二叉树:如果该二叉树的所有叶子节点都在...

2020-03-24 14:58:24 195

原创 SpringBoot-BeanFactoryPostProcessor

BeanFactoryPostProcessor 类import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.BeanFactoryPostProcessor;import org.springframework.beans.factory.config....

2020-03-23 00:47:27 578

原创 SpringBoot-声明式事务

1. SpringBoot-声明式事务1.1 依赖数据源、数据库驱动、Spring-jdbc模块<dependencies> <!-- IOC依赖--> <dependency> <groupId>org.springframework</groupId> ...

2020-03-22 22:43:40 321

原创 SpringBoot-AOP源码

1. AOP功能测试代码切面类:package com.fcc.springAnnotation.aop;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.AfterReturning;import org.as...

2020-03-22 21:44:18 503 1

原创 Spring-AOP

标题/** * AOP:【动态代理】 * 指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式; * * 1、导入aop模块;Spring AOP(spring-aspects) * 2、定义一个业务逻辑类,在业务逻辑运行的时候将日志进行打印() * 3、定义一个日志切面类(LogAspects):切面类里的方法需要动态感知MathCalculator....

2020-03-21 00:16:58 108

原创 JavaSE-网络编程(TCP编程、UDP编程、URL)

1. TCP/IP协议簇传输层协议中有两个非常重要的协议:传输控制协议TCP(Transmission Control Protocol)用户数据报协议UDP(User Datagram Protocol)。 TCP/IP 以其两个主要协议:传输控制协议(TCP)和网络互联协议(IP)而得名,实际上是一组协议,包括多个具有不同功能且互为关联的协议。IP(Internet Protoco...

2020-03-16 19:54:47 206

原创 JavaSE-网络编程

1. 概述Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序。Java提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境。网络编程的目的:直接或间接地通过网络协议与其它计算机实现数...

2020-03-16 19:23:22 308

原创 JavaSE-IO流(二)

1.随机存取文件流RandomAccessFile

2020-03-16 17:27:20 134

原创 JavaSE-对象序列化、IO

1. 对象的序列化-对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。//当其它程序获取了这种二进制流,就可以恢复成原来的Java对象-序列化的好处在于可将任何实现了Serializable接口的对象转化为字节数据,使其在保存和传输时可被还原序列化是 RMI(Remote Method ...

2020-03-16 17:08:13 181

原创 JavaSE-JDK常用类-System类、Math类、BigInteger

1. System类System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便的进行调用。1.1成员变量System类内部包含in、out和err三个成员变量,分别代表标准输入流(键盘输入),标准输出流...

2020-03-16 16:20:51 197

原创 JavaSE-JDK常用类-Java比较器

在Java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题。Java实现对象排序的方式有两种:自然排序:java.lang.Comparable定制排序:java.util.Comparator1.自然排序:java.lang.ComparableComparable接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序。实现 Comparable 的...

2020-03-16 16:06:49 108

springCloudAlibabaDemo.rar

springCloudAlibabaDemo,自己搭建的用springCloud alibaba解决方法的demo工程

2020-07-03

空空如也

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

TA关注的人

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