未来影子
码龄3年
  • 130,627
    被访问
  • 272
    原创
  • 8,138
    排名
  • 178
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2019-07-09
博客简介:

yingzi的技术博客

博客描述:
北京某高校数学研究生,转码中
查看详细资料
  • 5
    领奖
    总分 1,441 当月 187
个人成就
  • 获得126次点赞
  • 内容获得40次评论
  • 获得596次收藏
创作历程
  • 160篇
    2022年
  • 79篇
    2021年
  • 35篇
    2020年
成就勋章
TA的专栏
  • JVM
    15篇
  • Python
    19篇
  • 面试
    4篇
  • Flink
    19篇
  • hbase
    6篇
  • hive
    10篇
  • hadoop
    23篇
  • Kafka
    4篇
  • Spark
    11篇
  • 算法与数据结构
    17篇
  • 大数据项目
    8篇
  • 大数据
    5篇
  • 生活态度
    2篇
  • flume
    10篇
  • 杂七杂八
    9篇
  • Linux
    8篇
  • zookeeper
    5篇
  • JAVA
    28篇
  • 机器学习
    9篇
  • 爬虫实战
    5篇
  • Latex
    2篇
  • matlab
    6篇
  • 科研
    2篇
  • C++
    11篇
  • 数据库
    11篇
TA的推广
兴趣领域 设置
  • 数据结构与算法
    推荐算法
  • 大数据
    大数据
  • 人工智能
    机器学习人工智能
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

第十六篇_垃圾回收相关概念

文章目录System.gc()的理解内存溢出与内存泄漏内存溢出内存泄漏Stop The World垃圾回收的并行与并发安全点和安全区域Java中的引用强引用软引用弱引用虚引用引用队列拓展 - WeakHashMap总结System.gc()的理解默认情况下,通过System.gc()或者Runtime.getRuntime().gc()的调用,会显示触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存然后System.gc() 调用附带也该免责声明,无法保证对垃圾收集器的调
原创
发布博客 6 小时前 ·
4 阅读 ·
0 点赞 ·
0 评论

conda中设置源

文章目录添加源清华源腾讯源移除源清华源腾讯源打印当前channels系统中的配置文件使用pip源添加源清华源conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --add channels h
原创
发布博客 19 小时前 ·
6 阅读 ·
0 点赞 ·
0 评论

MySQL高级_索引的数据结构

索引的引入文章目录索引及其优缺点InnoDB中索引推演设计索引简单的索引设计方案InnoDB中的索引方案常见索引概念聚簇索引二级索引(辅助索引、非聚簇索引)联合索引InnoDB的B+树索引注意事项MyISAM中的索引方案MyISAM索引原理MyISAM与InnoDB对比索引的代价索引及其优缺点MySQL官方定义:帮助MySQL高效获取数据的数据结构优点:提高数据检索效率,降低数据库的IO成本,创建索引主要原因创建唯一索引,保证数据库表中每一行数据的唯一性在实现数据的参考晚完整性方面,加速表
原创
发布博客 昨天 16:40 ·
47 阅读 ·
0 点赞 ·
0 评论

第十五篇_垃圾回收相关算法

文章目录垃圾标记阶段的算法之引用计数算法垃圾标记阶段:对象是否存活的判断方式一:引用计数算法方式二:可达性分析(或者根搜索算法、追踪性垃圾收集)对象的finalization机制对象生存还是死亡使用MAT查看GC Roots溯源使用Jprofiler进行GC Roots溯源垃圾清除阶段算法之标记-清除算法垃圾清除阶段算法之复制算法垃圾清除阶段算法之标记 - 压缩(整理)算法小结分代收集算法增量收集算法和分区算法垃圾标记阶段的算法之引用计数算法垃圾标记阶段:对象是否存活的判断在堆里存放着几乎所有的J
原创
发布博客 昨天 11:42 ·
30 阅读 ·
0 点赞 ·
0 评论

第十四篇_垃圾回收概述

文章目录什么是垃圾为什么需要GCJava的垃圾回收机制什么是垃圾垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生关于垃圾收集有三个经典问题哪些内存需要回收什么时候回收如何回收垃圾收集机制是Java的招牌能力。极大的提高了开发效率垃圾垃圾是指在 运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾如果不及时对内存中的垃圾进行清理,那么这些垃圾会一直占用空间,直到程序运行结束,被占用的空
原创
发布博客 昨天 11:40 ·
27 阅读 ·
0 点赞 ·
0 评论

MySQL高级——引擎

