Skip to content

Commit 74fa389

Browse files
committed
Update Java Note
1 parent 1939eee commit 74fa389

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

Java.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10596,23 +10596,26 @@ Return Address:存放调用该方法的 PC 寄存器的值
1059610596

1059710597
本地方法栈是为虚拟机执行本地方法时提供服务的
1059810598

10599-
JNI:Java Native Interface,通过使用 Java 本地接口书写程序,可以确保代码在不同的平台上方便移植
10599+
JNI:Java Native Interface,通过使用 Java 本地接口程序,可以确保代码在不同的平台上方便移植
1060010600

1060110601
* 不需要进行 GC,与虚拟机栈类似,也是线程私有的,有 StackOverFlowError 和 OutOfMemoryError 异常
10602-
1060310602
* 虚拟机栈执行的是 Java 方法,在 HotSpot JVM 中,直接将本地方法栈和虚拟机栈合二为一
10604-
1060510603
* 本地方法一般是由其他语言编写,并且被编译为基于本机硬件和操作系统的程序
10606-
1060710604
* 当某个线程调用一个本地方法时,就进入了不再受虚拟机限制的世界,和虚拟机拥有同样的权限
1060810605

1060910606
* 本地方法可以通过本地方法接口来**访问虚拟机内部的运行时数据区**
1061010607
* 直接从本地内存的堆中分配任意数量的内存
1061110608
* 可以直接使用本地处理器中的寄存器
1061210609

10613-
<img src="https://seazean.oss-cn-beijing.aliyuncs.com/img/Java/JVM-本地方法栈.png" style="zoom:67%;" />
10614-
10615-
10610+
10611+
原理:将本地的 C 函数(如 foo)编译到一个共享库(foo.so)中,当正在运行的 Java 程序调用 foo 时,Java 解释器利用 dlopen 接口动态链接和加载 foo.so 后再调用该函数
10612+
10613+
* dlopen 函数:Linux 系统加载和链接共享库
10614+
* dlclose 函数:卸载共享库
10615+
10616+
<img src="https://seazean.oss-cn-beijing.aliyuncs.com/img/Java/JVM-本地方法栈.png" style="zoom:67%;" />
10617+
10618+
1061610619

1061710620
图片来源:https://github.com/CyC2018/CS-Notes/blob/master/notes/Java%20%E8%99%9A%E6%8B%9F%E6%9C%BA.md
1061810621

Tool.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Git 是分布式版本控制系统(Distributed Version Control System,简称
3131

3232
4.提交到本地仓库。本地仓库中保存修改的各个历史版本
3333

34-
5.修改完成后,需要和团队成员共享代码时,将代码push到远程仓库
34+
5.修改完成后,需要和团队成员共享代码时,将代码 push 到远程仓库
3535

3636

3737

@@ -66,7 +66,7 @@ GitLab(地址: https://about.gitlab.com/ )是一个用于仓库管理系
6666
设置用户信息:
6767

6868
* git config --global user.name “Seazean”
69-
* git config --global user.email “zhyzhyang@sina.com” //用户名和邮箱可以随意填写,不会校对
69+
* git config --global user.email “imseazean@gmail.com” //用户名和邮箱可以随意填写,不会校对
7070

7171
查看配置信息:
7272

@@ -108,8 +108,8 @@ GitLab(地址: https://about.gitlab.com/ )是一个用于仓库管理系
108108
* -t 指定密钥类型,默认是 rsa ,可以省略
109109
* -C 设置注释文字,比如邮箱
110110
* -f 指定密钥文件存储文件名
111-
* 查看命令: cat ~/.ssh/id_rsa.pub
112-
* 公钥测试命令: ssh -T git@github.com
111+
* 查看命令cat ~/.ssh/id_rsa.pub
112+
* 公钥测试命令ssh -T git@github.com
113113

114114

115115

@@ -2245,7 +2245,7 @@ pid_t wait(int *status)
22452245
22462246
参数:status 用来保存被收集的子进程退出时的状态,如果不关心子进程**如何**销毁,可以设置这个参数为 NULL
22472247
2248-
父进程调用 wait() 会一直阻塞,直到收到一个子进程退出的 SIGCHLD 信号,wait() 函数就会销毁子进程并返回
2248+
父进程调用 wait() 会阻塞等待,直到收到一个子进程退出的 SIGCHLD 信号,wait() 函数就会销毁子进程并返回
22492249
22502250
* 成功,返回被收集的子进程的进程 ID
22512251
* 失败,返回 -1,同时 errno 被置为 ECHILD(如果调用进程没有子进程,调用就会失败)

0 commit comments

Comments
 (0)