- 博客(18)
- 收藏
- 关注
原创 跨域解决方案
1. 后端解决后端解决跨域的主要方式是,通过在响应头中设置相关的跨域字段,用于告诉浏览器允许跨域请求资源。2. nginx代理方案在具有第三方资源访问的场景中,如在访问百度地图、高德地图相关的js资源时,无法修改他们的后端代码,因此,需要通过nginx代理,实现跨域的解决。3. nginx设置CORS响应字段方案 ...
2020-01-27 23:15:32
397
原创 cookie和session的联系
1. cookie1.1 简介 cookie主要是客户端(浏览器)进行数据存储的一种形式。当浏览器在发起请求的时候(不考虑跨域),会自动携带关联的cookie信息到后端。cookie前后端都可以进行设置。 后端cookie的设置主要是在响应头中设置s...
2020-01-27 22:59:31
251
原创 跨域原理
1. 简介跨域,指浏览器对不同源(协议、域名、端口组成)之间进行资源访问的一种限制如下:限制如下: 无法跨域请求资源 ajax无法跨域读取cookie、localStorage  ...
2020-01-27 22:40:55
348
原创 JAVA字节码指令集(操作数栈管理指令)
操作数栈管理指令指令名称描述pop将栈顶数值弹出(数值不能是long或者double类型的)pop2将栈顶的一个long或者double类型的数值或者两个其他类型的数值弹出dup复制栈顶数值并将复制值压入栈顶dup2复制栈顶的一个long或double类型的值,或两个其他类型的值,并将其压入栈顶dup_x1复制栈顶值并将其插入栈顶那两个值的下...
2019-02-13 10:41:50
631
原创 JAVA字节码指令集(对象的创建和操作)
对象的创建指令指令名称描述new创建一个对象,并将其引用值压人栈顶newarray创建一个指定原始类型(如int,float,char等)的数组,并将其引用值压人栈顶anewarray创建一个引用型(如类、接口、数组)的数组,并将其引用值压如栈顶multianewarray创建指定类型和指定维度的多维数组(执行该指令时,操作栈中必须包含各维度的长度值...
2019-02-13 10:41:11
727
原创 JAVA字节码指令集(控制转移指令)
条件分支指令名称描述ifeq当栈顶int类型数值等于0时跳转ifne当栈顶int类型数值不等于0时跳转iflt当栈顶int类型数值小于0时跳转ifle当栈顶int类型数值小于等于0时跳转ifgt当栈顶int类型数组大于0时跳转ifge当栈顶int类型数值大于等于0时跳转ifnull为null时跳转ifnonnull不为...
2019-02-13 10:41:00
1168
原创 JAVA字节码指令集(方法调用和返回指令)
方法调用指令 invokevirtual 该指令用于调用对象的实例方法,包括public方法和protected方法 invokeinterface 该指令用于调用接口方法 invokespecial 该指令用于调用一些需要特殊处理的实例方法,包括构造函数、私有方法和父类方法(非实例化对象调用父类方法) invokestatic 该指令用于调用类方法,即static...
2019-02-07 20:51:38
1036
原创 JAVA字节码指令集(加载存储指令)
1.加载和存储指令加载和存储指令用于将数据从栈帧的本地变量表和操作数栈之间来回传递将本地变量加载到操作数栈的指令(本地变量->操作数栈):iload...
2019-02-06 00:04:41
852
原创 JAVA虚拟机规范读书笔记——JAVA虚拟机结构
1. 数据类型java虚拟具有的数据类型原始类型(primitive type,基本类型/原生类型)引用类型(reference type)1.1 原始类型原始数据类型包括 数值类型 ( 整数类型和浮点类型 )、boolean类型和returnAddress类型1. 整数类型byte类型:值为8位有符号二进制补码整数,默认值为零,取值范围-128~127(即-27 ~ 27-...
2019-01-01 00:19:29
264
原创 JAVA字节码编写1到100的整数计算
1.代码实例1.1 帮助生成字节码的工具类package asm.bytecode;import org.apache.commons.lang3.StringUtils;import org.objectweb.asm.ClassWriter;import org.objectweb.asm.MethodVisitor;import org.objectweb.asm.Type;i...
2018-12-31 02:34:13
1041
原创 JAVA通过ASM字节码为成员方法前后添加其他代码
1. 代码实例package asm.demo2.modify.add;import asm.demo2.create.bean.MyClassLoader;import org.apache.commons.lang3.StringUtils;import org.objectweb.asm.*;import java.io.IOException;import java.lang...
2018-12-29 00:11:07
4059
2
原创 JAVA通过ASM字节码修改成员属性的权限修饰符
1. 程序实例package asm.demo2.modify.access;import org.apache.commons.lang3.StringUtils;import org.objectweb.asm.ClassReader;import org.objectweb.asm.ClassVisitor;import org.objectweb.asm.ClassWriter...
2018-12-28 23:24:23
1691
原创 JAVA通过ASM字节码框架生成实体类
1.ASM简介 程序分析,生成和转换是可以被用在很多场景的技术:2.程序实例 /** * 不做限制,可随意命名 */ String fullNameType = "zzz/ddd/ccc/LeakInfo"; ClassWriter cw = new ClassWriter(0); //创建一个类: as...
2018-12-27 23:31:41
2117
原创 虚继承初始化的底层实现
虚继承的初始化class A{ public: A(int a):a(a){ cout << "A的构造函数...."<<endl; } private: int a;};class B:virtual public A{ public: A(int a,int b):A(a),b(b
2017-11-09 21:48:45
597
原创 C语言中switch 的查找实现原理
我们在学习C语言的switch语句的时候,是否有思考过,switch在底层是如何工作的?那么我们现在来看看switch的底层工作方式。1. if…else结果的查找当case语句是小于3句的时候,switch语句底层的实现和if…else的实现方式相同。2. 线性查找当case语句大于等于4的时候,且每两个case之间产生的间隔之和不超过6时,就按线性结构查找。即,如下图的汇编里面的jmp
2017-03-19 18:50:50
4811
原创 乘法、除法汇编指令总结
乘法指令的反汇编a*5:imul eax,dword ptr [a],5 ==>(当变量与不是2的平方的数相乘时,三变量)a*b :mov eax,dword ptr [a] imul eax,dword ptr [b] ==>(当两个都是变量相乘时,两变量)a*8 :mov eax,dword ptr [a] ==>(当变量与2的平方相乘时(2^3=8))
2016-11-06 22:21:58
5840
原创 movsd,movsw,movsb汇编指令
movsd(dword==>四个字节)movsw(word==>两个字节)movsb(bity==>一个字节)movsd:将esi的地址空间的内容,复制到edi地址空间去,复制四个字节,再将esi,edi分别加4个字节。movs dword ptr es:[edi],dword ptr [esi]add esi,4add edi,4movsb:
2016-11-03 12:20:48
4802
1
原创 stosd,stosb,stosw汇编指令
stosd(dword==>四个字节)stosb(byte==>一个字节)stosw(word==>两个字节)stord:将eax的内容复制到edi的内存空间,复制四个字节,并将edi加4个字节mov dword ptr es:[edi],eaxadd edi,4
2016-11-03 12:17:42
11075
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人