上一页 1 ··· 7 8 9 10 11 12 下一页
摘要: jvm 内存结构和 java 内存模型不是同一个东西 | 线程私有 | 线程共享 | | | | | 程序计数器 | 堆 | | 虚拟机栈 | 方法区 | | 本地方法区 | 堆外内存(Java7的永久代或JDK8的元空间、代码缓存) | ### 程序计数器 + 也叫 PC 寄存器,存储下一条程序行 阅读全文
posted @ 2023-04-14 11:44 CyrusHuang 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 将字节码文件加载到 jvm,并创建对应的字节码对象,然后对其进行验证、初始化等操作 共 5 个阶段:加载、验证、准备、解析、初始化,这里只记录【加载】里的类加载器和双亲委派 ### 加载的是字节码文件 通过类加载器 ClassLoader 把字节码文件在堆中生成代表这个 class 文件的 java 阅读全文
posted @ 2023-04-14 10:26 CyrusHuang 阅读(113) 评论(0) 推荐(0) 编辑
摘要: ### 编译 + 前端编译:依靠 jdk 的编译工具把 java 文件编译成 class 文件,`javac` 命令 + 后端编译:class 文件编译成机器指令 - 逐行读取 class 文件内同,并解释成机器指令 - 引入 `jit` 技术提高解释效率,比如某些类中共有的内容,这些内容解释次数过 阅读全文
posted @ 2023-04-14 09:59 CyrusHuang 阅读(20) 评论(0) 推荐(0) 编辑
摘要: ### 总结 + jvm 是一套规范,只要实现了相关规定就可以视为是一个 jvm,jdk 的是 hotSpot,不同 jdk 版本的 jvm 也有细微差异 + jvm 不仅可以作为 java 的运行环境,还能作为别的语言的运行环境,比如 kotlin、 groovy 等 + java 能跨平台是因为 阅读全文
posted @ 2023-04-14 09:45 CyrusHuang 阅读(86) 评论(0) 推荐(0) 编辑
摘要: #### 其实就是 HashMap,明白了 HashMap 就会明白 HashSet 原理 + 创建 HashSet 底层就是创建了一个 HashMap + HashSet 添加一个元素就是往 HashMap 添加一个元素 + HashSet 获取元素,其实就是遍历 HashMap 的 key,返回 阅读全文
posted @ 2023-03-04 12:57 CyrusHuang 阅读(18) 评论(0) 推荐(0) 编辑
摘要: #### jdk1.7 和 1.8 大致相同但还是有区别,主要是数据结构的区别,1.7 为数组+链表;1.8 为数组+链表+红黑树 ### 关键知识点 + 加载因子:装填因子,目的是何时对 map 进行扩容,默认是 0.75 即容量达到 75% 时对 map 扩容,原数组扩大为两倍长度 + 扩容阈值 阅读全文
posted @ 2023-03-01 21:19 CyrusHuang 阅读(21) 评论(0) 推荐(0) 编辑
摘要: ### 概述 底层数据结构是双向链表(jdk1.6是双向循环,1.7开始不循环了),所以 **新增/删除效率高,查询/修改效率相对较低** 全能冠军:既是一个顺序容器,也是队列,还可以作为栈使用 未实现 RandomAccess 接口,使用迭代器(iterator)遍历效率高 #### 本想写点源码 阅读全文
posted @ 2023-03-01 18:09 CyrusHuang 阅读(13) 评论(0) 推荐(0) 编辑
摘要: ### 概述 底层通过数组实现,所以 **查询/更新效率很高,删除/增加跟位置相关**,除未实现同步外和 Vector 大致相同 自动扩容,每次扩容大概 1.5 倍,扩容代价比较高尽量避免 实现了 RandomAccess 接口,使用 for 遍历效率高 最大长度为 Integer.MAX_VALU 阅读全文
posted @ 2023-03-01 17:15 CyrusHuang 阅读(29) 评论(0) 推荐(0) 编辑
摘要: ### 遍历 ```java // list 遍历,stream() 可省略 list.stream().forEach(e -> { }); // map 遍历 map.forEach((k,v) -> { }); ``` ### 过滤 ```java // 保留 age > 18 的 userL 阅读全文
posted @ 2023-02-22 14:59 CyrusHuang 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 光标移动(命令模式的上下左右):k,j,h,l 保存/退出 仅保存::w 退出::q(如果有修改要先保存) 保存并退出::wq(x效果一致) 强制退出::q! 模式 命令模式:esc(当前需要处于插入或可视模式) 插入模式:i(光标前插入);a(光标后插入);I(行首插入);A(行尾插入) 可视模式 阅读全文
posted @ 2023-02-22 10:00 CyrusHuang 阅读(20) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 下一页