自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 idea重启端口占用问题

idea重启端口占用问题1. 方法一(杀掉端口)1.查看某个端口 netstat -aon| findstr 80882.查询有哪些进程tasklist | findstr "9328"3.杀掉进程taskkill /f /t /im java.exe2. 方法二(更改端口好)application.properties里面有server.port=端口,把端口改了就好...

2021-09-29 13:56:13 348

原创 typora集成阿里云oss实时上传图片

typora集成阿里云oss实时上传图片1. 第一步进入设置点击 文件 —> 偏好设置 —> 图像 进入配置页面2.进行配置第一行下拉框选择上传图片上传服务选择 PicGo-Core(command line)点击下载或更新,进行下载(必须下载成功)点击打开配置文件我们 进行配置(配置项目如下:){ "picBed": { "uploader": "aliyun", "aliyun": { "accessKeyId": "xxxxxxxxx"

2021-08-23 14:21:56 385

原创 SSM项目引入sharding JDBC进行分表

SSM项目引入sharding JDBC进行分表注意点:由于各个版本差别比较大,配置方式差别也特别大,请根据官方文档进行配置!官方配置路径:https://shardingsphere.apache.org/document/legacy/4.x/document/cn/manual/sharding-jdbc/configuration/config-spring-namespace/本次展示的是不分库,按年进行分表,如有使用要根据自己的业务进行修改!查找的时候要把你的分片那列带上,不然会这

2021-08-21 17:57:26 852

转载 JavaScript基础第06天笔记

JavaScript基础第06天笔记1 - 内置对象1.1 内置对象​ JavaScript 中的对象分为3种:自定义对象 、内置对象、 浏览器对象​ 前面两种对象是JS 基础 内容,属于 ECMAScript; 第三个浏览器对象属于 JS 独有的, JS API 讲解内置对象就是指 JS 语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法),内置对象最大的优点就是帮助我们快速开发​ JavaScript 提供了多个内置对象:Math、 Da

2021-03-29 01:23:13 122

原创 JavaScript基础第05天笔记

JavaScript基础第05天笔记1 - 作用域1.1 作用域概述通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。JavaScript(es6前)中的作用域有两种:全局作用域局部作用域(函数作用域)1.2 全局作用域作用于所有代码执行的环境(整个 script 标签内部)或者一个独立的 js 文件。1.3 局部作用域作用于函数内的代码环境,就

2021-03-29 01:19:16 94

转载 JavaScript基础第04天笔记

JavaScript基础第04天笔记1 - 数组1.1 数组的概念数组可以把一组相关的数据一起存放,并提供方便的访问(获取)方式。数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。数组是一种将一组数据存储在单个变量名下的优雅方式。1.2 创建数组JS 中创建数组有两种方式:利用 new 创建数组var 数组名 = new Array() ;var arr = new Array(); // 创建一个新的空数组注意 Array () ,A 要

2021-03-29 01:17:27 89

转载 JavaScript基础第03天笔记

JavaScript基础第03天笔记1 - 循环1.1 for循环语法结构for(初始化变量; 条件表达式; 操作表达式 ){ //循环体}名称作用初始化变量通常被用于初始化一个计数器,该表达式可以使用 var 关键字声明新的变量,这个变量帮我们来记录次数。条件表达式用于确定每一次循环是否能被执行。如果结果是 true 就继续循环,否则退出循环。操作表达式用于确定每一次循环是否能被执行。如果结果是 true 就继续循环,否则退出循环。执行

2021-03-29 01:13:03 79

转载 JavaScript基础第02天

JavaScript基础第02天1 - 运算符(操作符)1.1 运算符的分类运算符(operator)也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号。JavaScript中常用的运算符有:算数运算符递增和递减运算符比较运算符逻辑运算符赋值运算符1.2 算数运算符算术运算符概述概念:算术运算使用的符号,用于执行两个变量或值的算术运算。浮点数的精度问题浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数。var result

2021-03-29 01:09:28 82

转载 JavaScript基础第01天

JavaScript基础第01天1 - 编程语言1.1 编程编程:就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。计算机程序:就是计算机所执行的一系列的指令集合,而程序全部都是用我们所掌握的语言来编写的,所以人们要控制计算机一定要通过计算机语言向计算机发出命令。1.2 计算机语言计算机语言指用于人与计算机之间通讯的语言,它是人与计算机之间传递信息的媒介。计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言和高级语言三大类。

2021-03-29 00:59:22 194

原创 JUC (狂神说笔记三)

16、JMM什么是JMM?JMM:Java Memory Model Java内存模型,不是一个真实的存在的东西,它是一个概念,约定!关于JMM的一些同步的约定:线程解锁前,必须把共享变量立刻刷回主存线程加锁前,必须读取主存中的最新值到工作内存中加锁和解锁必须是同一把锁线程在实际的运行时,是有工作内存和主内存两个概念的。实际的运行图示:内存交互操作有8种,虚拟机实现必须保证每一个操作都是原子的,不可在分的(对于double和long类型的变量来说,load、store、read和

2020-12-24 17:39:06 145 2

原创 JUC (狂神说笔记二)

9、读写锁ReadWriteLock:读可以被多线程同时读,写的时候只能有一个线程去写测试代码:package pers.mobian.rw;import java.util.HashMap;import java.util.Map;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;public class ReadWrit

2020-12-24 17:27:07 143 1

原创 JUC 多线程详解(狂神说笔记一)

多线程详解(狂神说笔记)创建线程的三种方式创建方式一:继承thread方法,重写run()方法,调用start开启线程注意:线程开启不一定立即执行,由cpu调度**不建议使用:避免OOP单继承局限性 **创建方式二:实现runnable接口,重写run方法,执行线程需要丢入runnable接口实现类.|调用start()方法(推荐使用)推荐使用:避免单继承局限性,灵活方便,方便同一个对象被多个线程使用创建方式三:实现Callable接口(了解)1.实现Callabl

2020-12-22 12:42:52 565

原创 第 15 章 垃圾回收相关算法

第 15 章 垃圾回收相关算法1、标记阶段:引用计数器1.1、标记阶段的目的垃圾标记阶段:判断对象是否存活在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,GC才会在执行垃圾回收时,释放掉其所占用的内存空间,因此这个过程我们可以称为垃圾标记阶段。那么在JVM中究竟是如何标记一个死亡对象呢?简单来说,当一个对象已经不再被任何的存活对象继续引用时,就可以宣判为已经死亡。判断对象存活一般有两种方

2020-11-27 08:56:19 358 1

原创 第 16 章 垃圾回收相关概念

第 16 章 垃圾回收相关概念1、System.gc() 的理解1.1、System.gc() 方法System.gc() 方法在默认情况下,通过System.gc()者Runtime.getRuntime().gc() 的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存。然而System.gc()调用附带一个免责声明,无法保证对垃圾收集器的调用(不能确保立即生效)JVM实现者可以通过System.gc() 调用来决定JVM的GC行为。而一般情况下

2020-11-27 08:54:58 277 1

原创 第 17 章 垃圾回收器

第 17 章 垃圾回收器1、GC 分类与性能指标1.1、垃圾回收器概述与分类垃圾回收器概述垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商、不同版本的JVM来实现。由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC版本。从不同角度分析垃圾收集器,可以将GC分为不同的类型。Java不同版本新特性语法层面:Lambda表达式、switch、自动拆箱装箱、enumAPI层面:Stream API、新的日期时间、Optional、String、集合框架

2020-11-27 08:53:00 452

原创 第 14 章 垃圾回收概述

第 14 章 垃圾回收概述1、垃圾收集面试题回顾 JVM 学习路线关于垃圾收集Java 和 C++语言的区别,就在于垃圾收集技术和内存动态分配上,C语言没有垃圾收集技术,需要我们手动的收集。垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。关于垃圾收集有三个经典问题:哪些内存需要回收?什么时候回收?如何回收?垃圾收集机制是Java的招牌能力,极大地提高了开发效率。如今,垃圾收集几乎成为现代语言的标配,即使经

2020-11-27 08:51:16 211

原创 第 13 章 StringTable

第 13 章 StringTable1、String 的基本特性1.1、String 概述String 的概述String:字符串,使用一对 “” 引起来表示String s1 = "mogublog" ; // 字面量的定义方式String s2 = new String("moxi"); // new 对象的方式12String声明为final的,不可被继承String实现了Serializable接口:表示字符串是支持序列化的。实现了Compar

2020-11-27 08:50:41 196

原创 第 12 章 执行引擎

第 12 章 执行引擎1、执行引擎概述执行引擎位置执行引擎属于JVM的下层,里面包括:解释器、即时编译器、垃圾回收器1.1、执行引擎概述执行引擎概述执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。JVM的主

2020-11-27 08:45:23 220

原创 第 11 章 直接内存

第 11 章 直接内存1、直接内存概述直接内存不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。直接内存是在Java堆外的、直接向系统申请的内存区间。来源于NIO,通过存在堆中的DirectByteBuffer操作Native内存通常,访问直接内存的速度会优于Java堆。即读写性能高。因此出于性能考虑,读写频繁的场合可能会考虑使用直接内存。Java的NIO库允许Java程序使用直接内存,用于数据缓冲区代码示例代码/** * IO

2020-11-27 08:44:23 185 1

原创 第 10 章 对象的实例化内存布局与访问定位

第 10 章 对象的实例化内存布局与访问定位1、对象的实例化大厂面试题美团:对象在JVM中是怎么存储的?对象头信息里面有哪些东西?蚂蚁金服:二面:java对象头里有什么对象实例化1.1、对象创建的方式对象创建的方式new:最常见的方式、单例类中调用getInstance的静态类方法,XXXFactory的静态方法Class的newInstance方法:在JDK9里面被标记为过时的方法,因为只能调用空参构造器,并且权限必须为 publicConstructor的

2020-11-26 14:59:39 143

原创 第 9 章 方法区

1、栈 堆 方法区的交互关系从内存结构来看这次所讲述的是运行时数据区的最后一个部分从线程共享与否的角度来看ThreadLocal:如何保证多个线程在并发环境下的安全性?典型应用就是数据库连接管理,以及独立会话管理栈、堆、方法区的交互关系下面就涉及了对象的访问定位Person 类的 .class 信息存放在方法区中person 变量存放在 Java 栈的局部变量表中真正的 person 对象存放在 Java 堆中在 person 对象中,有个指针指向方法区中的 perso

2020-11-26 14:58:21 281

原创 第 8 章 堆

目录1、堆的核心概述1.1、认识堆内存1.2、查看堆内存1.3、堆内存分区2、设置堆内存大小与 OOM2.1、设置堆内存2.2、OOM 举例3、年轻代与老年代3.1、Java 对象分类3.2、配置新老比例4、图解对象分配过程4.1、对象分配过程4.2、图解对象分配4.3、特殊情况说明4.4、常用调优工具5、GC 垃圾回收器5.1、分代收集思想5.2、Young GC5.3、Major/Full GC6、堆空间分代思想7、内存分配策略8、为对象分配内存8.1、为什么有 TLAB8.2、什么是 TLAB8.3、

2020-11-26 14:55:04 309

原创 第 7 章 本地方法栈

1、本地方法栈本地方法栈的特点Java虚拟机栈于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。本地方法栈,也是线程私有的。允许被实现成固定或者是可动态扩展的内存大小(在内存溢出方面和虚拟机栈相同)如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个stackoverflowError 异常。如果本地方法栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的本地方法栈,那么Java虚拟机将会抛出一个

2020-11-26 14:48:26 187 1

原创 第 6 章 本地方法接口

1、本地方法什么是本地方法?简单地讲,一个Native Method是一个Java调用非Java代码的接囗一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern 告知C++编译器去调用一个C的函数。“A native method is a Java method whose implementation is provided by non-java c

2020-11-26 14:46:27 305

原创 第 5 章 虚拟机栈

1、虚拟机栈概述1.1、虚拟机栈的出现背景文档网址https://docs.oracle.com/javase/specs/jvms/se8/html/index.html虚拟机栈出现的背景由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。内存中的栈与堆首先栈是运行时的单位,而堆是存储的单位栈解决程序的运行问题,即程序如何执行,或者

2020-11-26 14:44:52 482 1

原创 第 4 章 程序计数器

1、PC 寄存器概述文档网址https://docs.oracle.com/javase/specs/jvms/se8/html/index.htmlPC 寄存器介绍JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。这里,并非是广义上所指的物理寄存器,或许将其翻译为PC计数器(或指令计数器)会更加贴切(也称为程序钩子),并且也不容易引起一些不必要的

2020-11-26 14:35:44 226

原创 第 3 章 运行时数据区概述及线程

目录1、前言2、运行时数据区结构2.1、运行时数据区与内存2.2、线程的内存空间3、线程3.1、JVM 线程3.2、JVM 系统线程1、前言本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段当我们通过前面的:类的加载 --> 验证 --> 准备 --> 解析 --> 初始化,这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区也就是大厨做饭,我们把大厨后面的东西(切好的菜,刀,调料),比作是运行时数据区。而厨师可

2020-11-26 14:34:05 154

原创 第 2 章 类加载子系统

目录1、内存结构概述2、类加载子系统3、类加载过程3.1、类加载过程概述3.2、加载阶段3.3、链接阶段3.3.1、验证(Verify)3.3.2、准备(Prepare)3.3.3、解析(Resolve)3.4、初始化阶段4、类加载器的分类4.1、类加载器概述4.2、虚拟机自带的加载器4.2.1、启动类加载器4.2.2、扩展类加载器4.2.3、系统类加载器4.3、用户自定义类加载器4.4、关于 ClassLoader5、双亲委派机制5.1、双亲委派机制原理5.2、双亲委派机制代码示例5.3、双亲委派机制优势

2020-11-26 14:32:15 257

原创 第 1 章 JVM 和 Java 体系架构

目录1、JVM 前言2、开发人员的病态3、架构师在想甚么4、为什么学习 JVM5、Java VS C++6、参考书籍7、课程章节8、TIOBE 排行榜9、Java 生态圈10、Java的跨平台性11、字节码12、多语言混合编程13、自己写个 JVM14、Java 重大事件15、虚拟机介绍15.1、虚拟机概念15.2、Java 虚拟机16、JVM 的位置17、Java 的整体结构18、Java 代码执行流程19、JVM 架构模型19.1、基于栈的指令集架构19.2、基于寄存器的指令级架构19.3、两种架构的举

2020-11-26 14:29:03 341

原创 安装k8s,OpenEBS,KubeSphere

网络防火墙配置编辑注意,在开始安装前,如果您的服务器所在的网络开启了防火墙,请参考如下列表并根据实际情况开放相关的端口,若没有开启防火墙则无需在主机配置该项内容。服务协议操作起始端口结束端口备注sshTCPallow22etcdTCPallow23792380apiserverTCPallow6443calicoTCPallow90999100bgpTCPallow179nodeportTCP

2020-10-10 17:37:14 2705

原创 nacos集群搭建(超详细)

安装nacos一导入数据库导入nacos的/conf/nacos-mysql.sql文件到mysql配置文件一.进入nacos的配置文件mynacos/nacos/conf/application.properties二、把application.properties进行备份application.init三、进入application.properties的文件内切换mysql的数据库spring.datasource.platform=mysqldb.num=1db.url.0=jd

2020-08-10 14:04:09 3411

原创 MySQL 5.7.27详细下载安装配置教程

前言在安装MySQL的时候会遇到很多问题,博客上有很多解决问题的办法,在这里我附上一些链接,遇到问题的朋友们可以阅读参考哈~本文主要针对于刚接触数据库的小白,来安装MySQL数据库。目前官网上的MySQL版本有5.5,5.6,5.7和8,在开发的时候我们一般要选择比最新版低1到2个版本的,因此我选择了5.7作为要安装的数据库1.下载步骤访问官方网站:https://www.mysql.com/选择Downloads下的Community下载对应的版本点击上图的MySQL Community

2020-08-10 14:00:58 677

原创 vue第四天

接口调用方式原生ajax基于jQuery的ajaxfetchaxios异步JavaScript的执行环境是「单线程」所谓单线程,是指JS引擎中负责解释和执行JavaScript代码的线程只有一个,也就是一次只能完成一项任务,这个任务执行完后才能执行下一个,它会「阻塞」其他任务。这个任务可称为主线程异步模式可以一起执行多个任务JS中常见的异步调用定时任何ajax事件函数promise主要解决异步深层嵌套的问题promise 提供了简洁的API 使得异步操作更加容

2020-07-09 11:48:22 79

原创 vue第三天

day03组件组件 (Component) 是 Vue.js 最强大的功能之一组件可以扩展 HTML 元素,封装可重用的代组件注册全局注册Vue.component(‘组件名称’, { }) 第1个参数是标签名称,第2个参数是一个选项对象全局组件注册后,任何vue实例都可以用组件基础用<div id="example"> <!-- 2、 组件使用 组件名称 是以HTML标签的形式使用 --> <my-component>&l

2020-07-09 11:47:51 91

原创 vue第二天

day02Vue常用特性表单基本操作获取单选框中的值通过v-model <!-- 1、 两个单选框需要同时通过v-model 双向绑定 一个值 2、 每一个单选框必须要有value属性 且value 值不能一样 3、 当某一个单选框选中的时候 v-model 会将当前的 value值 改变 data 中的 数据 gender 的值就是选中的值,我们只需要实时监控他的值就可以了 --> <input type="radio"

2020-07-09 11:47:23 204

原创 vue第一天

day01Vue 是什么?Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合使用Vue将helloworld 渲染到页面上指令本质就是自定义属性Vue中指定都是以 v- 开头v-cloak防止页面加载时出现闪烁问题 <style type="text/css"> /* 1、通过属性选择器 选择到 带有属性 v-cloak的标签 让他隐藏

2020-07-09 11:46:40 101

原创 JavaScript高级第04天笔记

JavaScript高级第04天笔记1.正则表达式概述1.1什么是正则表达式正则表达式( Regular Expression )是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。正则表通常被用来检索、替换那些符合某个模式(规则)的文本,例如验证表单:用户名表单只能输入英文字母、数字或者下划线, 昵称输入框中可以输入中文(匹配)。此外,正则表达式还常用于过滤掉页面内容中的一些敏感词(替换),或从字符串中获取我们想要的特定部分(提取)等 。其他语言也会使用正则表达式,本

2020-06-21 18:47:39 175

原创 JavaScript高级第03天笔记

JavaScript高级第03天笔记1.函数的定义和调用1.1函数的定义方式方式1 函数声明方式 function 关键字 (命名函数)function fn(){}方式2 函数表达式(匿名函数)var fn = function(){}方式3 new Function()var f = new Function('a', 'b', 'console.log(a + b)');f(1, 2);var fn = new Function('参数1','参数2'..., '

2020-06-21 18:46:06 118

原创 JavaScript高级第01天笔记

JavaScript高级第01天笔记1.面向过程与面向对象1.1面向过程面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。1.2面向对象面向对象是把事务分解成为一个个对象,然后由对象之间分工与合作。1.3面向过程与面向对象对比面向过程面向对象优点性能比面向对象高,适合跟硬件联系很紧密的东西,例如单片机就采用的面向过程编程。易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低

2020-06-21 18:42:45 152

原创 解决maven项目pom依赖下载缓慢(配置国内镜像)

找到你的maven配置,如果时间长忘了在哪可以打开eclipse,如图:修改maven 的settings.xml文件<!--配置阿里云Maven镜像--> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf>...

2020-04-12 17:40:27 1439

空空如也

空空如也

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

TA关注的人

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