自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HashMap我们谈点不一样的

前言:早年间,HashMap是面试场上必问的面试题,如今学生出去面试也会经常碰见。为了彰显个人学习的深度,以及领悟力。我们必须在面试的过程中,说点不一样的东西,像什么数组+链表的数据结构、Java8的链表树形化这种千篇一律的答案,已经没有任何新颖之处了,是非常平庸的答案。所以我们要说,就必须说点有意思的。在这个知识点上,必须把面试官拿下!本课程就是为了让大家从根源上认识HashMap,并且可以...

2019-11-06 14:15:43 2237 6

原创 传智健康[一]

1>. 项目前言1.项目介绍①. 甲方:**健康管理机构②.专业化,流程化,数据化,可视化,集成化2.原型展示分两部分:后台管理,微信端(HTML5)3.技术架构 前端:HTML5,bootstrpt,vue,elementUI,ajax 后台: 1.zk+dubbo(服务注册与调用) 2.Spring+SpringMVC+Mybatis(主框架) ...

2019-10-18 11:53:01 9115 40

原创 JVM_虚拟机目录

1. 类加载的生命周期1. 类加载生命周期加载[loading]:连接[Linking]:将已读入内存的二进制数据合并到JVM运行的环境中初始化[initialization]:JVM会按照初始化语句在类文件中的先后顺序执行2. 加载在VM [ JVM ] option中添加 java命令执行可以实现追踪类加载过程信息的参数-XX:+TraceClassLoadin...

2019-06-28 11:44:22 8104 14

原创 Docker03_docker+mysql+redis软件安装

