摘要:
Java字节码 操作数栈 在解释执行过程中,每当为Java方法分配栈桢时,Java虚拟机往往需要开辟一块额外的空间作为操作数栈,来存放计算的操作数以及返回结果。具体来说,**JVM执行每一条指令之前,Java虚拟机要求该指令的操作数已被压入操作数栈中。在执行指令时,Java虚拟机会将该指令所需的操作 阅读全文
摘要:
CodeForces 146E Lucky Subsequence 题意 首先定义了一种叫幸运数,幸运数是只包含数字4和数字7的数字。给定n(\(n \le 10^5\))个数,每个数字都不大于 \(10^9\),让你从中选出k个数,这k个数只要下标不同就算不同,并且这k个数中都不包含两个相同的幸运 阅读全文
摘要:
CodeForces 1467D Sum of Paths 题意 有一条直线,直线上有 n(n ⇐ 5000) 个点,每个点有一个值,你可以选择在任意点出发,移动 k(k ⇐ 5000) 步,只能向左或向右移动,但是可以多次经过同一个点,所有可能出现的路径称好路径。下面有 q(q ⇐ 200000) 阅读全文
摘要:
Java 桥接方法 桥接方法概念 Java中的桥接方法(Bridge Method)是一种为了实现某些Java语言特性而由编译器自动生成的方法。可以通过使用Java反射中 Method 类的 isBridge() 方法来判断该方法是否是桥接方法。通过反射 Class.getMethod("") 取出 阅读全文
摘要:
nginx 替换 问题 nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf nginx缺少http_ssl_module模块,需要在已安装的nginx中 阅读全文
摘要:
JVM方法调用原理 方法重载 方法重载在编译过程就已经能够确定,具体到每个方法调用,Java编译器会根据所传入参数的声明类型来选取重载方法。可以分为三个步骤: 在不考虑对基本类型自动装拆箱,以及可变长参数的情况下选取重载方法; 如果在第1个步骤中没有找到适配的方法,那么在允许自动装拆箱,但不允许可变 阅读全文
摘要:
JVM 编译的细节 Java中boolean类型 首先先来查看如下代码: public class BooleanTest { public static void main(String []args){ boolean ok = true; if(ok){ System.out.println( 阅读全文
摘要:
写一个程序实现base32的编码与解码。base32编码的原理:对于任意一个二进制字节数组,将连续的5个bit进行编码,5个bit可以表示32个不同的数,分别映射到a-z(26个字母)和 0-5(6个数字),比如00000映射到a,00001映射到b,00010映射到c,...,11110映射到4, 阅读全文
摘要:
深入理解Java虚拟机——垃圾收集算法 分代收集理论 当前商业虚拟机的垃圾收集器,大多数都遵循了“分代收集”(Generational Collection)的理论(分代收集理论也有其缺陷,最新出现(或在实验中)的几款垃圾收集器都展现出了 面向全区域收集设计的思想,或者可以支持全区域不分代的收集的工 阅读全文
摘要:
spring 多数据源的使用 在同一个项目中需要使用多个数据源,这就需要根据不同的场景进行切换数据源,spring给我们提供一种很方便的方式,那就是使用 AbstractRoutingDataSource 进行切换数据源。 首先来看 AbstractRoutingDataSource 这个类,下面是 阅读全文
摘要:
横向拆分与纵向拆分 数据库拆分 横向拆分: 将数据库中表的数据按照记录(行)拆分到多个表(库)中去,每个数据库表的结构都一样,也就是列数是一样的。比如某个表有100w条记录,可以把该表横向拆分到10个表里去,每个表10w记录,第一个表是1~10w,第二个表是100001到20w,以此类推。以后当需要 阅读全文
摘要:
作者:@dwtfukgv
本文为作者原创,转载请注明出处:https://www.cnblogs.com/dwtfukgv/p/14769719.html888 阅读全文
摘要:
深入理解Java虚拟机——Hotpot虚拟机对象 Java对象的创建 当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 在类加载检查通过后, 阅读全文
摘要:
问题描述 一个应用程序一直正常运行,突然某个时刻处理能力下降,但是从流量、jstack、gc上来看都是比较正常的。 会在JVM日志中出现以下日志: Java HotSpot(TM) 64-Bit Server VM warning: CodeCache is full. Compiler has b 阅读全文
摘要:
深入理解Java虚拟机——Java内存模型管理 运行时数据区域 程序计数器 程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础 阅读全文
摘要:
首先需要引入fastjson的依赖文件,以下是maven的依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.73</version> </dependency> 阅读全文
摘要:
有时候我们需要在运行Java程序时去调用一些shell脚本或者是python脚本,Java提供了一些方式,但是直接使用会存在一些问题,比如传多个参数,或者拿到返回值或者是错误信息等不方便,所以下面写了一个Java调用命令行的通用方法。 因为需要等待调用的脚本完成才能够返回,所以需要进行阻塞,并且为了 阅读全文
摘要:
环境准备 安装Xcode11.0,当然也可以是其他版本,尽量超过11.0可以在appstore下载,也可以开发者网址下载:https://developer.apple.com/download/more/ 安装xcode-select xcode-select install 安装mercuria 阅读全文
摘要:
命令功能 查看目标文件(包括目录)中所有文件信息,包括权限信息等。 命令格式 ls [选项] [目标文件] 选项参数 **-a , --all:**查看目录下的所有文件,包括以 . 开头的隐含文件。 -A, --almost-all: 同-a,但不列出.和..的目录。 --author: 同-l一起 阅读全文
摘要:
链接:https://ac.nowcoder.com/acm/contest/11171/D 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述: 小 Q 在纸上画树,画着画着,小 阅读全文