JVM那些事儿
1.JVM总体框架 方法区和堆是多线程共享的(标为灰色) 其他三个是每个线程都有单独的(标为蓝色) 2.类加载子系统 验证:验证待加载的class文件是否正确 准备:为static变量分配内存并赋零值 解析:将符号引用解析为直接引用 常见类加载器 引导类加载器(BootstrapClassLoader) 自定义类加载器(继承实现了ClassLoader类) ExtClassLoader AppClassLoader WebAppClassLoader 类加载器加载的目录 BootstrapClassLoader : jre/lib ExtClassLoader : jre/lib/ext AppClassLoader : classpath 双亲委派机制 双亲委派机制:如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行,一直向上委托,如果不能加载再向下返回。 12345678910111213//ClassLoader类protected Class<?> loadClass(S ...
那些年在latex上踩过的坑
第一次使用latex时踩了很多坑,在此记录一下并梳理一下它的基本用法 一、环境这里先介绍一下我的latex环境,因为不同的环境下使用可能会有细微的差别 使用latex镜像是: texlive2022-20220321.iso 下载地址:https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/ 编译器环境: TeXstudio 4.2.3 相关配置: 二、基本使用技巧1.基本结构latex文档的后缀为.tex , 整体的结构是这样的 12345\documentclass{article}\usepackage{ctex} %%所有的包在这里导入\begin{document} %%正文内容开始标签 正文内容\end{document} %%正文内容结束标签 2.编译使用 点这里的build&view,即可编译latex,并在右边栏看到效果 3.伪代码 先导包 1\usepackage[ruled]{ ...
IDEA在debug时单步调试跳过某些类
一、问题描述我们在进入debug模式后,会碰到一些程序使用了代理或者其他原因,导致我们单步调试时会进入代理类或其他我们不想看到的类。就像下图这样,直接进入到了org.springframework.aop.framework包下的CglibProxy类 二、问题解决我们只需在设置中将我们不想进入的类设置为Do not step into即可 File – settings – Build,Execution,Deplotment – Debugger – Stepping – Add Pattern 我们测试一下,单步调试已经不会进入CglibProxy类了,但是又进入了org.springframework.util包下的ReflectionUtils类 其实,我们发现他们都是org.springframework包下的,这个包时spring的源码包,我们是不用调试它的,直接使用*****都匹配上就可以了 至此,问题解决
Golang学习笔记
声明:本文为b站大佬刘丹冰Aceld的8小时转职Golang工程师视频学习笔记,如有侵权,联系我速删 大佬的传送门:https://www.bilibili.com/video/BV1gf4y1r79E/?spm_id_from=333.999.0.0&vd_source=95a9bb0b0759f8d391968411c1a6f007 在b站发现了大佬的宝藏视频,在此记录下学习过程。我在这里着重学习记录的是go语言的特性,也就是go与其他后端语言有区别的地方。并且在文章的末尾附上我使用go语言开发的即时通信系统的github地址。 一、目录1.初识go语言 2.变量与常量 3.函数的返回值与defer 4.golang中的数组 5.golang中的map 6.golang面向对象基础 7.golang中的反射 8.goroutine和channel 二、初识go语言1234567891011package main //程序的包名import ( //程序导包 "fmt" "time")func main() { //函数 ...
CC链学习笔记-CC2457
声明:本文为b站白日梦组长视频学习笔记,如有侵权,联系我速删 组长b站的传送门:https://space.bilibili.com/2142877265/?spm_id_from=333.999.0.0 CC4+CC2+CC5+CC7链 cc4和cc2是基于commonscollections4的 一、CC4 我们还是像挖掘commonscollections3的反序列化链一样,找找有没有调用transform的地方 这里是commonscollections4新增的一个比较器(3中也有但是没有实现seilazible接口),在compare中调用了transform 接下来找一个调用compare()的地方,作者这里给出的是PriorityQueue类 123456789101112131415161718192021222324252627282930313233343536373839//PriorityQueueprivate void readObject(java.io.ObjectInputStream s) throws java.io.IOEx ...
CC链学习笔记-CC6链
声明:本文为b站白日梦组长视频学习笔记,如有侵权,联系我速删 组长b站的传送门:https://space.bilibili.com/2142877265/?spm_id_from=333.999.0.0 CC6链 不限制JDK版本,不限制CC版本 12345678910111213//TiedMapEntry类public TiedMapEntry(Map map, Object key) { super(); this.map = map; this.key = key;}public int hashCode() { Object value = getValue(); return ......; }public Object getValue() { return map.get(key);} 123456789//HashMap类private void readObject(java.io.ObjectInputStream s) throws IOEx ...
CC链学习笔记-CC3链
声明:本文为b站白日梦组长视频学习笔记,如有侵权,联系我速删 组长b站的传送门:https://space.bilibili.com/2142877265/?spm_id_from=333.999.0.0 一、挖掘CC3链 使用动态类加载执行代码 我们了解到,ClassLoader在加载类时最后都会调用到defineClass(sink),我们要找一个调用defineClass且是public的方法。(ClassLoader中重载了很多defineClss,我们需要寻找一个合适的) 这里的defineClass也不是public的,只能被当前类调用,我们看一下在那里被调用的 123456789101112131415161718192021222324252627//TemplatesImplprivate void defineTransletClasses() throws TransformerConfigurationException { ...... for (int i = 0; i < classCoun ...
CC链学习笔记-CC1链
声明:本文为b站白日梦组长视频学习笔记,如有侵权,联系我速删 组长b站的传送门:https://space.bilibili.com/2142877265/?spm_id_from=333.999.0.0 Commons Collections 包为 Java 标准的 Collections API 提供了相当好的补充。在此基础上对其常用的数据结构操作进行了很好的封装、抽象和补充。让使用者在开发应用程序的过程中,既保证了性能,同时也能大大简化了代码。 一、Tranformer接口 漏洞主要运用ChainedTransformer、ConstantTransformer、InvokerTransformer这三个类。这三个类都是实现了Transformer接口的类,该接口包含了一个transform方法,以使每个实现了该接口的类可以进行固定类型的转化。 1234package org.apache.commons.collections;public interface Transformer { public Object transform(Object ...
CC链学习笔记-前置知识
声明:本文为b站白日梦组长视频学习笔记,如有侵权,联系我速删 组长b站的传送门:https://space.bilibili.com/2142877265/?spm_id_from=333.999.0.0 一、java序列化和反序列化java对象 –> 字节 为了传输,类比快递,打包和拆包 有些快递打包拆包有独特的需求,比如易碎朝上,重写readObjec和writeObject 为什么有安全问题? 只要服务端反序列化数据,客户端传递类的readObject中代码会自动执行,基于攻击者在服务器上运行代码的能力。 可能形式 入口类的readObject直接调用危险方法(基本没有这种情况) 123456//Person类private void readObject(ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException { objectInputStream.defaultReadObject(); Runtime.getRuntim ...
hexo使用douban插件用户ID输入错误
问题描述按照hexo-douban上的教程安装完之后,输入命令 1hexo douban -bgm 发现报错,用户ID输入错误 问题解决更改hexo根目录下的_config.yml文件,将原本的user改为id 12345678910111213douban: id: xxxxxxx builtin: true # 选择是否有主题渲染 book: title: 'xxxx' quote: 'xxxxx' movie: title: 'This is my movie title' quote: 'This is my movie quote' # game: # title: 'This is my game title' # quote: 'This is my game quote' timeout: 100000 问题的解决方案来自于这里 https://github.com/mythsman/hexo-doub ...