后端
JavaGuide知识点整理——JVM垃圾回收
本篇文章的基本脉络
知识点脉络
当需要排查各种内存溢出问题,当垃圾收集称为系统达到更高并发的瓶颈时,我们就需要对这些自动化技术实施必要的监控和调节。
揭开JVM内存分配与回收的神秘面纱
java的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时java自动内存管理最核心的功能是堆内存中对象的分配与回收。
java堆是垃圾收集器管理的主要区域,因此也被称为GC堆。从垃圾回
练琴,系统性思考的一个好处
一个非常好的好处便是,可以迅速找到问题的“关键解”,从而更快速地解决问题。
在书籍《好好学习》中,有对“关键解”的解释:
“所谓系统关键解,是指一个系统中的特定位置——对其施加一个小小的变化,就能导致系统行为发生显著的变化”。
举一个在练琴过程中,困扰了许多学琴者的例子:不知道如何将自己的手速提上去。
其实,这个问题中的“关键解”,就在于学琴者对手指练习的方式上。
如果在练习的过程中,没有遵循由简
安卓逆向第八篇:脱壳原理分析
如果你是想直接用
FART github
直接装完一用就行了。
本文完!
如果想继续了解
注意点:
1、多dex:
使用脱完之后,可能会有很多dex文件。fart脱出来的dex文件会伴随着同名的txt文件。如果有想找的类名,可以grep类名到txt文件找,然后再找同名的dex。
2、打开异常:
可能是dex的开头魔数故障
算法练习:整数拆分(动态规划)
一.前言
最近一直在了解动态规划,这是LeetCode上面的一道动规的题。
343. 整数拆分
给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。
返回 你可以获得的最大乘积 。
示例1:
输入: n = 2
输出: 1
解释: 2 = 1 + 1, 1 × 1 = 1。
示例2:
输入: n = 10
输出: 36
解释: 10 =
Buffer/ByteBuffer/ByteBuf详解
ByteBuffer
ByteBuffer是一个抽象类,NIO编程中经常会使用,Netty常用的ByteBuf实际上也是对其的一种封装
Byte即字节,一个8位的二进制
Buffer即缓冲区,所谓缓冲区,其实就是一个临时存储数据的容器(可以理解为一个数组),而且一般可以重用
缓冲区
缓冲区有什么用呐?
减少实际的物理读写次数
缓冲区创建时分配固定内存,这块内存区域可被重用,减少动态分配和
k8s-实战入门-Pod详解(十)
本章节将详细介绍Pod资源的各种配置(yaml)和原理。
5.1 Pod介绍
5.1.1 Pod结构
每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类:
用户程序所在的容器,数量可多可少。
Pause容器,这是每个Pod都会有的一个根容器,它的作用有两个:
可以以它为依据,评估整个Pod的健康状态
可以在根容器上设置IP地址,其它容器都此IP(Pod IP),以实现
1351. 统计有序矩阵中的负数
1.题目
给你一个 m * n 的矩阵 grid,矩阵中的元素无论是按行还是按列,都以非递增顺序排列。 请你统计并返回 grid 中 负数 的数目。
示例 1:
输入:grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]
输出:8
解释:矩阵中共有 8 个负数。
示例 2:
输入:grid = [[3,2],[1,0]]
输出:0
提示:
