自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM类加载机制-简单记录

1. 什么是类加载JVM 将 .class 文件的二进制数据加载到内存,对数据进行校验、解析和初始化,并形成 JVM 可以直接使用的 class 对象。2. 加载过程2.1 加载 (Loading)1、通过一个类的全限定名(比如com.helloworld.class)来获取其定义的二进制字节流。 2、将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。3、在Java堆中生成一个代表这个类的java.lang.Class对象,作为对方法区中这些数据的访问入口。简单来说,就

2022-05-27 23:24:37 104

原创 正向代理 / 反向代理 的区别

正向代理客户端向代理发送一个请求并指定服务器,然后代理向原始服务器转交请求并将获得的内容返回给客户端.代理的是 “客户端”, 客户端的请求由代理进行转发.特点:正向代理往往需要在客户端配置代理服务器对于客户端来说, 清楚访问的是哪一个服务器对于服务器来说, 并不知道是哪个客户端的访问, 只能知道代理的信息用途:作为跳板, 通过代理访问一些无法直接访问的网站使用缓冲特性, 减少网络使用率反向代理与正向代理相反, 代理的是 “服务端”, 客户端的请求由代理服务器去选择目标服务器,

2021-06-21 14:45:06 92

原创 alias / root / proxy_pass 的区别

记录一下 nginx 配置里面 alias / root / proxy_pass 的区别alias别名配置, 匹配到的 url 路径会被替换location /test { alias /img;}请求: /test/1.png指向: /img/1.pngroot根路径配置, 匹配到的 url 会被拼接到 root 路径之后location /test { root /img;}请求: /test/1.png指向: /img/test/1.pngproxy_pass反向

2021-06-21 12:00:08 355

原创 重载 / 就近原则

