展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 35 下一页
摘要: 起步 数据结构和算法的关系 数据data结构(structure)是一门研究组织数据方式的学科,有了编程语言也就有了数据结构. 学好数据结构可以编写出更加漂亮,更加有效率的代码。 程序 = 数据结构 + 算法 数据结构是算法的基础 线性结构和非线性结构 # 线性结构 线性结构作为最常用的数据结构,其 阅读全文
posted @ 2022-09-20 17:13 DogLeftover 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 官网 参考 常用搜索方式 | 语法 | 语义| 示例 | 语义| | : : | : : | : : | : : | | >n | 大于 | java stars:>1000 | 包含java且星标超过1000 | | >=n | 大于等于 | java topics:>=3 | 包含java且超过 阅读全文
posted @ 2022-09-19 09:11 DogLeftover 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 创建项目 选择合适的模板 在项目下创建仓库 上传文件 也可以克隆到本地后推送代码 git clone https://e.coding.net/goudan/project-name/storehouse-name.git 推送时输入用户名和密码 打开控制面板,查看凭证 阅读全文
posted @ 2022-09-17 21:34 DogLeftover 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 传统项目与互联网项目的区别 传统项目所遇到的jvm问题 # 当单个接口响应特别慢时 先考虑是否有sql慢查询,定位慢查询的⽅法⼀般是⽤explain查看sql的执⾏计划 FullGC与MinorGC的区别 Minor GC触发条件:当Eden区满时,触发Minor GC FullGC触发条件 1、调 阅读全文
posted @ 2022-09-16 16:56 DogLeftover 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 简介 VisualVM是⼀个集成命令⾏JDK⼯具和轻量级分析功能的可视化⼯具 idea安装插件 File-> Setting-> Plugins -> Browers Repositrories 搜索VisualVM Launcher -> 安装并重启IDEA 点击配置VisualVM execut 阅读全文
posted @ 2022-09-16 16:42 DogLeftover 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 简介 JConsole (Java Monitoring and Management Console)是⼀种基于 JMX 的可视化监视、管理⼯具, 它管理部分的功能是针对 JMXMBean 进⾏管理,由于 MBean 可以使⽤代码、中间件服务器的管理控制台或者所有符合 JMX 规范的软件进⾏访问 阅读全文
posted @ 2022-09-16 15:42 DogLeftover 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 简介 Jstack (Stack Trace for Java)命令⽤于⽣成虚拟机当前时刻的线程快照(-般称为threaddump 或者 javacore ⽂件) 线程快照就是当前虚拟机内每⼀条线程正在执⾏的⽅法堆栈的集合,⽣成线程快照的主要⽬的是定位线程出现⻓时间停顿的原因, 如线程间死锁、死循环 阅读全文
posted @ 2022-09-16 15:19 DogLeftover 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 简介 Sun JDK 提供 jhat (JVM Heap Analysis Tool)命令常与 jmap 搭配使⽤,来分析 jmap ⽣成的堆 转储快照。 jhat内置了⼀个微型的HTTP/HTML服务器,⽣成dump⽂件的分析结果后,可以在浏览器中查看 特点 jhat分析⼯作是⼀个耗时⽽且消耗硬件 阅读全文
posted @ 2022-09-16 14:14 DogLeftover 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 标记清除算法 ⾸先标记出所有需要回收的对象,在标记完成后统⼀回收所有被标记的对象 图解 黑色部分为待回收的垃圾 蓝色部分为不需要回收的内存 白色部分为未使用的内存 不足 ⼀个是效率问题,标记和清除两个过程的效率都不⾼; 另⼀个是空间问题,标记清除之后会产⽣⼤量不连续的内存碎⽚,空间碎⽚太多可能会导致 阅读全文
posted @ 2022-09-16 10:08 DogLeftover 阅读(186) 评论(0) 推荐(1) 编辑
摘要: jstat Jstat (JVM Statistics Monitoring Tool)是⽤于监视虚拟机各种运⾏状态信息的命令⾏⼯具。 它可以显示本地或者远程-虚拟机进程中的类装载、内存、垃圾收集、JIT 编译等运⾏数据, 在没有 GU 图形界⾯,只提供了纯⽂本控制台环境的服务器上,它将是运⾏期定位 阅读全文
posted @ 2022-09-16 10:05 DogLeftover 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 虚拟机工具 给⼀个系统定位问题的时候,知识、经验是关键基础,数据是依据,⼯具是运⽤知识处理数据的⼿段 数据包括:运⾏⽇志、异常堆栈、GC ⽇志、线程快照( threaddump/javacore⽂件)、堆转储快照( heapdump/hprof⽂件)等。 使⽤适当的虚拟机监控和分析的⼯具可以加快我们 阅读全文
posted @ 2022-09-16 09:46 DogLeftover 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 逃逸分析 逃逸分析的基本⾏为就是分析对象动态作⽤域:当⼀个对象在⽅法中被定义后,它可能被外部⽅法所引⽤,称为⽅法逃逸。 甚⾄还有可能被外部线程访问到,譬如赋值给类变量或可以在其他线程中访问的实例变量,称为线程逃逸 栈上分配 栈上分配就是把⽅法中的变量和对象分配到栈上,⽅法执⾏完后⾃动销毁,⽽不需要垃 阅读全文
posted @ 2022-09-15 17:15 DogLeftover 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 简介 所谓的⼤对象是指,需要⼤量连续内存空间的 Java 对象,最典型的⼤对象就是那种很⻓的字符串以及数组 虚拟机提供了⼀个-XX: PretenureSizeThreshold 参数,令⼤于这个设置值的对象直接在⽼年代分配。即操作指定内存时,直接分配到老年代 这样做的⽬的是避免在 Eden 区及两 阅读全文
posted @ 2022-09-15 17:09 DogLeftover 阅读(25) 评论(0) 推荐(0) 编辑
摘要: java堆分布图 分配规则 对象主要分配在新⽣代的 Eden 区上 如果启动了本地线程分配缓冲,将按线程优先在 TLAB 上分配 少数情况下也可能会直接分配在⽼年代中 测试代码 配置打印垃圾回收 控制台打印 自定义垃圾收集器 控制台打印 GC参数指定垃圾回收 -Xms20 M、-Xmx20 M、-X 阅读全文
posted @ 2022-09-15 16:58 DogLeftover 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 图解 简介 G1是⼀款⾯向服务端应⽤的垃圾收集器 特点 G1 中每个 Region 都有⼀个与之对应的 Remembered Set,当进⾏内存回收时,在 GC 根节点的枚举范围中加⼊ Remembered Set 即可保证不对全堆扫描也不会有遗漏 检查Reference引⽤的对象是否处于不同的Re 阅读全文
posted @ 2022-09-15 16:24 DogLeftover 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 图解 简介 CMS (Concurrent Mark Sweep)收集器是-种以获取最短回收停顿时间为⽬标的收集器。 ⽬前很⼤⼀部分的Java应⽤集中在互联⽹站或者B/S系统的服务端上,这类应⽤尤其重 视服务的响应速度,希望系统停顿时间最短,以给⽤户带来较好的体验。 CMS 收集器是基于“标记-清除 阅读全文
posted @ 2022-09-15 16:04 DogLeftover 阅读(21) 评论(0) 推荐(0) 编辑
摘要: Parallel Scavenge收集器 Parallel Scavenge 收集器是⼀个新⽣代收集器,它也是使⽤复制算法的收集器,⼜是并⾏的多线程收集器 由于与吞吐量关系密切,Parallel Scavenge 收集器也经常称为“吞吐量优先”收集器 吞吐量是什么?CPU⽤于运⾏⽤户代码的时间与CP 阅读全文
posted @ 2022-09-15 15:54 DogLeftover 阅读(45) 评论(0) 推荐(0) 编辑
摘要: serial垃圾收集器 Serial是⼀个单线程的垃圾收集器 特点 “Stop The World”,它进⾏垃圾收集时,必须暂停其他所有的⼯作线程,直到它收集结束。在⽤户不可⻅的情况下把⽤户正常⼯作的线程全部停掉 使⽤场景:多⽤于桌⾯应⽤,Client端的垃圾回收器 桌⾯应⽤内存⼩,进⾏垃圾回收的时 阅读全文
posted @ 2022-09-15 15:33 DogLeftover 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 标记整理算法 复制收集算法在对象存活率较⾼时就要进⾏较多的复制操作,效率将会变低。更关键的是,如果不想浪费 50%的空间,就需要有额外的空间进⾏分配担保, 以应对被使⽤的内存中所有对象都 100%存活的极端情况,所以在⽼年代⼀般不能直接选⽤这种算法 根据⽼年代的特点,有⼈提出了另外⼀种“标记-整理( 阅读全文
posted @ 2022-09-15 14:53 DogLeftover 阅读(45) 评论(0) 推荐(1) 编辑
摘要: 简介 Jmap (Memory Map for Java)命令⽤于⽣成堆转储快照。如果不使⽤ jmap 命令,要想获取 Java 堆转储快照,还有⼀些⽐较“暴⼒”的⼿段: -XX: +HeapDumpOnOutOfMemoryError参数,可以让虚拟机在 OOM 异常出现之后⾃动⽣成 dump ⽂ 阅读全文
posted @ 2022-09-15 14:39 DogLeftover 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 图解 从reference出发,指向堆中的1个对象,该对象又指向另一个对象,这就是引用链 没有被reference指向的,或没有被其他对象指向的会被标记为待回收,标记达到指定次数时,则触发垃圾回收机制 可达性分析算法的概念(⼜叫跟搜索法) 根搜索算法是从离散数学中的图论引⼊的,程序把所有的引⽤关系看 阅读全文
posted @ 2022-09-15 14:15 DogLeftover 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 垃圾回收机制 Java语⾔中⼀个显著的特点就是引⼊了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃⽽解。由于有个垃圾回收机制,Java中的对象不再有“作⽤域”的概念,只有对象的引⽤才有“作⽤域”。 垃圾回收可以有效的防⽌内存泄露,有效的使⽤空闲的内存 引用计数器 堆中每个对象实例都有⼀个引⽤ 阅读全文
posted @ 2022-09-15 14:04 DogLeftover 阅读(46) 评论(0) 推荐(0) 编辑
摘要: java对象内存布局 对象头⽤于存储对象的元数据信息: Mark Word 部分数据的⻓度在32位和64位虚拟机(未开启压缩指针)中分别为32bit和64bit,存储对象⾃身的运⾏时数据如哈希值等。Mark Word⼀般被设计为⾮固定的数据结构,以便存储更多的数据信息和复⽤⾃⼰的存储空间。 类型指针 阅读全文
posted @ 2022-09-15 10:34 DogLeftover 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 图示 虚拟机遇到⼀条new指令时,⾸先检查这个对应的类能否在常量池中定位到⼀个类的符号引⽤ 判断这个类是否已被加载、解析和初始化 为这个新⽣对象在Java堆中分配内存空间,其中Java堆分配内存空间的⽅式主要有以下两种 指针碰撞 分配内存空间包括开辟⼀块内存和移动指针两个步骤 ⾮原⼦步骤可能出现并发 阅读全文
posted @ 2022-09-15 10:09 DogLeftover 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 本地方法栈 简介 ⽤于作⽤域本地⽅法执⾏的⼀块Java内存区域 本地方法就是native方法 import java.util.concurrent.atomic.AtomicInteger; public class A { public native static void c(); publi 阅读全文
posted @ 2022-09-15 09:10 DogLeftover 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 简介 ⽤于作⽤于⽅法执⾏的⼀块Java内存区域 作用 每个⽅法在执⾏的同时都会创建⼀个栈帧(Stack Framel)⽤于存储局部变量表、操作数栈、动态链接、⽅法出⼝等信息。 每⼀个⽅法从调⽤直⾄执⾏完成的过程,就对应着⼀个栈帧在虚拟机栈中⼊栈到出栈的过程 代码案例 import java.util 阅读全文
posted @ 2022-09-14 14:49 DogLeftover 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 简介 线程共享数据区:⽅法区、堆 线程隔离数据区:虚拟机栈、本地⽅法栈、堆、程序计数器 图解 程序计算器 程序计数器是⼀块较⼩的内存空间,它可以看作是当前线程所执⾏的字节码的⾏号指示器 线程是⼀个独⽴的执⾏单元,是由CPU控制执⾏的 字节码解释器⼯作时就是通过改变这个计数器的值来选取下⼀条需要执⾏的 阅读全文
posted @ 2022-09-14 14:28 DogLeftover 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 新建1个css文件引入到main.js中测试 vite天生就支持对css文件的直接处理 1. vite在读取到main.js中引用到了Index.css 2. 直接去使用fs模块去读取index.css中文件内容 3. 直接创建一个style标签, 将index.css中文件内容直接copy进sty 阅读全文
posted @ 2022-09-14 10:54 DogLeftover 阅读(986) 评论(0) 推荐(0) 编辑
摘要: vite官网 使用vite构建1个vue项目,启动后查看控制台,虽然该vue文件中的代码被编译为js脚本,但浏览是如何识别vue后缀结尾的文件的 新建1个node项目,编写1个js脚本 编写代码作为服务端,访问根路径时返回text/html类型的页面,访问的文件是以js结尾的按text/javasc 阅读全文
posted @ 2022-09-14 10:26 DogLeftover 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 在上一篇博客的基础上开发 环境变量处理 vite内置了dotenv这个第三方库 dotenv会自动读取.env文件, 并解析这个文件中的对应环境变量 并将其注入到process对象下(但是vite考虑到和其他配置的一些冲突问题, 他不会直接注入到process对象下) vite给我们提供了一些补偿措 阅读全文
posted @ 2022-09-13 17:21 DogLeftover 阅读(116) 评论(0) 推荐(0) 编辑
摘要: npm # 初始化,方式1 npm init # 初始化,方式2 npm init -y # 安装依赖 npm install [package] # 安装项目所有依赖 npm install # 强制下载安装 npm installnpm install --force # 升级 npm upda 阅读全文
posted @ 2022-09-13 15:34 DogLeftover 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 使用vite,在vscode中没有语法提示时 在vite.config.js中配置如下 方式1 在前端项目中编写注释后,例如指定返回值类型为String,则显示的方法全是String 方式2 vite官网推荐写法,可能由于vscode存在bug,不会有提示 配置不同的环境 新建vite.base.c 阅读全文
posted @ 2022-09-13 14:38 DogLeftover 阅读(27) 评论(0) 推荐(0) 编辑
摘要: vite在生产和开发环境打包的不同 yarn dev > 开发(每次依赖预构建所重新构建的相对路径都是正确的) vite会全权交给一个叫做rollup的库去完成生产环境的打包 在上1篇博客中,提到vite不会帮我们自动引入绝对路径和非绝对路径的依赖 # 这是因为,如果引入1个如下的依赖 import 阅读全文
posted @ 2022-09-13 14:15 DogLeftover 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 简介 开箱即用(out of box): 你不需要做任何额外的配置就可以使用vite来帮你处理构建工作 在默认情况下, 我们的esmodule去导入资源的时候, 要么是绝对路径, 要么是相对路径 新建1个文件夹demo01 编写counter.js export const count = 0; 编 阅读全文
posted @ 2022-09-13 11:11 DogLeftover 阅读(97) 评论(0) 推荐(0) 编辑
摘要: npm 从5.2版开始,增加了 npx 命令 如果不能用,就要手动安装一下 npm install -g npx 创建项目 // 创建项目 npx create-nuxt-app <项目名> // 项目名称 Project name: (nuxt01) // 程序设计语言 Programming l 阅读全文
posted @ 2022-09-12 08:58 DogLeftover 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 什么是构建工具 浏览器他只认识html, css, js 如果遇到ts文件我们需要使用tsc将typescript代码转换为js代码 有一个东西能够帮你把tsc, react-compiler, less, babel, uglifyjs全部集成到一起,我们只需要关心我们写的代码就好了 构建工具他让 阅读全文
posted @ 2022-09-11 20:02 DogLeftover 阅读(55) 评论(0) 推荐(0) 编辑
摘要: gitee # 新建1个文件夹 # 初始化 git init # 关联 git remote add gitee https://gitee.com/用户名/仓库名.git # 切换分支 git branch -M main # 拉取 git pull --rebase gitee main # 输 阅读全文
posted @ 2022-09-11 16:05 DogLeftover 阅读(169) 评论(0) 推荐(0) 编辑
摘要: windows安装chocolatey过程中报错 警告: An existing Chocolatey installation was detected. Installation will not continue. For security reasons, this script will 阅读全文
posted @ 2022-09-09 20:58 DogLeftover 阅读(213) 评论(0) 推荐(0) 编辑
摘要: vite1构建项目 cnpm i create-vite-app # 安装vite npm init vite-app demo01 # 使用vite创建vue项目 cd demo01 npm install npm run dev vite2构建项目 npm init @vitejs/app cd 阅读全文
posted @ 2022-09-09 10:33 DogLeftover 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 初始化项目 npm init @vitejs/app cd md-demo01 npm install npm run dev 参考 # 安装依赖 npm i @kangc/v-md-editor@next -S # main.js import { creatApp } from 'vue'; i 阅读全文
posted @ 2022-09-09 10:13 DogLeftover 阅读(90) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 35 下一页