Antkillerfarm Hacking V7.5

language » Java(二), 汇编, IDE

2021-05-14 :: 6729 Words

Java

JVM(续)

https://mp.weixin.qq.com/s/9xGsz5TpTSN0LxeOdNV8zA

一文看懂JVM内存布局及GC原理

https://mp.weixin.qq.com/s/CH9D-E7fxuu462Q2S3t0AA

Java字节码增强探秘

https://mp.weixin.qq.com/s/RKqmy8dw7B7WtQc6Xy2CLA

JVM CPU Profiler技术原理及源码深度解析

https://mp.weixin.qq.com/s/bU-MYGcbas6y7JY-oRrNdA

JVM面试大法

https://mp.weixin.qq.com/s/bF6tHfA4lXApv5x9h97cqA

浅谈JVM内存结构

https://mp.weixin.qq.com/s/MxMcpJlqSEZRO0CssQglOg

Android兼容Java 8语法特性的原理分析

https://mp.weixin.qq.com/s/ZlNcvwJ_swspifWTLHA92Q

Java动态调试技术原理及实践

https://mp.weixin.qq.com/s/23-S5tXTqi2LSe84OoQvvA

跑得好好的Java进程,怎么突然就瘫痪了?

https://mp.weixin.qq.com/s/h2_eAtoE9IWdi_OERul0Mw

Tencent JDK国产化CPU架构支持分享

https://mp.weixin.qq.com/s/iklfWLmSD4XMAKmFcffp9g

底层原理:垃圾回收算法是如何设计的?

https://mp.weixin.qq.com/s/sXv9XIIVDsflXr0FdrGM1A

垃圾回收器是如何演进的?

https://mp.weixin.qq.com/s/ag5u2EPObx7bZr7hkcrOTg

新一代垃圾回收器ZGC的探索与实践

https://mp.weixin.qq.com/s/0BEqgGEuC5cfqeDWx728Ig

8张图带你理解Java内存区域

https://mp.weixin.qq.com/s/C-hLyeshiENJ_wmUltOpbw

JVM完整深入解析

https://mp.weixin.qq.com/s/IlatTB-2AxxIph1z1RP9iQ

Java虚拟机垃圾收集机制详解

https://mp.weixin.qq.com/s/TBUQrqxMbWIjG65H4tAP1Q

十个JVM核心知识点

https://mp.weixin.qq.com/s/tHDB4tKmaY9vglmoRL9-tg

5款强大的JVM性能调优监控工具

https://mp.weixin.qq.com/s/2yxexZUr5MWdMZ02GCSwdA

谈谈JVM内部锁升级过程

https://zhuanlan.zhihu.com/p/608730174

每天100w次登陆请求,8G内存该如何设置JVM参数?

https://zhuanlan.zhihu.com/p/149626566

JVM系列之数据类型

动态代理

动态代理可以动态的创建代理类并处理对”实际对象”的调用。

面向对象的编程之中,想要约定Proxy和RealSubject实现相同的功能(函数方法)有两种方式:

a、定义一个功能接口,Proxy 和RealSubject都实现这个接口。

b、通过继承,Proxy继承自RealSubject,这样Proxy则拥有了RealSubject的功能,

JDK中提供的创建动态代理的机制采用a思路;而cglib采用b思路(spring两者都使用了)。

https://www.cnblogs.com/secbro/p/12537367.html

Java代理模式及动态代理详解

https://www.cnblogs.com/whirly/p/10154887.html

Java动态代理详解

https://cloud.tencent.com/developer/article/1525580

彻底搞懂Java动态代理

https://mp.weixin.qq.com/s/58CkiW1ZjqiwLWctJbBVFg

深入浅出动态代理

https://zhuanlan.zhihu.com/p/87393183

Java常见几种动态代理的对比

https://www.runoob.com/w3cnote/cglibcode-generation-library-intro.html

CGLIB(Code Generation Library) 介绍与原理

JNA

JNA(Java Native Access)是一个开源的Java框架,是Sun公司推出的一种调用本地方法的技术,是建立在经典的JNI基础之上的一个框架。之所以说它是JNI的替代者,是因为JNA大大简化了调用本地方法的过程,使用很方便,基本上不需要脱离Java环境就可以完成。

