JVM 学习系列(二)
本地方法接口 – Native Interface
本地方法接口(Java Native Interface,JNI)是Java为了融合C/C++程序,Java诞生是C/C++横行时代,想要立足必须能够调用C/C++程序;JVM中开辟了一块区域用于 标记native代码。
例如 Java Object超类中大量存在 native接口方法;native方法本身不是 Java代码,只有方法签名,类似接口;
12345678910111213141516171819202122232425package java.lang;import jdk.internal.HotSpotIntrinsicCandidate;public class Object { private static native void registerNatives(); @HotSpotIntrinsicCandidate public final native Class<?> getClass(); @HotSpotIntrinsicCandidate pu ...
JVM 学习系列 (一)
JVM结构
jvm Hotspot 模型如下图所示
上图所示 jvm 中 Java stack,Native Method Stack ,Program Counter Register 是线程私有,不存在线程安全问题 ;Method Area 和Heap 是线程共享区
类加载器 – Classloader
类加载器(Classloader)负责加载 class,类加载器将class文件字节码解析到内存中,并且这些内容转换成方法区 中运行时数据结构,classloader加载完class文件后 Execution Engine决定是否能够执行程序
classloader分类
1、启动类加载器
2、拓展类加载器
3、应用程序类加载器
4、用户自定义加载器
启动类加载器 启动类加载器BootstrapClassloader也叫根加载器,是虚拟机自带的加载器由 C++实现,用户加载 jre/lib/rt.jar包中的全部class文件,rt.jar是Java基础类库,包含常见的java基础类,
eg:Object类
123456public class Demo { ...
国内访问Github
github访问
github 作为全球最大的开源代码托管平台,但是受限于国内网络环境,Github并未在中国大陆建立镜像;通过域名反向解析 Github最近站点都在 新加坡; 网上大多数采用自建梯子方式访问,毕竟不是合法方式
解决dns解析Github速度慢,或者dns被污染是最简单有效的途径
国内优质dns
阿里DNS (alidns.com)
谷歌dns Public DNS | Google Developers
微软dns 微软自带dns服务器,win10微软设置哪个DNS服务器地址最快_weixin_39666550的博客-CSDN博客
笔者直接使用 阿里云DNS,阿里云DNS
打开自己的电脑 网络设置
编辑网络 将阿里云dns地址配置上
访问 github 测试
github站点中的图片都能正常的打卡也没出现卡顿
搭建自己的hexo
搭建属于自己的博客
安装 hexo
hexo 依赖 nodejs ,由于国内npm访问速度过慢,需要配置国内代理镜像。配置好nodejs执行下列命令
1npm install -g hexo-cli
选择主题
hexo支持自定义主题,博主可根据自身喜好配置不同的主题,本次直接butterfly
123456# 先创建 hexo 博客hexo init blog# 进入目录 下载主题cd bloggit clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
配置 butterfly主题,修改 _config.yml
1theme: butterfly
同时在博客工程根目录中创建 _config.butterfly.yml 文件 并且将 themes/butterfly/_config.yml 中的内容全部拷贝, 效果如下
安装必要插件
hexo最终的要的能力是插件机制和插件市场 访问站点找到自己需要的插件
1、搜索插件 hexo-g ...