①. docker安装①. 官网中文安装参考手册(https://docs.docker-cn.com/engine/installation/linux/docker-ce/centos/#prerequisites)②. 确定你是CentOS7及以上版本(cat /etc/redhat-release)③. yum安装gcc相关 yum -y install gccyum -y install gcc-c++④. 卸载旧版本yum -y remove docker d

2020-11-22 18:07:32 19

原创 Docker02_容器数据卷+DockerFile解析+本地镜像发布到阿里云

①. 容器数据卷①. 什么是容器卷①. 容器卷是用来做持久化处理的,有点类似我们Redis里面的rdb和aof文件②. 作用:容器的持久化容器间继承+共享数据②. 直接命令添加(容器内添加)①. 命令 docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名docker run -it -v②. 查看是否挂载成功 docker inspect 容器ID③. 在宿主机上修改的东西,进入容器中可以看到也进行了修改;在容器上修改的东西,在宿主

2020-11-22 17:47:15 40 4

原创 Docker01_概述+软件安装+常用命令+镜像

①. Docker简介1>. Docker简介①. docker是基于go语言开发,主要目标是一次封装、到处运行。使用Docker可以实现开发人员的开发环境、测试人员的测试环境、运维人员的生产环境的一致性②. docker借鉴了标准集装箱的概念。标准的集装箱将货物运往世界各地,Docker将这个模型运用到自己的设置中,唯一不同的是:集装箱运输货物,而Docker运输软件③. Docker运行在CentOS-6.5或更高的版本的CentOS上,要求系统为64位、系统内核版本为2.6

2020-11-17 12:10:57 134

原创 FRONT01_三元表达式+refs调用子组件时的undefined

①. vue 三元表达式及类似用法 <div id="app"> <span :style="{'color':status === true ? '#FF5757':'#757575'}">测试</span> <div>===========</div> <div>{{age==24?'tangzhi':age==23?'yangxing':'yangyang'}}</di

2020-11-12 14:42:14 52

原创 LINUX_安装Redis6.0.9

①. 要安装Reids6.0.9,需要安装gcc坏境,版本不能太低 gcc -v yum -y install centos-release-scl # 升级到9.1版本 yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils scl enable devtoolset-9 bash # 以上为临时启用,如果要长期使用gcc 9.1的话: echo "source /opt/rh/devto.

2020-11-12 11:40:42 157

原创 LINUX02_磁盘分区类

①. 分区的概述①. windows下的磁盘分区②.常用的两种磁盘分区类型mbr(linux是这种分区类型)操作系统要安装在主分区只支持4个主分区扩展分区占一个主分区③. gpt (win7 64位以后)无限主分区支持超大硬盘 3T以上②. 查看所有设备挂载情况lsblk①. 命令 :lsblk 或者 lsblk -f②. 如何增加一块硬盘在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改

2020-11-07 10:50:31 23

原创 LINUX_使用NET模式安装虚拟机

(1). 打开VMware,点击文件,选择新建虚拟机(或者直接使用Ctrl+N快捷键),然后选择自定义(高级)。如果选择典型(推荐),VMware会自动为你配置好部分内容,为了学习,在这里选择自定义。(2). 新建虚拟机向导(3). 创建虚拟空白光盘(4). 安装Linux系统对应的CentOS版(5). 虚拟机命名和定位磁盘位置(6). 处理器配置,看自己是否是双核、多核[如何查看CPU](7). 设置内存为2GB(8). 网络设置NAT.

2020-11-03 14:44:40 58

原创 JUC07_线程池(底层原理+七大参数+拒绝策略)

在这里插入代码片

2020-10-31 09:20:30 75

原创 JUC06_阻塞队列

在这里插入代码片

2020-10-31 09:19:11 71 1

原创 JUC05_锁(公平锁|非公平锁|可重入锁|递归锁|自旋锁)

在这里插入代码片

2020-10-31 09:18:40 60

原创 work02_vue页面打印水印

前言项目生成公司水印是很普遍的需求,下面是vue项目生产水印的方法。话不多说,复制粘贴就可以马上解决你的需求①. vue页面打印水印[一]①. 创建watermark.js文件/** 水印添加方法 */let setWatermark = (str1, str2) => { let id = '1.23452384164.123412415' if (document.getElementById(id) !== null) { document.body.re.

2020-10-30 09:48:53 24

原创 work01_pdf后台打印水印

①. 案例演示:①. pom.xml<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> &

2020-10-30 09:47:59 31

原创 work_目录列表

在这里插入代码片

2020-10-30 09:47:18 28

原创 JUC04_AQS源码体系(Locksupport+工具类)

①. 可重入锁1>. 可重入锁(递归锁)①. 指的是同一线程外层函数获得锁后,再进入该线程的内层方法会自动获取锁 (前提,锁对象是同一个对象)类似于家里面的大门,进入之后可以进入厕所、厨房等②. Java中ReentranLock(显示锁)和synchronized(隐式锁)都是可重入锁,可重入锁的一个优点是可在一定程度避免死锁③. 隐式锁:(即synchronized关键字使用的锁)默认是可重入锁(同步块、同步方法)原理如下:掌握每个锁对象拥有一个锁计数器和一个指向

2020-10-29 21:08:31 68

原创 JUC03_CAS原理分析及ABA问题详解

①. CAS你知道吗?1>. CAS你知道吗CAS的全称为Compare-And-Swap ,它是一条CPU并发原语,比较工作内存值(预期值)和内存值是否相同,相同则执行规定操作,否则继续比较直到主内存和工作内存的值一致为止 /* * CAS:Compare and swap [比较并交换] * */ public class AtomicIntegerDemo { public static void main(String[] args) { Atomi

2020-10-21 22:40:28 86

原创 JUC02_详解volatile关键字

①. 什么是volatile1>. 什么是volatile?①. volatile是Java虚拟机提供的 轻量级的同步机制(乞丐版的synchronized)②. 特征:保证可见性不保证原子性禁止指令重排②. JMM的理解2>. JMM的理解(java内存模型)①. JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念 并不真实存在,它描述的是一组规则或规范通过规范定制了程序中各个变量(包括实例字段,静态字段和构成数

2020-10-21 22:39:11 96

原创 JUC01_多线程基础知识体系

4456

2020-10-21 22:38:41 106

原创 JUC00_多线程基础小知识

①. Thread.activeCount( )1>. Thread.activeCount( )①. 在IDEA中Thread.activeCount()=2,除了main方法的主线程外还有,还多了一个预期外的 Monitor Ctrl-Break 线程 public class threadActiveCount { public static void main(String[] args) { //打印当前线程组的线程 Thread.cu

2020-10-21 22:37:19 160

原创 JUC_并发编程目录

1123

2020-10-21 22:34:43 331

原创 02_可重入锁(递归锁)+LockSupport+AQS源码分析

①. 可重入锁1>. 可重入锁(递归锁)①. 指的是同一线程外层函数获得锁后,再进入该线程的内层方法会自动获取锁 (前提,锁对象是同一个对象)类似于家里面的大门,进入之后可以进入厕所、厨房等②. Java中ReentranLock(显示锁)和synchronized(隐式锁)都是可重入锁,可重入锁的一个优点是可在一定程度避免死锁③. 隐式锁:(即synchronized关键字使用的锁)默认是可重入锁(同步块、同步方法)原理如下:掌握每个锁对象拥有一个锁计数器和一个指向

2020-10-21 21:45:12 2361 12

原创 面试第三季(AQS+Redis+Spring)

01_Java字符串常量池+两数之和

2020-10-21 21:14:41 2230 3

原创 01_Java字符串常量池+两数之和

①. Java字符串常量池前言:关于String的intern,在如下地址中有详细记载,建议先看:https://blog.csdn.net/TZ845195485/article/details/108314898①. 代码演示除了java之外,其他的都会返回truepublic class StringPools58Demo { public static void main(String[] args) { /* (1).str1

2020-10-20 22:58:50 732 2

原创 SpringCloud_04 远程调用Feign

①. Feign的概述1>. Feign的概述①. Feign是一个服务接口的绑定器,(接口+@FeignClient(value=“服务名称”)) 接口与接口之间的一个调用②. Feign集成了Ribbon。 利用Ribbon维护了Payment的服务列表信息,并且通过轮询实现了客户端的负载均衡。而与Ribbon不同的是,通过feign值需要定义服务绑定接口且以声明式的方法,优雅而简单的实现了服务调用③. Feign和OpenFeign的区别④. SpringMvc中能用

2020-10-08 18:59:14 41

原创 SpringCloud_10 注册中心+配置中心Nacos

写在最前面:(1).nacos官网:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html(2).nacos下载:https://github.com/alibaba/nacos/releases/tag/1.1.4①. Nacos简介1>.Nacos简介(了解)②. 安装并运行Nacos2>. 安装并运行Nacos(了解)①. 本地Java8+Maven环境已经OK②. 先从官网下载Nacoshttps.

2020-10-07 18:32:26 111

原创 SpringCloud_03 客户端负载均衡Ribbon

①. Ribbon的概述1>. Ribbon的概述①. Ribbon是Netfix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。②. LB(负载均衡)Nginx(集中式):Ribbon(进程式):②. 再谈RestTemplate2>. 再谈RestTemplate①. 架构说明:Ribbon其实就是一个软负载均衡的客户端组件,他可以和其他所需请求的客户端结合使用,和eureka结合只是其中的一个实例。②. pom文件说明:③.R

2020-10-05 23:08:27 85

原创 JVM_07 Class文件结构

①. 概述1>.概述(了解)①. 字节码文件的跨平台性(了解)①. Java语言:跨平台的语言当Java源代码成功编译为字节码后,如果想在不同的平台上运行,则无须再次编译这个优势不再那么吸引人了。Python PHP perl ruby lisp等有强大的解释器跨平台似乎已经快成为一门语言必须的特征②. Java虚拟机:跨语言的平台:(Java虚拟机不和包括java在内的任何语言绑定,它只与class文件这种二进制文件格式所关联。无论使用何种语言进行软件开发,只要将源文件编译

2020-10-04 10:39:43 340 2

原创 SpringCloud_02 服务注册中心Eeruka

①. Eureka简介1>. Eureka的简介:①. Eureka的主要功能是进行服务管理,定期检查服务状态,返回服务地址列表②. Eureka包含两个组件:EurekaServer提供服务注册服务EurekaClient通过注册中心进行访问:是一个Java客户端,用于简化Eureka Server的交互,客户端同时具备一个内置的、使用轮询负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳(默认周期为30s)。如果Eureka Server在多个心跳周期内

2020-10-03 09:43:59 78

原创 Mybatis_获取自增主键的两种方式

①.使用useGeneratedKeys <insert id="createPayment" parameterType="com.xiaozhi.Payment" useGeneratedKeys="true" keyProperty="id"> insert into payment(serial) values (#{serial}) </insert>②. 使用selectKey总体解释:将插入数.

2020-09-29 10:14:56 37

原创 SpringCloud_01 环境搭建

①. 技术选型②. 搭建父工程2>.搭建父工程①. pom.xml<!-- 统一管理jar包版本 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source>

2020-09-29 09:37:14 81

原创 JVM_06 垃圾收集器[ 三 ]

面试遇到面试官问这部分可以这样回答:不同的厂商会考虑使用不同的JVM,不同的JVM会使用不同的垃圾收集器,下面我介绍下主流的垃圾收集器有哪些(主流的7种),下面你就可以展开去说明七种垃圾收集器的每一个细节。(1).截止JDK 1.8,一共有7款不同的垃圾收集器。每一款不同的垃圾收集器都有不同的特点,在具体使用的时候,需要根据具体的情况选用不同的垃圾收集器(2).不同厂商、不同版本的虚拟机实现差别很大。HotSpot 虚拟机在JDK7/8后所有收集器及组合(连线),如下图:①. 评估GC的性能指.

2020-09-26 11:21:56 188

原创 JVM_05 执行引擎(Execution Engine)

①. 执行引擎概述1>. 执行引擎概述①. 执行引擎是Java虚拟机的核心组成部分之一②. JVM的主要任务是负责装载字节码到其内部,但字节码并不能够直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,它内部包含的仅仅只是一些能够被JVM锁识别的字节码指令、符号表和其他辅助信息③. 那么,如果想让一个Java程序运行起来、执行引擎的任务就是将字节码指令解释/编译为对应平台上的本地机器指令才可以。简单来说,JVM中的执行引擎充当了将高级语言翻译为机器语言的译者④. 执

2020-09-07 09:48:56 146

原创 JS高级-ES6语法、let | const、解析表达式、模板字符串、箭头函数、map | reduce、Object

①. let | const | var1>. let | const | var①. let是块级作用域,函数内部使用let定义后,对函数外部无影响 <script> //1.var申明的变量有变量提升,如果不初始化会输出undefined,不会报错。 console.log(num)//undefined var num = 10 console.log(num)//10

2020-09-05 10:46:07 60

原创 VUE_02 表单操作、自定义指令、计算属性、侦听器、过滤器、生命周期、数组

①. 表单操作1>.表单操作①. 表单基本操作<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head>&

2020-09-03 10:17:16 69

原创 JVM_04 字符串常量池(详解intern( ))

①. String的基本特性1>.String的基本特性①. String:字符串,使用一对""引起来表示。String sl = “hello”;//字面量的定义方式String s2 = new String(“hello”)②. String声明为final的, 不可被继承③. String实现了Serializable接口:表示字符串是支持序列化的。 实现了Comparable接口:表示String可以比较大小④. String在jdk8及以前内部定义了fin

2020-08-31 10:15:56 233

原创 VUE_01 基本使用、模板语法(插值表达式+指令+事件绑定+分支循环结构)

①. vue入门概述1>.vue入门概述①. vue的概述 ①. Vue:渐进式JavaSctipt框架 ②. https://cn.vuejs.org/v2/guide/②. vue入门案列讲解:③. 代码展示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content

2020-08-28 15:07:00 105

原创 JVM_04 对象的实例化+内存布局+访问定位+直接内存

前言:(1).new 最常见的方式 | 变形1 : Xxx的静态方法 | 变形2 : XxBuilder/XxoxFactory的静态方法(2).Class的newInstance():反射的方式,只能调用空参的构造器,权限必须是public(3).Constructor的newInstance(Xxx):反射的方式,可以调用空参、带参的构造器,权限没有要求(4).使用clone() :不调用任何构造器,当前类需要实现Cloneable接口,实现clone()(5).使用反序列化:从文件中、从.

2020-08-25 09:36:53 188

原创 JVM_03 运行时数据区 [ 方法区]

①. 方法区的概述1>. 方法区的概述①. 方法区在JVM启动的时候被创建,并且它的实际的物理内存空间和Java堆区一样都可以是不连续的 | 关闭Jvm就会释放这个区域的内存②. 方法区时逻辑上是堆的一个组成部分,但是在不同虚拟机里头实现是不一样的,最典型的就是永久代(PermGen space)和元空间(Metaspace)(注意:方法区时一种规范,而永久代和元空间是它的一种实现方式)③. 方法区的大小决定了系统可以保存多少个类,如果系统定义了太多的类,导致方法区溢出,虚拟机同

2020-08-21 10:37:06 245

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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