1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-20 22:17:09 +08:00

Merge branch 'master' of github.com:Snailclimb/JavaGuide

This commit is contained in:
guide 2021-03-08 17:48:20 +08:00
commit 7a2c17d5a5
3 changed files with 6 additions and 12 deletions

View File

@ -62,7 +62,7 @@ Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚
解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过程。解析动作主要针对类或接口、字段、类方法、接口方法、方法类型、方法句柄和调用限定符7类符号引用进行。
符号引用就是一组符号来描述目标,可以是任何字面量。**直接引用**就是直接指向目标的指针、相对偏移量或一个间接定位到目标的句柄。在程序实际运行时只有符号引用是不够的举个例子在程序执行方法时系统需要明确知道这个方法所在的位置。Java 虚拟机为每个类都准备了一张方法表来存放类中所有的方法。当需要调用一个类的方法的时候,只要知道这个方法在方表中的偏移量就可以直接调用该方法了。通过解析操作符号引用就可以直接转变为目标方法在类中方法表的位置,从而使得方法可以被调用。
符号引用就是一组符号来描述目标,可以是任何字面量。**直接引用**就是直接指向目标的指针、相对偏移量或一个间接定位到目标的句柄。在程序实际运行时只有符号引用是不够的举个例子在程序执行方法时系统需要明确知道这个方法所在的位置。Java 虚拟机为每个类都准备了一张方法表来存放类中所有的方法。当需要调用一个类的方法的时候,只要知道这个方法在方表中的偏移量就可以直接调用该方法了。通过解析操作符号引用就可以直接转变为目标方法在类中方法表的位置,从而使得方法可以被调用。
综上,解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过程,也就是得到类或者字段、方法在内存中的指针或者偏移量。

View File

@ -24,7 +24,7 @@
### 1. 你使用过哪些组件或者方法来提升网站性能,可用性以及并发量
1. **提高硬件能力、增加系统服务器**。(当服务器增加到某个程度的时候系统所能提供的并发访问量几乎不变,所以不能根本解决问题)
2. **使用缓存**本地缓存本地可以使用JDK自带的 Map、Guava Cache.分布式缓存Redis、Memcache.本地缓存不适用于提高系统并发量,一般是用处用在程序中。比如Spring是如何实现单例的呢大家如果看过源码的话应该知道S把已经初始过的变量放在一个Map中下次再要使用这个变量的时候先判断Map中有没有这也就是系统中常见的单例模式的实现。
2. **使用缓存**本地缓存本地可以使用JDK自带的 Map、Guava Cache.分布式缓存Redis、Memcache.本地缓存不适用于提高系统并发量一般是用在程序中。比如Spring是如何实现单例的呢大家如果看过源码的话应该知道S把已经初始过的变量放在一个Map中下次再要使用这个变量的时候先判断Map中有没有这也就是系统中常见的单例模式的实现。
3. **消息队列** (解耦+削峰+异步)
4. **采用分布式开发** (不同的服务部署在不同的机器节点上,并且一个服务也可以部署在多台机器上,然后利用 Nginx 负载均衡访问。这样就解决了单点部署(All In)的缺点,大大提高的系统并发量)
5. **数据库分库(读写分离)、分表(水平分表、垂直分表)**

View File

@ -90,19 +90,13 @@ Github 前段时间推出的 Codespaces 可以提供类似 VS Code 的在线 IDE
这个网站会提供一个类似 VS Code 的在线 IDE。
## 6. 一键开启 Github 夜间模式
通过 **GitHub Dark Theme** 这个 Chrome 插件你可以将 Github 的主题变为夜间样式。
![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/2020-11/image-20201107160240274.png)
## 7. 扩展 Github 的功能
## 6. 扩展 Github 的功能
**Enhanced GitHub** 可以让你的 Github 更好用。这个 Chrome 插件可以可视化你的 Github 仓库大小,每个文件的大小并且可以让你快速下载单个文件。
![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/2020-11/image-20201107160817672.png)
## 8. 自动为 Markdown 文件生成目录
## 7. 自动为 Markdown 文件生成目录
如果你想为 Github 上的 Markdown 文件生成目录的话,通过 VS Code 的 **Markdown Preview Enhanced** 这个插件就可以了。
@ -110,7 +104,7 @@ Github 前段时间推出的 Codespaces 可以提供类似 VS Code 的在线 IDE
![](<https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/2020-11/iShot2020-11-07%2016.14.14%20(1).png>)
## 9. 后记
## 8. 后记
这篇文章是我上周六的时候坐在窗台写的,花了一下午时间。