文章目录引擎介绍InnoDB引擎:具备外键支持功能的事务存储引擎MyISAM引擎:主要的非事务处理引擎Archive引擎:用于数据存档Blackhole引擎:丢弃写操作,读操作会返回空内容CSV引擎:存储数据时,以逗号分隔各个数据项Memory引擎:置于内存的表Federated存储引擎:访问远程表Merge引擎:管理多个MyISAM表构成的表集合NDB引擎:MySQL集群专用存储引擎常用引擎对比补充InnoDB表的优势InnoDB和ACID模型InnoDB架构引擎介绍InnoDB引擎:具备外键支持功能
原创
发布博客 前天 21:48 ·
65 阅读 ·
0 点赞 ·
0 评论

第十三篇_StringTable

文章目录String的基本特性String的内存分配字符串的拼接操作拼接操作的原理intern() 的使用intern()的空间效率测试:空间角度StringTable的垃圾回收G1的String去重操作String的基本特性String:字符串,使用一对 “” 引起来表示String s1 = “hello”;String s2 = new String(“hello”);String:声明为final的,不可被继承String 实现了Serializable接口:表示字符串是
原创
发布博客 前天 18:22 ·
34 阅读 ·
0 点赞 ·
0 评论

第十二篇_执行引擎

文章目录执行引擎概述执行引擎的工作流程Java代码编译和执行的过程机器码指令、汇编、高级语言的理解与执行过程机器码指令指令集汇编语言高级语言字节码C/C++源程序执行过程解释器解释器工作机制(或工作任务)解释器的分类现状JIT编译器热点代码以及探测方式方法调用计数器回边计数器Hotspot VM 可以设置程序的执行方式Hotspot VM 中JIT分类Graal编译器与AOT编译器执行引擎概述执行引擎是Java虚拟机核心组件之一“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行的能
原创
发布博客 前天 16:17 ·
36 阅读 ·
0 点赞 ·
0 评论

第十一篇_直接内存

文章目录直接内存概述非直接缓冲区直接缓冲区注意点直接内存概述直接内存不是虚拟机运行时数据区的一部分。也不是《Java虚拟机规范》中定义的内存区域直接内存是在Java堆外的、直接向系统申请的内存空间来源于NIO,通过存在堆中的DirectByteBuffer操作Native内存通常访问直接内存的速度高于Java堆,也就是读写性能更高因此出于性能考虑,读写频繁的场合可能会考虑使用直接内存Java的NIO库允许Java程序使用直接内存,用户数据缓冲区非直接缓冲区读写文件,需要与磁盘
原创
发布博客 2022.05.18 ·
21 阅读 ·
0 点赞 ·
0 评论

第十篇_对象的实例化内存布局与访问定位