https://www.cnblogs.com/lanxuezaipiao/p/3635556.html

JNI的替代者—使用JNA访问Java外部功能接口

https://mp.weixin.qq.com/s/vA69QGfZeKRlxZs_v_DQkw

Linux下跨语言调用C++实践

参考

http://blog.csdn.net/u014717036/article/details/52234679

Java语言中的协变和逆变

https://mp.weixin.qq.com/s/h3MB8p0sEA7VnrMXFq9NBA

Java魔法类:Unsafe应用解析

https://mp.weixin.qq.com/s/_hSaI5yMvPTWxvFgl-UItA

Java动态追踪技术探究

https://www.cnblogs.com/paddix/p/5374810.html

Java并发编程:核心理论

https://www.jianshu.com/p/25b328753017

压缩20M文件从30秒到1秒的优化过程

https://mp.weixin.qq.com/s/mdYZhkWkAILQz_JnVA5xvA

深入AQS(AbstractQueuedSynchronizer)

https://mp.weixin.qq.com/s/_MVTvyG3gcsJcpidtQEBqg

为什么Java中“1000==1000”为false,而”100==100“为true?

https://mp.weixin.qq.com/s/X0foqlams1wMMnRE017XmQ

JDK 5-15都有哪些经典新特性

https://mp.weixin.qq.com/s/6HKCnN2HDi84bwjElhZBcQ

打工人,从JMM透析volatile与synchronized原理

https://mp.weixin.qq.com/s/GaK4iyTNvDsO9nMCXxrWkQ

看完这篇Exception和Error,和面试官扯皮就没问题了

https://mp.weixin.qq.com/s/01fj7l3xsxHVstlkrJ0epw

Java如何实现动态脚本?

https://mp.weixin.qq.com/s/Uw7YaphnlMQGGazIBYplgQ

我调研了100来个Java开源博客系统,发现这5个最好用!

https://mp.weixin.qq.com/s/tMUUwT0g3bzxyRgq5GeMWg

从0到1!大话动静态代理

https://mp.weixin.qq.com/s/_sLQiyNm92n2LA5YMNTocQ

Java字符串String那些事

https://mp.weixin.qq.com/s/8Cpl8PoAP1TI4y_cWYsA5A

排名前16的Java工具类

https://blog.csdn.net/mu_wind/article/details/109516995

Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合

https://mp.weixin.qq.com/s/oK6A3viNP3XafEvl7rzjKA

如何实现Java类隔离加载?

https://mp.weixin.qq.com/s/_3FVfZQuDftFpOf7cbuKgw

Java泛型T,E,K,V,?,傻傻分不清?

https://mp.weixin.qq.com/s/wij1mbRGzgahaCW7Vu5rgQ

Java反射到底慢在哪?

https://mp.weixin.qq.com/s/DiphH8bvR8TtLyQmnTkpuw

几种Java常用序列化框架的选型与对比

https://mp.weixin.qq.com/s/oyxO-x0t5bVHB7TNVYxxNQ

35个Java代码优化魔鬼细节

https://mp.weixin.qq.com/s/ZSUMCKZVEvJUx7JRaBTVIQ

一款Java开源的即时通讯IM聊天系统

https://mp.weixin.qq.com/s/zbakWF2UeTbrnfzmh-E7rg

一个ThreadLocal和面试官大战30个回合

https://mp.weixin.qq.com/s/KgJFyEmZApF7l5UUJeWf8Q

从操作系统层面分析Java IO演进之路

https://mp.weixin.qq.com/s/aEkJ1HkhfzIhGv0EwFoy1A

浅谈RSocket与响应式编程

https://www.zhihu.com/question/466696410/answer/2219153613

Tomcat为什么要JAVA破坏双亲委派机制?

汇编

https://mp.weixin.qq.com/s/OWGi1htNugOv81ZFPinRGw

汇编实现的memcpy和memset

https://mp.weixin.qq.com/s/6RoQAPsenD7Pu9enTqGeoQ

移动端arm cpu优化学习笔记之内联汇编入门

https://mp.weixin.qq.com/s/gr6YKmxbZjwfB4Rft1w55A

一口气看完45个寄存器,CPU核心技术大揭秘