就近原则重载方法参数类型耦合时, 按先子后父的顺序执行开发中避免重载方法参数耦合代码:public static String get(String s) { return "string";}public static String get(Object O) { return "object";}public static void main(String[] args) { String result = get(null); System.out

2021-06-10 17:31:12 125

原创 转发 / 重定向 的区别

转发地址栏 url 不会改变可以携带 request 数据属于服务器行为,由服务器控制,只需要一次请求,效率更快重定向地址栏 url 会改变不能携带 request 数据属于客户端行为如果由服务器告诉客户端重定向的地址,客户端至少需要两次请求,效率比转发慢...

2021-06-09 18:08:41 75

原创 ES6 解构赋值用法

字符串解构let str = '123'let [a, b, c] = str // a = '1', b = '2', c = '3'对象解构let user = {name: '小明', age: 18}// 获取对象属性let {name, age} = user // name = '小明', age = 18// 获取对象属性(自定义变量名)let {name: str} = user // str = '小明'数组解构let [a, b] = [1, 2, 3] /

2021-06-09 13:33:45 59

原创 ES6 模板字符串用法

解决字符串拼接问题使用模板字符串,可以省去 ‘+’ 拼接的操作,反引号``之间的视为一个整体view:<p v-html="getHtml()"></p>method:getHtml () { let h1 = ` <h1> 这是一个h1元素内容 </h1> ` return h1 }结果:通过表达式拼接对象属性使用 ${} 表达式可以直接拼接对象属性的值:let user = {

2021-06-09 11:51:42 138

原创 解决回调地狱 / 同步请求 / async 和 await 用法

async/await是什么async/await 是ES7提出的基于Promise的异步解决方案。async被async定义的函数会默认返回一个 Promise 对象 resolve 的值,async函数可以直接then。async function fun0(){ return 1;}fun0().then(val=>{ console.log(val) // 1})awaitawait 也是一个修饰符,只能在 async 定义的函数内使用,await 修饰的如

2021-06-08 20:46:29 163

转载 axios 封装 (转)

转载地址本文转自:https://blog.csdn.net/weixin_43216105/article/details/98877960?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162314340616780264067374%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162314340616780264067374

2021-06-08 19:55:32 529

原创 Vue生命周期简单说明

各阶段简单介绍生命周期图

2021-06-04 17:13:46 70

原创 计算属性和方法的区别

区别computed 和 methods,得到的结果是完全相同的computed 有缓存机制,如果结果值没有发生变化,会直接从缓存中取值,效率很快对于methods,无论结果值是否变化,一旦需要重新渲染,就会重新调用方法取值总结对于任何复杂逻辑,都应该使用计算属性...

2021-06-04 10:32:10 291

原创 v-show 和 v-if 的区别

v-showv-show 通过 css 中的 display 控制显示和隐藏无论条件 true 或者 false 都会渲染元素只渲染一次,性能消耗低v-ifv-if 通过添加或销毁 dom 控制显示和隐藏如果条件为 false 则不会渲染元素性能消耗大总结v-show 适合条件频繁变化的情况, v-if 适合条件变化较少的情况...

2021-06-04 09:40:01 40

原创 v-for 遍历数组/对象的区别

v-for 遍历数组// array: ['A', 'B', 'C']// item是value, 输出"a,b,c"<li v-for="item in array">{{item}}</li> // item是value, indexw是索引, 输出"0.a, 1.b, 2.c"<li v-for="(item,index) in array">{{index}}.{{item}}</li>v-for 遍历对象// object: {i

2021-06-03 14:58:58 213

原创 vue 中的按键事件

一. 按键别名在vue中, keyCode 的事件用法已经被废弃了并可能不会被最新的浏览器支持。Vue 提供了绝大多数常用的按键码的别名:.enter.tab.delete (捕获“删除”和“退格”键).esc.space.up.down.left.right同时可以通过全局 config.keyCodes 对象修改别名的方法:// 可以使用 `v-on:keyup.f1`Vue.config.keyCodes.f1 = 112二. 基本语法keydown 是在键盘按下就

2021-06-03 11:35:30 1595

原创 事件捕获/事件冒泡,终止冒泡/阻止默认行为

一. DOM事件触发的阶段当一个DOM事件被触发时,它不仅仅只是单纯地在本身对象上触发一次,而是会经历三个不同的阶段:捕获阶段:先由文档的根节点 document 往事件触发对象,从外向内捕获事件对象;目标阶段:到达目标事件位置(事发地),触发事件;冒泡阶段:再从目标事件位置往文档的根节点方向回溯,从内向外冒泡事件对象。简单来说,事件捕获是从外到内的触发事件,事件冒泡是从内到外的触发事件二. 监听事件使用 addEventListener 进行事件监听element.addEventL

2021-06-03 10:51:33 240

原创 跨域问题和解决方案

一. 什么是跨域1. 同源策略同源策略是游览器的一种安全约定,为防止收到XSS、CSRF攻击,不同域之间请求资源,都算作跨域。协议、子域名、主域名、端口号任意一个不同,即被游览器认作不同域(即使是同一网址 IP 和域名也看做不同域,例如:127.0.0.1 和 localhost)2. 同源策略限制不受限:(1)跳转链接、重定向、表单提交(2)跨域资源加载(< img >、< link >、< script >、< iframe > 等),但

2021-06-02 16:47:09 154

原创 for-in 和 for-of 的区别

for-in:var a = ['A', 'B', 'C'];for (var i in a) { alert(i); // '0', '1', '2' alert(a[i]); // 'A', 'B', 'C'}for-of:var a = ['A', 'B', 'C'];for (var x of a) { alert(x);//'A', 'B', 'C'}

2021-05-31 17:39:17 59

原创 Ajax异步请求原理

一、Ajax能做什么异步请求、局部刷新二、同步请求JavaScript的特点是单线程,也正是因为单线程造成了同步请求1. 为什么JS是单线程:JS 作为游览器脚本语言,主要用途是和用户交互、操作 DOM,如果使用多线程,会造成复杂的同步问题,如两个线程同时操作一个 DOM 节点,一个线程在这个节点上添加内容,另一个线程删除了这个节点,应该以哪个线程为准呢?为了避免复杂性,所以 JS 采用了单线程模式,即使 HTML5 的新标准里面,允许 JS 创建多个线程,子线程也必须受主线程控制,并且不允许操

2021-05-31 17:27:08 1448

原创 使用Mybatis-Plus简化CRUD开发

介绍MyBatis-Plus (简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。特性简单来说, 我们可以通过一些简单的配置, 实现大部分单表的CRUD操作, 同时内置了分页插件, 可以大幅度简化我们的开发工作依赖(引入mybatis-plus后, 无需再引入mybatis的依赖)<dependency> <groupId>com.baomidou</groupId> <

2021-05-28 14:49:44 190

原创 使用Lombok插件简化POJO类

什么lombokLombok是一款Java开发插件,主要可以精简pojo类的代码, 如Getter/Setter、构造器方法、equals方法和toString方法等如何使用lombok1. 安装lombok插件2. 导入lombok的依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId></dependenc

2021-05-27 13:08:41 115

原创 SpringBoot 读取配置文件中的属性值

Spring @value注解可以从配置文件中读取属性值(使用springEL表达式)例:application.yml:#开发环境spring: profiles: active: devDemo代码:@RestControllerpublic class HelloController { @Value("${spring.profiles.active}") private String active; @RequestMapping("hel

2021-05-27 10:48:21 542

原创 Java内存模型

Java内存模型原文:https://www.cnblogs.com/nexiyi/p/java_memory_model_and_thread.html一、主内存和工作内存 Java内存模型中规定了所有的变量都存储在主内存中,每条线程还有自己的工作内存(可以与前面将的处理器的高速缓存类比),线程的工作内存中保存了该线程使用到的变量到主内存副本拷贝,线程对变量的所有操作(读取、赋值)都必须在工作内存中进行,而不能直接读写主内存中的变量。不同线程之间无法直接访问对方工作内存中的变量,...

2020-10-12 20:44:15 124

原创 v-for 不要使用index作为key

问题记录:v-for 不要使用index作为keyv-for 不要使用index作为key,否则数组插入数据,会重新渲染所有元素,造成性能问题解决办法: 使用唯一的key

2020-09-17 15:19:59 443

空空如也

空空如也

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

TA关注的人

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