基础知识
文章平均质量分 66
幺幺满地乱爬
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
vs使用def导出文件简介
配置到导出格式时候可以通过NONANE选项使到处函数的符号名字为空,@X为导出的序号,此序号为导出表中的index,可以通过序号获取此函数的地址。1.首先需要创建一个dll项目,否则没地方配置使用def文件的指向。2.定义一系列函数并创建一个def文件。3.配置使用def文件的指向编译即可。原创 2023-08-13 12:47:18 · 1617 阅读 · 0 评论 -
_declspec(naked) 初试(裸函数)
declspec(naked)修饰可以生成一个“裸”函数, 使用后C编译器将生成不含函数框架的纯汇编代码,裸函数中什么都没有,所以也不能使用局部变量,只能全部用内嵌汇编实现。就是说_declspec(naked)修饰的函数编译器会默认里面全是汇编语句,对于这个函数内部实现编译器不会帮我们做任何处理,在调用的时候默认c调用约定去调用我们的裸函数。大部分时候应用层开发是用不到这个修饰的,不过也可以通过裸函数偶尔来巩固一下汇编也是不错的方式。可以看到外面调用这个test函数的地方是正常的去编译的。原创 2023-08-09 23:11:17 · 961 阅读 · 0 评论 -
c/c++编译过程
这是最重要的一个功能,c/c++就是借助头文件来实现多个单元之间的符号定义关系,在汇编中会通过.globl来描述一个符号说这个符号在编译之后依旧要保留,说连接器还需要这个符号,而一个单元在编译时会引入自己的头文件也就是函数定义,这部分里大多数函数默认是extern的等同于加了.globl,c++的public也是这个意思,这样编译出来来自头文件所定义的符号就不会丢失其他单元就可以通过引入跟当前单元相同的头文件保留相同的符号来链接这个单元了。里我们简单了解了elf文件的格式,编译就是产出目标文件的过程。原创 2023-06-24 15:30:32 · 1355 阅读 · 1 评论 -
程序编译连接加载过程详解
首先我们打开目标文件看一下上面的图就是目标文件的格式了,这里使用的是010editer,这个二进制编辑器很好用可以看到大致分为三部分,首先是header,然后是sectionheader,最后是symbiktable,下面我们来依次讲一讲这些部分都有什么用。上面蓝色底色的是elfheader的部分,elfheader这里存放的主要是一些描述信息。原创 2023-06-24 05:11:29 · 1196 阅读 · 0 评论 -
VirtualAllocAPi逆向笔记
Windows API逆向原创 2022-11-08 21:39:53 · 1446 阅读 · 0 评论 -
String,stringbuilder和stringbuffer源码分析
String,stringbuilder和stringbuffer源码分析前几天回南京面试暑期实习,人家问了我string和builder,buffer之间的区别,我其实当时是没有看过这几个类的源码的,只是知道一点点原理,而且我面试不喜欢背题,所以很不幸面试结果不是很好,这次回家了,好好看看这几个类的源码。stringstring的话据我所知Java8和Java9之间有了一些改变,我自己看了Jdk8和jdk11的string源码这里只贴出8的部分代码。public final class Strin原创 2020-07-09 12:30:14 · 276 阅读 · 0 评论 -
java集合中的list源码分析
java集合中的list源码分析这里根据我的使用习惯分析几个常用的listlinkedlistpublic class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable这里看到linkedlist实现了deque是一个双端链表,而且继承的也不是abstractlist原创 2020-07-09 10:43:56 · 231 阅读 · 0 评论 -
Java集合中的queue系列源码分析
javaQueue学习queue接口根据上图的结构先看一下queue接口的源码public interface Queue<E> extends Collection<E> { //add方法,将一个element加入到队列中。 //源代码中的解释是:如果element可以加入到队列那么就立即执行添加,并返回true,如果失败就会报非法代码异常 boolean add(E e); //offer方法 /*插入一个成员到queue中,如果可原创 2020-07-08 11:32:16 · 432 阅读 · 0 评论 -
使用netty对http协议进行一个基本的解析
最近又一次学习机网,这次是我第三次学习机网了,每一次都感觉很有收获,之前看了哈工大的自顶向下的幕客网的网课,也自己读了两遍计算机网络自顶向下这本书,最近我的机网重修交实验了之前应为没考试重修了相当于多学了几遍机网这次试验让我又打算在看看tcp/ip详解,先对协议做一个分割进行一下基础的学习。后面打算做一个http协议的编解码器。代码:public class test4 { private EventLoopGroup parentGroup = new NioEventLoopGroup();原创 2020-05-30 09:48:31 · 448 阅读 · 0 评论 -
从字节码去分析trycathfinal块
首先我们编写一段用来测试的代码public int test(){ try { System.out.println(1); } catch (Exception e) { System.out.println(2); } finally { System.out.println(3); } return 4; }这段代码包括了trycatch原创 2020-05-23 17:55:46 · 176 阅读 · 0 评论 -
jvm垃圾收集算法详解
gc算法学习垃圾判断算法gc算法垃圾判断算法引用计数算法对每个对象设置一个引用计数器,当这个对象引用为0时则认为这个对象是垃圾对象了但是这个算法无法解决循环引用问题,也就是a引用b,b引用a这种情况。根搜索算法 通过对每个对象与一些gcroot是否还存在相连来判断是否还在被使用gcroots包括vm栈中的引用,比如局部变量表方法区中的静态引用本地方法中的引用方法区虽然进行垃圾回收效率很低,但是如今常见的jvm都会对方法区也进行gc主要回收两个内容1.废原创 2020-05-19 10:09:50 · 184 阅读 · 0 评论 -
Java类加载机制详细解析
类加载器机制在Java代码中,类形的加载,连接和初始化过程都是在程序运行期间完成的[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X3JDrNkf-1589597398866)(img/类加载器加载过程.png)]Java程序对类的使用方式分为两种主动使用被动使用所有Java虚拟机实现必须要在每个类或者接口被Java程序首次主动使用时才初始化主动使用创建类的实例访问某个类或者接口的静态变量,或者对静态变量赋值调用静态方法反射(如class.forna原创 2020-05-16 10:50:52 · 251 阅读 · 0 评论 -
计算机网络
文章目录什么是因特网及其组成**交换**osi七层模型功能分析**物理层**(物理上的)**数据链路层**(mac物理寻址)**网络层**(ip网络寻址)传输层(port sap寻址(端到端的进程间的))会话层(对话控制)表示层(语法与语义)应用层(遵循协议处理数据)tcp/ip四层(五层)模型网络接口层(物理层+数据链路层)网际层(网络层)运输层(传输层)应用层网络应用层学习与理解网络应用的体系...原创 2020-04-18 10:50:54 · 1024 阅读 · 0 评论 -
jakson常用注解
@JsonIgnore//排除属性不做序列化操作,加在属性成员上@JsonProperty(“idd”)//为属性取一个别名,加在属性成员上private int id;@JsonPropertyOrder({“name”,“id”})//为属性重排一下顺序 ,加在类上@JsonInclude(JsonInclude.Include.NON_NULL)//属性不为空才会被序列化,这个注解...原创 2020-02-11 18:10:43 · 529 阅读 · 0 评论 -
restful风格接口与http协议状态表述
rest是面向资源的(名词)rest通过uri暴露资源时不要再uri中出现动词象是这样 GET /api/dogs/{id}用HTTP方法体现对资源的操作·get方法获取资源.post方法添加资源.put方法修改资源.delete方法删除资源HTTP状态码通过HTTP状态码体现动作的结果,不要自定义200 OK400 错误请求(像是用户输入错误)500 系统内部发生错误(像...原创 2020-02-11 17:04:55 · 977 阅读 · 0 评论
分享