VSCode
格式化:ctrl + alt + F
上移/下移一行:光标所在位置,alt + up / alt + down
快速复制一行代码:光标所在位置,shift + alt + up / shift + alt + down
快速保存:ctrl + s
快速查找:ctrl + F
快速替换:ctrl + H
快速生成html六级标题:h$*6
快速生成六个表项的无序列表:ul>li*6
快速生成3*3表格:table>tr*3>td{单元格}*3
快速生成html代码:在html文件后缀下输入!
IDEA
使用profile工具分析内存
使用IntelliJ profile分析xxx可以直接执行
也可以安装Eclipse出的Memory Analysis Tool分析hprof文件
编译与反编译java
public class ByteCodeTest {
private int m;
public int inc() {
return m+1;
}
}
以这个类为例,在类上点击打开于-终端,执行javac ByteCodeTest.java
然后再执行 javap -verbose .\ByteCodeTest.class
,可以看到字节码如下:
public class com.huawei.cbc.udrmetricservice.jvmtest.ByteCodeTest
minor version: 0
major version: 52
flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
#1 = Methodref #4.#15 // java/lang/Object."<init>":()V
#2 = Fieldref #3.#16 // com/huawei/cbc/udrmetricservice/jvmtest/ByteCodeTest.m:I
#3 = Class #17 // com/huawei/cbc/udrmetricservice/jvmtest/ByteCodeTest
#4 = Class #18 // java/lang/Object
#5 = Utf8 m
#6 = Utf8 I
#7 = Utf8 <init>
#8 = Utf8 ()V
#9 = Utf8 Code
#10 = Utf8 LineNumberTable
#11 = Utf8 inc
#12 = Utf8 ()I
#13 = Utf8 SourceFile
#14 = Utf8 ByteCodeTest.java
#15 = NameAndType #7:#8 // "<init>":()V
#16 = NameAndType #5:#6 // m:I
#17 = Utf8 com/huawei/cbc/udrmetricservice/jvmtest/ByteCodeTest
#18 = Utf8 java/lang/Object
{
public com.huawei.cbc.udrmetricservice.jvmtest.ByteCodeTest();
descriptor: ()V
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
LineNumberTable:
line 3: 0
public int inc();
descriptor: ()I
flags: ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
0: aload_0
1: getfield #2 // Field m:I
4: iconst_1
5: iadd
6: ireturn
LineNumberTable:
line 8: 0
}
SourceFile: "ByteCodeTest.java"
评论区