Linux和Shell常用命令
一、文件和目录操作目录操作123456789101112131415# 查看当前目录pwd# 切换目录cd /path/to/dircd ~ # 进入home目录cd - # 返回上一次目录# 创建目录mkdir dirmkdir -p a/b/c # 递归创建# 删除目录rmdir dir # 删除空目录rm -rf dir # 删除非空目录
文件操作12345678910111213141516171819202122# 创建文件touch file.txt# 复制文件cp source destcp -r dir1 dir2 # 复制目录# 移动或重命名mv source destmv oldname newname# 删除文件rm filerm -f file # 强制删除# 查看文件cat filemore file # 分页查看less file # 可上下翻页head -n 10 file # 查看前10行tail -n 10 file # 查看后10行tail -f file # 实时查看
查找和搜索123 ...
双亲委派模型详解
一、类加载过程类从加载到虚拟机到卸载,经历以下阶段:
加载将.class文件加载到内存,创建Class对象。
加载方式:
从本地文件系统加载
从网络获取
从zip包读取
运行时计算生成
连接验证:
文件格式验证
元数据验证
字节码验证
符号引用验证
准备:为类变量分配内存并设置初始值。
解析:将符号引用替换为直接引用。
初始化执行类构造器方法,初始化类变量和执行静态代码块。
二、类加载器启动类加载器Bootstrap ClassLoader,负责加载Java核心类库。
加载路径:
JAVA_HOME/lib/rt.jar
JAVA_HOME/lib/resources.jar
JAVA_HOME/lib/sunrt.jar
扩展类加载器Extension ClassLoader,负责加载扩展类库。
加载路径:
JAVA_HOME/lib/ext目录
应用类加载器Application ClassLoader,负责加载用户类路径上的类。
加载路径:
classpath路径
自定义类加载器继 ...
JVM垃圾回收器详解
一、如何判断对象已死引用计数法对象被引用时计数器加1,引用失效时减1,计数器为0表示可回收。
缺点:无法解决循环引用问题。
可达性分析从GC Roots开始搜索,搜索不到的对象即为可回收对象。
GC Roots包括:
虚拟机栈中引用的对象
方法区中类静态属性引用的对象
方法区中常量引用的对象
本地方法栈中JNI引用的对象
二、垃圾收集算法标记-清除算法分为标记和清除两个阶段。
缺点:
效率问题:标记和清除效率都不高
空间问题:产生大量不连续的内存碎片
复制算法将内存分为两块,每次使用一块,用完后将存活对象复制到另一块。
优点:实现简单,运行高效。缺点:内存利用率低。
改进:新生代中使用Eden:Survivor比例分配。
标记-整理算法标记后将存活对象向一端移动,然后清理端边界以外的内存。
优点:不会产生内存碎片。缺点:移动对象成本较高。
分代收集算法根据对象存活周期将内存划分为不同区域,采用不同算法。
新生代:复制算法老年代:标记-清除或标记-整理算法
三、垃圾收集器Serial收集器单线程收集器,进行垃圾收集时必须暂停其他线程。
特点:
简单高效
没有线程交互开销
适合客 ...
JVM内存模型详解
一、JVM内存结构概述JVM在运行时将内存划分为多个区域,每个区域有不同的作用和生命周期。
二、程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。
特点:
线程私有
唯一不会出现OOM的区域
记录字节码指令地址
三、虚拟机栈虚拟机栈描述Java方法执行的内存模型,每个方法执行时会创建一个栈帧。
栈帧结构:
局部变量表:存储方法参数和局部变量
操作数栈:作为方法执行的工作区
动态链接:指向运行时常量池的方法引用
方法返回地址:方法正常或异常退出的地址
特点:
线程私有
生命周期与线程相同
StackOverflowError:栈深度超出限制
OutOfMemoryError:栈扩展时无法申请到内存
四、本地方法栈本地方法栈为Native方法服务,与虚拟机栈类似。
特点:
线程私有
服务于本地方法
可能抛出StackOverflowError和OutOfMemoryError
五、堆堆是JVM中最大的一块内存区域,所有线程共享,存放对象实例。
特点:
线程共享
垃圾收集的主要区域
可以处于物理上不连续的内存空间
堆的划分:
新生代 ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment

