- 博客(13)
- 收藏
- 关注
原创 线程安全与锁优化
Java 语言中的线程安全 1. 不可变 2. 绝对线程安全 3. 相对线程安全 4. 线程兼容 5. 线程对立 6. String不可变,保证了数据安全线程安全的实现方法 1.互斥同步 Synchronized是不公平锁 Lock:等待中断、实现公平锁、锁的绑定条件 悲观锁:让线程阻塞同步,进入等待、数据同步 2.非阻塞同步 乐观锁:volatile轻量级锁,具有两个特性:1.可见性 2.不可重排序优化
2021-04-12 23:52:51
148
原创 类加载机制
类加载机制加载—> 连接 ----> 初始化 ----> 运行 ----> 卸载连接分为:验证、准备、解析Java动态扩展语言特性依赖于运行时期加载和动态连接加载:三部分 1.通过全限定名来获取二进制字节流 2.通过二进制流来将静态存储结构转换为方法区运行时数据结构 3.在内存中生成一个类,作为方法区的各种类数据接口验证: 1.文件格式验证 2.元数据验证 3.字节码验证 4.符号引用验证准备:加载static修饰的数据或
2021-04-12 22:23:31
149
原创 JVM垃圾回收与内存分配
JVM垃圾回收与内存分配垃圾回收判断算法:1. 引用计数法给对象添加一个计数器,当引用时计数器就加1,如果引用失效时,则计数器则减1。如果计数器为0时,则表示该对象不被引用。从而判定可以回收。2. 可达性分析算法GCROOTS为起点,向下搜索,搜索过程的路径作为引用链,当一个对象没有任何一个引用链,则表明对象不可被引用。GCRoot的对象:2.1 虚拟机栈中引用的对象2.2 方法区中的类静态属性引用对象2.3 方法区中常量引用对象2.4 本地方法栈中JNI引用的对象引用:引用可以分为
2021-04-08 23:53:45
210
1
原创 JVM内存区域
JVM内存区域Java虚拟机分为:计数器、虚拟机栈、本地方法栈、堆Java堆分为新生代和老年代。新生代分为Eden、from survivor 、to survivor 比例为8:1:1。Java方法区一般被称为永久代、但是JDK1.7之后元空间取消了永久代。元空间主要存储的是类加载信息的常量、常量、静态变量、即时编译器后的代码、运行时常量池。Java虚拟机栈主要是描述Java方法执行的内存模型。每个栈帧存储局部变量表、操作数栈、动态连接。一般当类加载完成后,就确定了Java的栈内存。所以内存溢出
2021-04-08 22:42:19
132
原创 webpack
webpack+插件打包、编译、测试、调试本质上webpack是一个JavaScript应用程序的静态模块打包器。当webpack处理应用程序时,会递归的构建一个依赖关系图,其中包含应用程序的每个模块,然后将所有这些模块打包成一个或多个bundle。webpack安装1.cnpm i -g webpack全局安装webpack,可以全局使用webpack2.在项目根目录中运行npm i ...
2019-08-13 13:06:53
164
原创 Gulp
Gulp:任务自动构建管理工具。可以通过自动执行常见的任务,比如预编译css,压缩JavaScript和刷新浏览器,来改进网站开发的过程。Gulp本身虽然不能完成很多任务,但是有大量的插件可用。性能优化、文件合并、文件压缩、效率提升。基础环境:需要安装node。安装:Gulp需要全局安装,然后在项目的开发目录中安装为本地模块。全局安装命令:npm install gulp -g使用:初...
2019-08-13 13:01:08
475
1
原创 Vue-router
一、Vue-router入门:先看项目的目录结构所要写的vue文件放入components中。简单例子如下。新建一个hi.vue<template> <div class="hi"> {{msg}} </div></template> export default { name: 'hi', data ...
2019-08-13 12:53:00
790
原创 VueX
初始Vuex:vuex是一个专门为vue.js应用程序开发的状态管理模式。这个状态与之对应的是data中的属性,需要共享给其他组件使用的部分。也就是说使用vuex进行统一集中管理共享的data。vuex中的五种基本对象:state:存储状态(变量)getters:对数据获取之前的再次编译,也就是state的计算属性。在组件中使用 $sotre.getter.fun()mutati...
2019-08-13 09:36:49
337
原创 Vue-cli
安装Vue-cli:使用全局安装vue-cli;在cmd中输入一下命令npm install -g vue-cli使用图形化界面:vue ui创建项目: mydemovue init webpack mydemoPS:项目名字不能有大写字母。创建项目详情:Project name (vuetest)项目名称,可以自己指定,也可直接回车,按照括号中默认名字。Project d...
2019-08-13 09:12:44
510
原创 Vue.js上
Vue.js1.什么是Vue.js1).Vue.js是一个JavaScri的库。2).Vue.js本身只专注于UI层面,并且核心价值永远都是API的简洁。3).其他功能比如路由、ajax等,只会提供可选的模块。2.简单入门1).可以直接在页面中利用script标签引入。Vue会被注册为全局变量。2).对于生产环境来说,可以链接到一个明确的版本号和构建文件。3).Vue构建大型应用时可以...
2019-08-12 23:55:58
482
原创 Vue.js下
Vue.js自定义指令1.自定义全局指令在Vue.js处理默认设置的核心指令(v-model和v-show),Vue也允许注册自定义指令。如下实例,注册一个全局指令v-focus,功能为在页面加载时,元素获得焦点。<div id="app"> <input v-focus></div><srcipt> Vue.directive("...
2019-08-12 23:55:12
279
原创 Vue.js中
Vue.js事件处理器1.v-on指令<div id="app"> <button v-on:click="count++">点击</button> <p>这个按钮被点击了 {{ count }} 次。</p></div><script> new Vue(){ el:"#app", ...
2019-08-12 23:43:54
194
原创 ES6语法
ES6语法let和const:在ES5中作用域分为全局作用域和函数作用域。在ES6中作用域分为全局作用域、函数作用域和块作用域。let使用let块作用域实例:for(let i=1;i<3;i++){ console.log(i);}此时let定义的i只能在for循环里使用。PS:let不能重复定义一个变量。const使用:在这里插入代码片...
2019-08-11 23:42:52
540
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