shenandoah原理 垃圾jvm
考研复试 数据库原理知识点整理(自用版)
###知识点整理 数据与语义不可分 数据库:长期储存在计算机内,有组织可共享的大量数据的集合 为了抽取有用信息,转换为有用信息 数据库管理系统:数据管理软件,高效运用和管理数据 数据定义(DDL) 数据组织,存储和管理 数据操纵语言(DML) 数据的事务管理和运行管理 数据库的建立和维护功能 数据库 ......
基于Java的agent 技术获取JVM和GC信息
有时候我们需要对线上的JVM信息以及GC信息进行统计。基于Java的agent 技术可以实现。 1. 新建agent 相关的类 工具类 package org.example.jvmdebug; import java.lang.management.GarbageCollectorMXBean; ......
数据库系统原理之数据库应用设计与开发实例
数据库应用设计与开发实例 第一节 需求描述与分析 在此,结合某高校个性化课程在线选课的实际需求,给出一个简化的需求分析 一、功能性需求 1 管理员后台模块 学生信息管理 教师信息管理 课程信息管理 班级信息管理 2 学生使用模块 查询课程 浏览所选课程 查询成绩 3 教师使用模块 我的课程 登分 二 ......
go run、build、install、get的原理和区别
学习go也有好些年头了,都没怎么研究过go的编译命令。真是惭愧。今天学习并记录下 结论: go run 专门用来运行命令源码文件的命令,一般用来运行单个文件 go build 主要是用于测试编译。编译某个包或者项目,在当前目录下生成可执行文件 go install 编译并安装代码包或者源码文件的。 ......
一文带你弄懂 Maven 拉包原理
业务需求开发的时候,我们总是会遇到拉不到依赖包的情况。此时如果不清楚 Maven 拉取依赖包的原理,那么很可能找不到问题所在。今天树哥就带大家了解下 Maven 拉包的原理,让你在遇到问题的时候能快速解决! 三种仓库 在 Maven 中,仓库指的是存放代码构建的一个位置。从分类上来说,Maven 仓 ......
virtualenv、virtualenvwrapper创建虚拟环境与使用原理
摘要:virtualenv和virtualenvwrapper是创建和管理python虚拟环境的工具包,virtualenvwrapper是virtualenv的封装与扩展而来,方便创建、删除、切换虚拟环境 一、原理 macos ~/.bash_profile添加系统环境变量: export WOR ......
Linux之父:连你自己都懒得解释,那这就是一堆垃圾!
不出意外,Linus又开喷了,这次的激情开麦,源自一部分没有做注释的合并请求:Linux6.3内核收到了一部分合并请求,但这部分合并完全没有注释。 如果你懒得解释为什么存在一个合并,那这个合并从本质上来说就是错误的垃圾,这是每个开发者都应牢记于心的规则。我重复一遍:如果你不能解释清楚这个合并请求,那 ......
干货| 动态更新(热更新)机制及技术原理分享
近期工作提到动态更新比较多,今天也借此机会,梳理一下相关的机制原理同大家分享。 动态机制及技术原理 动态研发模式就是一种基于云端的移动应用开发方法,主要能让开发者快速构建和发布多端的移动应用,实现业务的敏捷迭代和热更新,提高用户体验和运营效率。实现动态更新的原理可以分为两个部分:应用程序更新机制和资 ......
堆块chunk介绍及unlink漏洞利用原理
堆块chunk介绍及unlink漏洞利用原理 chunk结构 当进程动态分配内存时,系统会在堆中创建一个chunk(堆块)。chunk包含chunk头和chunk体两部分 chunk头中有两个字段: prev_size:前一个chunk的size,前指的之前分配的内存,也就是低地址相邻的chunk ......
《逆向工程核心原理》之DLL注入
DLL注入 DLL注入指的是向运行中的其他进程强制插入特定的DLL文件。从技术细节来说,DLL注入命令其他进程自行调用LoadLibrary() API,加载(Loading)用户指定的DLL文件。DLL注入与一般DLL加载的区别在于,加载的目标进程是其自身或其他进程。下图描述了DLL注入的概念。 ......
VLAN原理与配置
什么是VLAN 传统以太网由于泛洪等操作容易产生网络安全和垃圾流量问题,而且广播域越大,网络安全问题和垃圾流量问题就越严重。为了解决此类问题,人们引入了VLAN——虚拟局域网技术。 通过在交换机上部署VLAN,可以将一个规模较大的广播域在逻辑上划分成若干个不同的、规模较小的广播域,由此可以有效地提升 ......
原理图1
【1】用STM32单片机驱动一个5V的继电器: 继电器 SRD-05VDC-SL-C 引脚:一共五个引脚,两个是线圈(1和4),一个是公共端(5),一个常开一个常闭(2和3) 三极管:STM32单片机引脚高电平为3.3V,用NPN型三极管,则高电平导通,低电平截止。如果用PNP型,由于三极管压降是0 ......
【Java 并发】【八】【Atomic】【四】Strimped64分段锁实现原理
1 前言 上一节我们对LongAdder的底层源码、实现机制进行了深入了剖析,包括AtomicInteger在高并发竞争下导致的大量自旋的问题,以及LongAdder是怎么使用分段锁优化这个问题的。我们最后看到longAccumulate托底的方法,这一节我们来深入的分析一下Striped64的分段 ......
Mybatis插件原理详解(转载)
前言 上次发文说到了如何集成分页插件,接下来聊mybatis插件的原理。 插件原理分析 mybatis插件涉及到的几个类: 我将以 Executor 为例,分析 MyBatis 是如何为 Executor 实例植入插件的。Executor 实例是在开启 SqlSession 时被创建的,因此,我们从 ......
textarea的取值赋值原理
取值赋值常用的方法,html(),text(),val() 单独说说textarea .它是表单元素,val()可用 .它是闭合标签,html(),text()可用 这三个都可以取值赋值,会有怎样的效果?举例 <textarea class="test">111</textarea> 一、取值 1. ......
Address already in use: JVM_Bind:80
今天maven工程中配置pom.xml时Tomcat配了80端口号,结果提示Address already in use: JVM_Bind:80,也就是80端口被占用,于是就按照往常的惯例去查看是什么进程占用了80端口 1、打开cmd命令窗口,输入netstat -ano | findstr 80 ......
垃圾回收之三色标记法
关于垃圾回收算法,基本就是那么几种:标记-清除、标记-复制、标记-整理。在此基础上可以增加分代(新生代/老年代),每代采取不同的回收算法,以提高整体的分配和回收效率。 无论使用哪种算法,标记总是必要的一步。你不先找到垃圾,怎么进行回收?今天一起看下三色标记法。 一、如何标记 在 GC 领域里,判断对 ......
MyBatis插件原理解析(转载)
前言 大多数框架都支持插件,用户可通过编写插件来自行扩展功能,Mybatis也不例外。 在Mybatis中最出名的就是PageHelper 分页插件,下面我们先来使用一下这个分页插件。 如何集成分页插件 Spring-Boot+Mybatis+PageHelper 引入pom依赖 <dependen ......
Mongo主从同步原理
1. Mongo主从同步原理 Mongo主从同步原理是基于复制集(replicate set).复制集是一组mongodb实例,其中一个实例为主节点,其他实例为从节点。主节点负责所有数据写操作,并将写操作的结果复制到从节点。从节点只能读取数据,不能写入数据 在mongo中,主节点和从节点之间的数据同 ......
【Java 并发】【八】【Atomic】【三】LongAdder的原理-分段锁提升并发性能
1 前言 上一节我们讲解了cas的缺陷,无法同时更新多个变量、以及ABA的问题。以及如果使用AtomicReference解决同时更新多个变量,如果使用AtomicStampedReference解决ABA的问题,这节我们就来讲解CAS带来的另外一个问题,在并发激烈的时候,产生大量的自旋,空耗CPU ......
【Java 并发】【八】【Atomic】【三】AtomicReference、AtomicStampReference原理
1 前言 上节我们看了AtomicInteger、AtomicBoolean的原理,这一篇我们就来说说Atomic系列的另一个分类AtomicReference和AtomicStampReference。 2 多个变量修改的原子性 JUC虽然提供了AtomicInteger、AtomicBoolea ......
【Java 并发】【八】【Atomic】【二】AtomicInteger、AtomicBoolean原理
1 前言 这节我们从AtomicInteger这个比较简单的原子类开始,来看看AtomicInteger的底层原理。 2 实测样例对比线程安全性 在说AtomicInteger的底层原理之前呢,我们先来看个例子感受下原子类: static修饰的共享变量,我们开启两个线程对共享变量进行10000次+1 ......
SDUT编译原理:表达式语法分析——递归子程序法
输入样例: i+i*i# 我的题解: #include<bits/stdc++.h> using namespace std; char s[100]; int num,k; void E(); void F(); void G(); void T(); void S(); void E() { i ......
垃圾回收之G1收集过程
G1 中提供了 Young GC、Mixed GC 两种垃圾回收模式,这两种垃圾回收模式,都是 Stop The World(STW) 的。 G1 没有 fullGC 概念,需要 fullGC 时,调用 serialOldGC 进行全堆扫描(包括 eden、survivor、o、perm)。 一、G ......
JVM堆外内存泄漏故障排查记录
线上JVM堆外内存泄漏问题的排查过程与思路,其中夹带一些「JVM内存分配的原理分析」以及「常用的JVM问题排查手段和工具分享」,希望对大家有所帮助。 在整个排查过程中,我也走了不少弯路,但是在文章中我仍然会把完整的思路和想法写出来,当做一次经验教训,给后人参考,文章最后也总结了下内存泄漏问题快速排查 ......
小白也能看懂的二维码生成器 API 的技术原理(附Java 接入代码)
写在前面 二维码生成器 API 是一种将文本或 URL 转换为二维码图像的技术。在现代生活中,二维码已经成为了很多人生活中不可或缺的一部分,因为它们可以快速识别、易于存储,并具有可靠性。但是,大多数人并不知道如何生成自己的二维码。 本文将介绍二维码生成器 API 的技术原理、实际应用场景、以及如何使 ......
网络原理与网络编程
io模型 有哪些网络io模型?哪些网络操作可以是异步的? 常见的网络 IO 模型有:同步阻塞 IO,同步非阻塞 IO,多路复用 IO 和异步 IO。 异步网络操作包括:连接请求,数据发送和数据接收。(不确定) select/poll/epoll select/poll与epoll区别 select ......