
java
文章平均质量分 74
程序员小2
全网同名,公众号、领资料
展开
-
【ZGC】为什么初始标记需要STW(stop the world) ?
学习过 JVM 的同学应该都知道,目前并发垃圾回收器(CMS、G1、ZGC)针对并发标记的典型处理都是。其中初始标记和再标记需要STW(stop the world)。大家对于初始标记需要STW都习以为常,但是有没有仔细思考一下,为什么初始标记需要STW?能不能把初始标记和并发标记放在一起并发执行,去掉STW?显然答案是,否则垃圾回收器的设计者们早就这样做了,JVM中所有的并发垃圾回收器在并发标记时都包含这两个阶段。那么问题来了,为什么不能?在这里进行STW的目的是什么?解决的是什么问题?原创 2023-04-05 11:49:42 · 781 阅读 · 0 评论 -
【ZGC】ZGC中对象空间分配的原理
还要注意工作线程和应用程序线程竞争的情况,在工作线程转移对象的同时应用程序线程也转移对象(这和垃圾回收的设计相关,应用程序线程发现访问一个需要转移的对象,会先转移对象后访问)时,这种情况会出现,导致了竞争,会发生重复申请页面的释放。ZGC中对象空间分配是由对象分配管理器负责的,对象分配管理器的主要成员变量和成员函数,如下图所示。,为了能准确地记录每个CPU已经分配的字节数,所以给每个CPU设置一个计数器,这其实也是为了减少竞争。我们先看一下对象分配管理器中的成员变量。原创 2023-03-26 16:35:13 · 354 阅读 · 0 评论 -
【解决方案】报错:JSONException: create instance error
嵌套类与内部类一文分析可知,非静态成员嵌套类的实例化依赖于外部类实例,而静态嵌套类的实例化不依赖于外部类,,问题本质为内部类无法实例化,导致。原创 2023-03-26 13:13:46 · 1191 阅读 · 0 评论 -
【解决方案】使用mapStruct时,编译报错:java: Internal error in the mapping processor:java.lang.NullPointerException
mapStruct的作用:MapStruct是一个代码生成器,简化了不同的Java Bean之间映射的处理。我们在写代码时经常涉及到VO、DTO、BO、DO之间实体的转换,有了mapStruct之后,可以让不同实体之间的转换变的简单。我们只需要按照约定的方式进行配置即可。原创 2023-03-26 11:43:24 · 4072 阅读 · 0 评论 -
【教3妹学java】JVM调优有哪些工具?
早,2哥,教师节加中秋节快乐哈。看你这些天教我学java的份上,也算是我的老师了,呐,送你的教师节礼物。:呀,没想到3妹还送我礼物,是什么呀。:打开看看不就知道了。:原来是一个保温杯。:程序员工作压力大,2哥要懂得养生,多喝热水,哈哈。:这个我还真的需要,前天还看一个大学老师,用老干妈杯子喝水上热搜了。:老师这个行业还是有很多好老师的,不在意这些生活的细节,把心思主要用在教书育人上面。:是的。看在你送我礼物的份上,今天再教你一些JVM调优的方式吧。原创 2022-09-11 16:37:18 · 326 阅读 · 1 评论 -
【教3妹学java】Java之happens-before是什么?
由于存在线程本地内存和主内存的原因,再加上重排序,会导致多线程环境下存在可见性的问题。那么我们正确使用同步、锁的情况下,线程A修改了变量a何时对线程B可见?我们无法就所有场景来规定某个线程修改的变量何时对其他线程可见,但是我们可以指定某些规则,这规则就是happens-before,从JDK 5 开始,JMM就使用happens-before的概念来阐述多线程之间的内存可见性。在JMM中,如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须存在happens-before关系。原创 2022-09-11 15:59:47 · 265 阅读 · 0 评论 -
【教3妹学java】13.垃圾回收算法有哪些?
2哥:3妹,在干什么呢。3妹:我在学习呢, 这不是最近工作中用到Java了嘛,要抓紧时间上手了。2哥:学习的怎么样啦?不用的话我倒是可以指点指点。3妹:还真有点搞不懂,这个JVM垃圾回收算法,你给我讲讲呗。2哥:可以是可以,我有什么好处呢?3妹:好啦,我学会了后请你吃饭怎么样?2哥:就等你这句呢,我要吃北京烤鸭!3妹:可以!就是对要回收的对象进行标记,标记完成后统一回收。(CMS垃圾收集器使用这种)缺点:效率不稳定执行效率不稳定,有大量对象时,并且有大量对象需要回收时,执行效率会降低。内存碎片原创 2022-07-11 23:18:28 · 211 阅读 · 0 评论 -
【教3妹学java】类加载的过程是什么样的?
2哥:“今天只有残留的躯壳,迎接光辉岁月”3妹:“风雨中抱紧自由,一生经过彷徨的挣扎”2哥:哟,3妹小小年纪也会唱beyond的歌啊?3妹:这首歌这么火,我会唱有什么稀奇的2哥:还以为你只会唱一些小女生喜欢的歌呢3妹:2哥怎么想起来唱这首歌了哇2哥:不是你说岁月是把杀猪刀,岁月对我很残忍嘛,我就追忆一下岁月。3妹:哈哈哈哈,岁月虽然摧残了2哥的身体,可是也让2哥从中学了很多东西啊,比如2哥的java就比我强很多,快教教我啦。2哥:那今天我们就学习一下java的类加载过程。类加载器是 Java原创 2022-07-03 11:44:08 · 218 阅读 · 0 评论 -
【教3妹学java】11.强引用,弱引用,软引用和虚引用的区别是什么?
3妹:“如果华陀再世,崇洋都被医治,外邦来学汉字,激发我民族意识”2哥:3妹不要只唱歌啊,跳起来啊, 刘畊宏女孩动起来!3妹:我是属于头脑简单,四肢不发达的, 动动嘴皮子还行, 要我运动还是算了吧。2哥:不运动不行啊,我们这行工作强度很大的, 身体是革命的本钱嘛。3妹:好吧,等我先把这一章节学完就来运动。2哥:在学什么呢,跟我说说3妹:java对象的4种引用的区别,你看:#对象在内存中的3种状态1.可达状态有一个及以上的变量引用着对象。2.可恢复状态已经没有变量引用对象了,但是还没有被调原创 2022-06-24 16:29:58 · 274 阅读 · 0 评论 -
【教3妹学java】10.Java对象在内存中是怎样存储的?
3妹:“去吗 去啊 以最卑微的梦,战吗 战啊 以最孤高的梦, 致那黑夜中的呜咽与怒吼, 谁说站在光里的才算英雄”2哥:没想到3妹不仅是王心凌女孩,还是孤勇者女孩啊,厉害的👍。3妹:那是,我很有音乐天赋的,小时候还获得过我们村少儿歌唱大赛一等奖呢,哈哈哈哈~2哥:别说,还真是挺好听的。3妹:以后要是失业了,说不定我就转行当歌手了呢。2哥:呦,还骄傲上了,你离歌手还是差远了呀。咱们还是先把技术学好,失业的可能性就相对比较小了嘛。2哥:今天我们接着来学习JVM的知识。对象在内存中存储布局主要分为对象.原创 2022-06-22 23:55:03 · 1360 阅读 · 0 评论 -
每日一题day5-1636. 按照频率将数组升序排序
给你一个整数数组 nums ,请你将数组按照每个值的频率 升序 排序。如果有多个值的频率相同,请你按照数值本身将它们 降序 排序。请你返回排序后的数组。示例 1:输入:nums = [1,1,2,2,2,3]输出:[3,1,1,2,2,2]解释:‘3’ 频率为 1,‘1’ 频率为 2,‘2’ 频率为 3 。示例 2:输入:nums = [2,3,1,3,2]输出:[1,3,3,2,2]解释:‘2’ 和 ‘3’ 频率都为 2 ,所以它们之间按照数值本身降序排序。示例 3:输入:nums = [-1原创 2022-06-22 10:07:27 · 378 阅读 · 0 评论 -
【教3妹学java-JVM】9.Java中对象的创建过程是怎么样的?
2哥:3妹,昨天我们已经学习了Java的内存模型,那你知道一个对象的创建过程是怎样的吗?3妹:这个我知道,我可是个勤奋好学的好学生,昨天你给我讲过之后我又在网上查了下。2哥:是吗, 那你给我介绍下。这里借用网上的一张流程图:首先代码中new关键字在编译后,会生成一条字节码new指令,当虚拟机遇到一条字节码new指令时,会根据类名去方法区运行时常量池找类的符号引用,检查符号引用代表的类是否已加载,解析和初始化过。如果没有就执行相应的类加载过程。虚拟机从Java堆中分配一块大小确定的内存(因为类加载时,创建原创 2022-06-20 23:24:33 · 239 阅读 · 0 评论 -
【教3妹学java-JVM】8.双亲委派模型
3妹:2哥,今天是星期天,走,请你下馆子吃大餐怎么样。2哥:哇哦,看来今天3妹很开发哈?3妹:是的,今天系统学习了双亲委派模型。2哥:好啊,现在离晚饭时间还早,那你给我讲讲什么是双亲委派模型?3妹:哈哈,今天轮到我给你上课了吧。 我要从以下几个方面来介绍:就是类加载器一共有三种:启动类加载器:主要是在加载JAVA_HOME/lib目录下的特定名称jar包,例如rt.jar包,像java.lang就在这个jar包中。扩展类加载器:主要是加载JAVA_HOME/lib/ext目录下的具备通用性的类库。应原创 2022-06-19 20:33:35 · 166 阅读 · 0 评论 -
【教3妹学java-JVM】7.Java的内存模型是怎样的?
3妹:“如果你突然打了个喷嚏 那一定就是我在想你。如果半夜被手机吵醒 啊那是因为我关心……”3妹正在一遍又一遍地唱着王心凌的《爱你》2哥:3妹,甜心教主的这首歌你今天已经唱了快20遍了,现在该学习了吧?3妹:哈哈哈,这首歌多好听啊,我再唱最后一遍。2哥:今天我们来学习下JVM相关的知识。JVM(Java Virtual Machine)即Java虚拟机,是一种用于计算设备的规范,由名字可以知道,它是一个虚构出来的计算机,是通过仿真模拟各种计算机功能来实现的。JVM主要是将Java字节码和操作系统之间原创 2022-06-19 13:54:09 · 194 阅读 · 0 评论 -
【教3妹学java】6.String是引用类型吗?
2哥:3妹,我们已经学习了java的基本数据类型和引用类型,那你知道String是引用类型吗?3妹:String是引用类型。Java语言除了8大基本类型(byte,short,char,int,long,float,double,boolean), 其他的都是引用类型, 所以String也是引用类型。2哥:great, 答对了,那我再问你,以下这些概念你了解吗?首先我们来看下String的源码:可以看到, String类被final修饰,表示该类不能被继承。value[] 字符串数组变量也是被fi原创 2022-06-18 22:51:23 · 2421 阅读 · 0 评论 -
【教3妹学java】5.Integer和int之间判相等的区别,Integer类会进行缓存吗?
2哥:3妹,Integer和int你了解吗?3妹:一个装箱一个拆箱啊,这个是最基本的,我早就学习过了。2哥:那我有几个问题要考考你:int与int两边都是基本类型,可直接用==判断int和IntegerInteger会自动拆箱为int,所以也可以直接用==判断Integer和Integer(1)如果数值范围在[-128,127]之间,可以直接用==因为JVM会维护这个范围内的缓存,比如第一个Integer是127,会存放在缓存中;在创建第二个Integer时会直接返回缓存的127,所以两者是相等原创 2022-06-18 15:27:14 · 173 阅读 · 0 评论 -
【教3妹学java】4.Java中变量,代码块,构造器之间执行顺序
2哥:3妹,你了解Java中的父子类吗?3妹:这个了解啊, 有了父类、子类的概念,所以Java才有了继承、多态。2哥:nice, 很好,那你知道父子类中变量,代码块,构造器之间执行顺序是怎样的吗?3妹:emmm……这个太多了,我还没有理明白。2哥:今天我们就来学习这个。下面写了一个Demo进行验证:输出结果如下:说明确实是按照上面的执行顺序执行的。...原创 2022-06-18 12:11:33 · 312 阅读 · 0 评论 -
【教3妹学java】Object类中的registerNatives()方法详解
3妹:2哥,我今天学习了Object类,知道java中所有的类都是Object的子类。但是我看Object中有一个registerNatives()方法,也没有地方使用它, 这个方法是干嘛的呀,你给我讲讲呗~2哥:这你算是问对人了,我刚好看到一篇文章是介绍registerNatives()方法的。2哥:其实,不光是Object类,甚至System类、Class类、ClassLoader类、Unsafe类等等,都能在类代码中找到如下代码:java的两种方法Java方法和本地方法。Java方法是由Jav原创 2022-06-17 21:56:39 · 519 阅读 · 1 评论 -
【教3妹学java】2.引用数据类型
2哥:3妹,昨天教你的java基本数据类型 掌握了吗?3妹:掌握了,java有8大基本类型(byte,short,char,int,long,float,double,boolean)……2哥:我们今天再来学习一下java的引用类型。引用数据类型包括3钟。存储空间分为两部分,一个在stack(栈)中,一个在heap(堆)中。一般在stack中存放head的地址,head里面存放实际的数据。引用数据类型在类中初始化为null。注:1、不同的引用可能指向同一个对象。(同一个对象可以有多个引用)区别:基原创 2022-06-17 09:03:27 · 231 阅读 · 0 评论 -
【教3妹学java】1.java基本数据类型
3妹:2哥,我想学习一门新的编程语言,你说我学习什么好呢?2哥:当然是学习java啦,java是目前市场上使用最广泛的语言。3妹:哈哈,还以为你要说Java是世界上最好的语言呢,这让其他语言的程序员听到又要引战了。2哥:还别说,我真是这么觉得的……2哥我对java掌握的还是很有自信的。3妹:那这样的话,你就教我java吧。2哥:可以是可以,不过你要请吃饭哦。2哥:我们就先从Java的基本数据类型讲起吧。最主要的区别是包装类型是对象,拥有字段和方法,可以很方便地调用一些基本的方法,初始值是null原创 2022-06-16 23:54:41 · 173 阅读 · 0 评论 -
开放平台 SDK 设计实践
在写这篇文章之前,我个人因为工作的原因使用过淘宝、京东开放平台的一些SDk,也学到不少设计思路,这次准备将我的思路落地成可以使用的SDK,大概的设计会分为三个模块,分别为:数据传输模块:主要用于传输请求数据,本文使用http协议传输数据序列化模块:用户序列化和反序列化数据,SDK是给客户使用应该尽可能的去适配客户的意愿,如客户首先的序列化方式为JSON那,作为使用方肯定是会希望SDK能支持JSON序列化和反序列化的应用模块:主要是协调数据传输、序列化之间的工作,同时对数据做一些校验签名操作数据原创 2022-04-29 23:34:03 · 722 阅读 · 0 评论 -
List总结
ArrayList与LinkedList的区别是什么?从继承树,底层数据结构,线程安全,执行效率来进行分析。1.底层使用的数据结构ArrayList 底层使用的是Object数组,初始化时就会指向的会是一个static修饰的空数组,数组长度一开始为0,插入第一个元素时数组长度会初始化为10,之后每次数组空间不够进行扩容时都是增加为原来的1.5倍。ArrayList的空间浪费主要体现在在list列表的结尾会预留一定的容量空间(为了避免添加元素时,数组空间不够频繁申请内存),而L...原创 2022-04-04 17:06:44 · 991 阅读 · 0 评论 -
JAVA中== equals hashCode
前言最近老婆大人在学习编程,what?一个金融专业的都来学编程了!!!看来程序猿们的内卷不只来自于同行, 其他行业也开始对咱们压了。equals和==的区别对于基本数据类型(byte,short,char,int,long,float,double,boolean), ==比较的是值相等对于引用类型,在没有覆写equals方法的情况下,==比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。But, JAVA当中所有的类原创 2022-03-05 22:02:36 · 447 阅读 · 0 评论 -
一文搞懂String这个特殊的引用类型
前言有时候有人会来问笔者,String是值类型还是引用类型?首先明确一下,String是引用类型。JAVA语言除了8大基本类型(byte,short,char,int,long,float,double,boolean), 其他的都是引用类型, 所以String也是引用类型。下面通过一些例子来说明java中直接定义一个字符串、new String(), String.intern(),字符串常量池这些概念的区别和应用。直接定义一个字符串String s1 = "hello";String s2原创 2022-03-05 18:49:11 · 2750 阅读 · 1 评论 -
【leectode 2022.1.17】统计元音字母序列的数目
给你一个整数 n,请你帮忙统计一下我们可以按下述规则形成多少个长度为 n 的字符串:字符串中的每个字符都应当是小写元音字母(‘a’, ‘e’, ‘i’, ‘o’, ‘u’)每个元音 ‘a’ 后面都只能跟着 ‘e’每个元音 ‘e’ 后面只能跟着 ‘a’ 或者是 ‘i’每个元音 ‘i’ 后面 不能 再跟着另一个 ‘i’每个元音 ‘o’ 原创 2022-01-17 09:14:39 · 465 阅读 · 0 评论 -
【坚持每日一题8.12】516. 最长回文子序列
给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。示例 1:输入:s = “bbbab”输出:4解释:一个可能的最长回文子序列为 “bbbb” 。示例 2:输入:s = “cbbd”输出:2解释:一个可能的最长回文子序列为 “bb” 。提示:1 <= s.length <= 1000s 仅由小写英文字母组成java代码:class Solution {原创 2021-08-12 09:07:29 · 190 阅读 · 0 评论 -
java并发编程需要注意的问题
并发编程是java知识体系中必需要掌握的一块内容,相比Java中其他知识点的学习门槛较高,要想在项目中熟练应用,需要注意以下问题。原子性指程序在执行一系列操作时,这些操作要么全部执行成功,要么全部执行失败;举例:public class AtomicTest { private Integer val = 0; public Integer getValue() { return val; } public void increment原创 2020-06-21 23:44:07 · 588 阅读 · 0 评论 -
Java 的这些坑,你踩到了吗?
原文链接:https://mp.weixin.qq.com/s/KITwpPQJu4K3wAQ3rTjS-A前言中国有句老话叫"事不过三",指一个人犯了同样的错误,一次两次还可以原谅,再多就不可原谅了。写代码也是如此,同一个代码“坑”,踩第一次叫"长了经验",踩第二次叫"加深印象",踩第三次叫"不长记性",踩三次以上就叫"不可救药"。在本文中,笔者总结了一些 Java 坑,描述了问题...转载 2020-04-14 14:39:08 · 5779 阅读 · 0 评论 -
java并发学习-CountDownLatch实现原理
CountDownLatch在多线程并发编程中充当一个计时器的功能,并且维护一个count的变量,并且其操作都是原子操作。如下图,内部有下static final的Sync类继承自AQS.该类主要通过countDown()和await()两个方法实现功能的,首先通过建立CountDownLatch对象,并且传入参数即为count初始值。如果一个线程调用了await()方法,那么这个线...原创 2020-04-08 22:42:09 · 6699 阅读 · 0 评论 -
Java服务,内存OOM问题如何快速定位
Java服务出现了OOM(Out Of Memory)问题,总结了一些相对通用的方案,希望能帮助到Java技术栈的同学。某Java服务(假设PID=10765)出现了OOM,最常见的原因为:有可能是内存分配确实过小,而正常业务使用了大量内存某一个对象被频繁申请,却没有释放,内存不断泄漏,导致内存耗尽某一个资源被频繁申请,系统资源耗尽,例如:不断创建线程,不断发起网络连接画外音:...原创 2020-04-06 09:23:30 · 6691 阅读 · 1 评论 -
java类加载机制、类加载器、自定义类加载器
类加载机制java类从被加载到JVM到卸载出JVM,整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(using)、和卸载(Unloading)七个阶段。其中验证、准备和解析三个部分统称为连接(Linking)。1、加载加载指的是将类的.cla...原创 2020-04-05 23:00:55 · 2866 阅读 · 0 评论 -
架构师职位常见面试题
一、架构师的日常职责是什么?总体而言,架构师负责软件领域的顶层设计。 架构师需要根据公司的发展,规划企业未来若干年的架构,制定可落地的架构方案,解决技术难题,做技术选型与攻关,落地具体的架构。优秀的架构师既能做架构方案,也能写具体的架构代码。二、开发工程师和架构师有何区别?工作重点不同:架构师重点在于前期的架构规划,需要制定可落地的架构方案,结合公司的业务场景、团队的技术水平等因素做技...转载 2020-03-25 10:40:09 · 1035 阅读 · 0 评论 -
JAVA过滤器和拦截器的区别
什么是拦截器 在AOP中用于在某个方法或字段被访问之前,进行拦截然后再之前货之后加入某些操作。拦截是AOP的一种实现策略。 拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者定义一个action前后执行的代码,也可以在一个action执行阻止其执行,同时也是提供了一种可以提取action可重用部分的方式。 实现原理:大部分是通过代理的方式来调用的。 自定义拦截器步骤...原创 2020-03-22 16:01:43 · 2190 阅读 · 0 评论 -
线程池线程数与(CPU密集型任务和I/O密集型任务)的关系
1.任务类型举例: 1.1: CPU密集型: CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPU Loading很高。 1.2: I/O密集型:...原创 2020-03-21 18:31:58 · 4053 阅读 · 0 评论 -
Java中的锁分类
在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的内容是对每个锁的名词进行一定的解释。公平锁/非公平锁公平锁是指...转载 2020-03-21 16:21:58 · 218 阅读 · 0 评论 -
公平锁和非公平锁的区别?
前言上次我们提到了乐观锁和悲观锁,那我们知道锁的类型还有很多种,我们今天简单聊一下,公平锁和非公平锁两口子,以及他们在我们代码中的实践。正文开始聊之前,我先大概说一下他们两者的定义,帮大家回顾或者认识一下。公平锁:多个线程按照申请锁的顺序去获得锁,线程会直接进入队列去排队,永远都是队列的第一位才能得到锁。优点:所有的线程都能得到资源,不会饿死在队列中。 缺点:吞吐量会下降很多...转载 2020-03-21 16:01:16 · 573 阅读 · 1 评论 -
【并发编程】深入理解 Java 内存模型,这篇文章就够了
作者:_fan凡 https://www.jianshu.com/p/15106e9c4bf3原文地址:https://mp.weixin.qq.com/s/LKZryIKK-si_2adKTSOfoQJava内存模型(Java Memory Model,JMM)是java虚拟机规范定义的,用来屏蔽掉java程序在各种不同的硬件和操作系统对内存的访问的差异,这样就可以实现ja...转载 2020-03-16 08:08:38 · 233 阅读 · 0 评论 -
【idea工具】IntelliJ Idea 常用快捷键列表
Ctrl+N 查找累文件Ctrl+Shift+N 查找所有文件Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询......原创 2019-11-30 12:16:04 · 2584 阅读 · 0 评论 -
【idea工具】idea文件搜索快捷键(默认ctrl+shift+n)失效解决方法
有一次电脑蓝屏了,异常关机。重启之后idea的文件搜索快捷键不能用了,搜索项目中存在的文件,也会找不到于是就查了下解决办法,解决步骤如下:1、点击file-->Invalidate Caches/Restart2、选择Invalidate and restart之后idea会重启,所以注意要保存好项目文件,防止数据丢失哈!...原创 2019-11-29 23:29:15 · 4578 阅读 · 0 评论 -
通过app NA渲染后的app source 抓包
有些app加了层壳,通过抓包工具charles, fiddler, wireshark等抓包工具看不到有效的请求,没法通过看后端返回的数据来抓包。这时,可以通过app渲染的app source来抓包。具体步骤如下:1、安装 android sdkinstaller_r24.4.1-windows.exe安装包安装好后需要下载tools,tools下载的内容包含: ...原创 2019-11-29 22:59:09 · 2838 阅读 · 0 评论