https://mp.weixin.qq.com/s/504MLGjCESZPOvv8AwY6Pw

这篇寄存器讲的有点意思

https://github.com/zyantific/zydis

一个x86/x86-64反汇编的的库。

ELF & PE

https://zhuanlan.zhihu.com/p/254882216

深入浅出ELF

https://mp.weixin.qq.com/s/vnqANjTMNqdjkHXl203eRg

逆向工程基础:从PE文件到进程地址空间

https://mp.weixin.qq.com/s/_RD_jY-gJFxlT9DX2jGDAA

只有170字节,最小的64位Hello World程序这样写成

https://www.zhihu.com/question/21715980

Windows上最小的“HelloWorld.exe”能有多小?

http://www.phreedom.org/research/tinype/

Tiny PE

https://www.zhihu.com/question/30576554

自己写的COFF文件格式和编译器生成的.obj文件一样吗?

https://cloud.tencent.com/developer/article/1687441

详解ELF重定向原理

https://blog.csdn.net/pingxiaozhao/article/details/109239221

ELF文件格式的详解


elf格式除了代码和数据外还有很多有用的信息,可以被标准boot loader识别,你如果不想自己花费10+天去自己实现stage1和stage2的bootloader的话,elf文件可以帮你省很多时间,因为grub可以直接加载,qemu也可以直接运行。

https://www.zhihu.com/question/49580321

C如何编译出一个不需要操作系统的程序?


https://zhuanlan.zhihu.com/p/584081943

C语言二进制程序同时“跨平台”在Windows和Linux上跑了

IDE

http://pypl.github.io/IDE.html

这个网站提供了常用IDE的流行排名

Scintilla

Scintilla是Neil Hodgson出于对Richedit控件的失望,所开发的替代品(1990)。它是Notepad++等编辑器的基础控件。

官网:

https://www.scintilla.org

Scintilla官方还推出了一个名叫SciTE的编辑器,用于展示Scintilla的新功能。

tree-sitter

tree-sitter是一个多语言的语法分析器。

官网:

https://tree-sitter.github.io/

参考:

https://blog.csdn.net/weixin_43646592/article/details/119895482

tree-sitter-编程语言解析工具包

LSP

language server protocol是一种跨编辑器的语言支持实现规范。它由微软提出,目前vscode、vim、atom都已经支持了这个规范。

在过去,每个IDE遇到一门全新的语言,往往都需要重新实现一次基本功能:对于流行的语言来说还好,因为IDE厂商有动力提供支持。但对于一门全新的语言,往往需要语言的发明人自己实现各种IDE的语言支持。由于各个IDE的接口不同,需要将语言支持在各个IDE中重新移植一遍。

有了LSP规范后,语言支持插件开发者只需要编写一次,就可以很快地在IDE之间移植代码了。

官网:

https://microsoft.github.io/language-server-protocol/

这里有一个社区维护的LSP Server列表:

https://langserver.org/

类似的还有DAP(Debug Adapter Protocol),用于IDE与具体调试器通信。

BSP(Build Server Protocol),处于IDE和构建工具之间,用于统一构建功能的通信协议。

它们都是通过协议去统一相同功能在不同工具之间的差异性。

参考:

https://blog.csdn.net/weixin_38358700/article/details/121919353

DAP调试适配协议

https://blog.csdn.net/weixin_38358700/article/details/121919581

BSP构建服务协议

Source Insight

Shift+F8:高亮选中的字

http://www.cnblogs.com/bluestorm/archive/2012/10/28/2743792.html

Source Insight常用设置和快捷键大全

Eclipse

分栏显示

1.拖住一个文件不放,直到鼠标图案发生改变。

2.如果需要左右显示两个文件,向左右移动鼠标,如果需要上下显示两个文件,上下移动。这里的移动需要移出编辑窗口范围。

Other

http://dcloud.io/index.html

HBuilder,一个html编辑的IDE。

十六进制编辑器

https://mp.weixin.qq.com/s/Bq6p3DUePBAUlw1kek86QA

开源十六进制编辑器登顶GitHub热榜(ImHex)

https://zhuanlan.zhihu.com/p/59119723

Linux上最好的十六进制编辑器

Fork me on GitHub