文章目录对象的的实例化对象创建的六个步骤判断对象的对应的类是否加载、链接、初始化为对象分配内存处理并发安全问题初始化分配到的空间设置对象的对象头执行init方法进行初始化对象的内存布局对象头(Header)实例数据(Instance Data)对齐填充(Padding)图示对象的访问定位对象的的实例化实例代码package cn.icanci.jvm.metaspace;/** * @Author: icanci */public class ObjectTest { publ
原创
发布博客 2022.05.18 ·
37 阅读 ·
0 点赞 ·
0 评论

第九篇_方法区

文章目录运行时数据区结构图栈、堆、方法区之间的交互关系方法区的基本理解Hotspot中方法区的演进设置方法区大小和OOM如何解决OOM方法区的内部结构方法区存储什么?运行时常量池的理解运行时常量池方法区的使用举例方法区的演进细节永久代为什么要被元空间替换StringTable为什么需要调整方法区的垃圾回收行为总结运行时数据区结构图栈、堆、方法区之间的交互关系从线程是否共享来看从创建对象的角度来看方法区的基本理解《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于
原创
发布博客 2022.05.18 ·
33 阅读 ·
0 点赞 ·
0 评论

MySQL-聚合函数

文章目录聚合函数HAVINGSELECT的执行过程查询结构SELECT执行顺序SQL的执行原理聚合函数聚合函数:作用于一组数据,并对一组数据返回一个值聚合函数类型:AVG()、SUM()、MAX()、MIN()、COUNT()注意:聚合函数不能嵌套调用,比如不能出现类似“AVG(SUM(字段名称))”形式的调用AVG、SUM:可对数值型数据使用MIN、MAX:对任意类型数据使用COUNT:适用于任意数据类型;COUNT(*) -> 表中记录总数,COUNT(expr) 返回expr不为
原创
发布博客 2022.05.14 ·
74 阅读 ·
0 点赞 ·
0 评论

MySQL单行函数大全

文章目录数值函数基本函数三角函数指数与对数进制间的转换字符串函数日期和时间函数获取日期、时间日期与时间戳的转换获取月份、星期、星期数、天数日期的操作函数时间和秒钟转换的函数计算时日期和时间的函数日期的格式化与解析流程控制函数加密与解密函数MySQL信息函数其他函数数值函数基本函数ABS(x) 返回x的绝对值SIGN(X) 返回X的符号。正数返回1,负数返回-1,0返回0PI() 返回圆周率的值CEIL(x),CEILING(x) 返回大于或等于某个值的最小整数FLOOR(x) 返回小于或等于
原创
发布博客 2022.05.14 ·
9 阅读 ·
0 点赞 ·
0 评论

第八篇_堆

概述每个进程拥有一个JVM实例一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域Java堆区在JVM启动时被创建。其空间大小被确定,JVM管理的最大一块内存空间,堆内存大小可调节《Java虚拟机规范》规定,堆可以处于物理上不连续的内存空间中,但是在逻辑上他应该是连续的所有线程共享Java堆,这里还可以划分线程私有缓冲区(Thread Local Allocation Buffer,TLAB)《Java虚拟机规范》中对Java堆描述是:所有的对象实例以及数组都对应在运行时分配在堆
原创
发布博客 2022.05.13 ·
32 阅读 ·
0 点赞 ·
0 评论

第七篇_本地方法栈

本地方法栈Java虚拟机用于管理Java方法的调用,而本地方法栈是用户管理本地方法的调用允许被实现固定或者是可拓展的内存大小(在内存溢出方面是相同的)如果线程请求分配的栈容量超过本地方法栈的最大容量,Java虚拟机竟会抛出一个StackOverflowError异常本地方法动态扩展,若动态扩展无法申请到足够内存或在创建新线程是没有足够内存,会抛OutOfMemaryError异常具体做法是Native Method Stack中登记 native方法,在Execution Engine执行时加.
原创
发布博客 2022.05.12 ·
116 阅读 ·
0 点赞 ·
0 评论

第六篇_本地方法接口

什么是本地方法一个Native Method就是一个Java调用非Java代码的接口,一个Native Method是这样的一个Java方法:该方法的实现由非Java语言来实现,比如C。这个特征并非Java所持有,其他编程语言也有,如C++,可使用extern "c"告知C++编译器去调用一个C的函数在定义一个native method时候,并不提供实现体(有些像定义一个Java Interface),因为其实现体是由非Java语言在外实现本地接口的作用是在融合不同的编程语言为Java所用为什.
原创
发布博客 2022.05.12 ·
104 阅读 ·
0 点赞 ·
0 评论

第五篇_虚拟机栈

文章目录虚拟机栈出现的背景内存中的栈和堆虚拟机栈的基本内容栈的优点栈中可能出现的异常设置栈内存的大小栈中存储什么栈运行原理栈帧的内部结构局部变量表(Local Variables)字节码中方法内部结构的剖析关于Slot的理解静态变量于局部变量对比补充说明操作数栈**代码追踪**i++和++i问题栈顶缓存技术动态链接方法调用动态类型语言和静态类型语言方法重写本质虚方法表方法返回地址栈的相关面试题虚拟机栈出现的背景由于跨平台的设计,Java指令都是根据栈来设计的。不同平台的CPU架构不同,所以不能设计为基
原创
发布博客 2022.05.12 ·
33 阅读 ·
0 点赞 ·
1 评论

第四篇_程序计数器

文章目录PC Register介绍举例两个常见问题CPU时间片PC Register介绍JCM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的线程信息,CPU只有把数据装载到寄存器才能运行这里并非是广义上的物理寄存器,更偏向于PC计数器(或指令计数器),JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟作用:PC寄存器用来存储指向下一条指令的地址,也即将要执行的指令代码,由执行引擎读取下一条指令介绍
原创
发布博客 2022.05.10 ·
31 阅读 ·
0 点赞 ·
0 评论

第三篇_运行时数据区概述和线程

文章目录内存线程共享Runtime线程JVM系统线程内存内存是非常重要的系统资源,是硬盘和CPU的中间仓库和桥梁,承载着操作系统和应用程序的实时运行JVM的内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行不同的JVM对于内存的划分方式和管理机制存在着部分差异,结合JVM虚拟机规范,讨论经典JVM内存分布线程共享Java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有些会随着虚拟机的启动而创建,随着虚拟机的销毁而销毁一些于线程一一对应.
原创
发布博客 2022.05.10 ·
52 阅读 ·
0 点赞 ·
0 评论

第二篇_类加载子系统

文章目录JVM内存结构类加载器子系统的作用类加载器ClassLoader角色类的加载过程类加载器分类用户自定义类加载器获取ClassLoader的途径双亲委派机制沙县安全机制其他类的主动使用和被动使用JVM内存结构类加载器子系统的作用从文件系统或者网络中加载Class文件,Class文件开头有特定标识,是一个魔数Classloader只负责class文件的加载,至于是否可运行,则由执行引擎决定加载的类信息存放于称为方法区的内存空间,除了类信息,方法区还会存放运行时常量池信息,可能还包括字符串字
原创
发布博客 2022.05.10 ·
53 阅读 ·
0 点赞 ·
0 评论
加载更多