JVM
GC 的3种算法1.Mark-Sweep(标记清除) 标记一块垃圾,然后直接清掉,优点:速度快。缺点:内存碎片化,零散内存太多,时间一长,就无法装下很大的对象了。 2.Copying(拷贝) 无论内存多大,全部一分为二,然后把需要的对象copy到另一半中,然后直接清掉原来一般的内存。有点:效率高。缺点:浪费空间。 3.Mark-Compact(标记压缩) 一边标记,一边整理,一边排列。优点:整理后的内存能更合理的分配资源。缺点:效率太低。 GC的知识体系 到目前位置,Java有两种对于内存的管理模型: 分代模型: JVM堆分代: 1、JVM堆被分为了年轻代和老年代。年轻代的GC过程称为Yong GC,速度快较频繁。老年代的GC过程称为Full GC,速度较慢应该尽量避免。 2、对象被创建后,除了少部分大对象会在老年代分配内存外,大部分的对象首先都是在年轻代进行内存分配,而且大部分的对象都是“朝生夕死”,很快就会被年轻代的Yong GC回收掉。 3、老年代的内存空间一般会比年轻代的内存空间大,能存放的对象多,老年代的空间不足后会进行Full GC操作,比Yong GC耗时...
GitHub自动化部署Hexo
GitHub-Actions在 GitHub 中找到 Actions选项卡 然后选择 New workflow 然后创建一个 .yml 脚本文件 123456789101112131415161718192021222324name: Deploy to Serveron: push: branches: [ main ]jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Deploy to Server uses: appleboy/ssh-action@v0.1.10 with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SERVER_USER }} ke...
Devtools
Devtools 介绍devtools 修改代码之后自动化热部署 添加 Maven 依赖123456<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional></dependency> 添加至父级工程中12345678910111213<build> <finalName>父级工程的名字(可加可不加)</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> ...
Eclipse
如何关闭 Eclipse svn update cache 打开eclipse的perferences界面。找到上图把红色圈里的勾选掉即可
Eureka
Eureka Server 配置引入依赖 1234<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency> YML配置 123456789101112server: port: 7001eureka: instance: #eureka服务端的实例名称(这里为了方便测试,修改了host文件,添加了 127.0.0.1 eureka7001.com映射) hostname: eureka7001.com client: #false表示不向服务注册中心注册自己 register-with-eureka: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务 fetch-registry: false ...
GitBook(Old)
创建GitBook账号录https://www.gitbook.com/ GitBook的官网 如果没有GitHub账号,则点击Sing Up进行注册,如果有的话,点击Sing In 然后选择Sign in with GitHub,然后输入GitHub的用户名和密码进行登录 创建书籍点击 New Book按钮来添加书籍 然后会出现如下选项 BOOK & MANUAL:创建普通书籍 API DOCUMENTATION:创建API规范文档 KNOWLEDGE BASE:创建知识库 这里创建普通书籍 输入Title标题和Description描述然后点击Create Book,进入到如下页面: 最后点击Edit you book进行编辑,然后进入编辑页面: 将现有的书籍同步到GitHub上面首先需要在GitHub上创建一个新的Repository 最好名字和GitBook上面创建的书籍名字保持一致,然后点击Create respository 创建完成后,在GitBook中点击之前创建好的书籍 然后选择SETTINGS中的GitHub选项,然后在下...
Git命令大全
Git命令大全Git 的功能非常丰富,其命令体系涵盖了从基础版本控制到复杂项目管理的方方面面。下面这个表格汇总了最核心和常用的 Git 命令,可以帮你快速了解和查阅。 类别 命令 说明 仓库初始化与克隆 git init 在当前目录初始化一个新的 Git 仓库。 git clone <url> 克隆(下载)一个远程仓库到本地。 基本工作流程 git add <file>或 git add . 将文件的修改添加到暂存区。 git commit -m "提交信息" 将暂存区的内容提交到本地仓库,并附上提交说明。 git status 查看工作区和暂存区的状态(哪些文件被修改、哪些已暂存)。 git diff 查看工作区与暂存区或最新提交之间的差异。 分支管理 git branch 列出所有本地分支。 git branch <分支名> 创建一个新分支。 git checkout <分支名>或 git switch <分支名> 切换到指定分支。 ...
模板
一级标题二级标题三级标题 二级标题三级标题
Visual Studio Code
VSCode环境安装下载 https://code.visualstudio.com/ 安装 打开下载好的文件,进行安装 VSCode快捷键常用 General 按 Press 功能 Function Ctrl + Shift + P,F1 显示命令面板 Show Command Palette Ctrl + P 快速打开 Quick Open Ctrl + Shift + N 新窗口/实例 New window/instance Ctrl + Shift + W 关闭窗口/实例 Close window/instance 基础编辑 Basic editing 按 Press 功能 Function Ctrl+X 剪切行(空选定) Cut line (empty selection) Ctrl+C 复制行(空选定)Copy line (empty selection) Alt+ ↑ / ↓ 向上/向下移动行 Move line up/down Shift+Al...
多线程
什么是线程 线程中的一条执行路径,也是CPU的基本调度单位。一个进程由一个或多个线程组成,彼此间完成不同的工作,同时执行,成为多线程。 进程和线程的区别 进程是操作系统资源分配的基本单位,而线程是CPU的基本调度单位 一个程序运行后至少有一个进程 一个进程可以包含多个线程,但是至少需要有一个线程,否则这个进程是没有意义 进程间不能共享数据段地址,但同进程的线程之间可以 线程的组成任何一个线程都有基本的组成部分: CPU时间片:操作系统(OS)会为每个线程分配执行时间。 运行数据(堆空间):储存线程需使用的对象,多个线程可以共享堆中的对象。 运行数据(栈控件):储存线程需使用的局部变量,每个线程都拥有独立的栈。 线程的逻辑代码 线程的特点 线程抢占式执行(1.效率高,2.可防止单一线程长时间独占CPU) 在单核CPU中,宏观上同时执行,微观上顺序执行 创建线程创建线程的三种方式: 继承Thread类,重写run方法 实现Runnable接口 实现Callable接口 获取和修改线程名称获取线程ID和线程名称: 在Thread的子类中调用this.getI...







