2021年度最全面JVM虚拟机,类加载过程与类加载器
前言类装载器子系统是JVM中非常重要的部分,是学习JVM绕不开的一关。一般来说,Java类的虚拟机使用Java方式如下:Java源程序(.java文件)在经过Java编译器编译之后就被转换成Java字节代码(.class文件)。类加载器负责读取Java字节代码,并转换成java.lang.Class类的一个实例。每个这样的实例用来表
Wesley13 Wesley13
3年前
java四大线程池
一、为什么需要使用线程池  1、减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。2、可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)。Java中创建和销毁一个线程是比较
peter peter
4年前
深入剖析 defer 原理篇 —— 函数调用的原理?
本篇文章是深入剖析golang的defer的基础知识准备,如果要完全理解defer,避免踩坑,这个章节的基础知识必不可少。我们先复习一个最基础的知识——函数调用。这个对理解defer在函数里的行为必不可少。那么,当你看到一个函数调用的语句你能回忆起多少知识点呢?地址空间下图是一个典型的操作系统的地址空间示意图:(h
Stella981 Stella981
3年前
Linux上传下载
     使用Linux系统时一般会借助第三方工具,例如Xshell、SecureCRT等,常常会遇到需要在服务器上与本地机子上做上传下载的文件交互。交互通信有很多协议,下面描述下我常用的Zmodem协议。该协议是针对modem的一种错误校验协议,是Xmodem文件传输协议的一种增强形式,不仅能传输更大的数据,而且错误率更小,并且支持断点
Stella981 Stella981
3年前
Kubernetes Pod OOM 排查日记
一、发现问题在一次系统上线后,我们发现某几个节点在长时间运行后会出现内存持续飙升的问题,导致的结果就是Kubernetes集群的这个节点会把所在的Pod进行驱逐OOM;如果调度到同样问题的节点上,也会出现Pod一直起不来的问题。我们尝试了杀死Pod后手动调度的办法(label),当然也可以排除调度节点。但是在一段时间后还会复现,我们通过监控
Stella981 Stella981
3年前
Jure Leskovec等顶尖学者倾情授课,斯坦福知识图谱课程完结
  机器之心报道  参与:杜伟、魔王斯坦福知识图谱春季课程视频上线B站,领域内顶尖学者和业界大牛倾情授课,对知识图谱感兴趣的小伙伴赶紧去观看吧!  从Google搜索,到聊天机器人、大数据风控、证券投资、智能医疗、自适应教育、推荐系统,这些应用无一不跟知识图谱相关。知识图谱在技术领域的热度也在逐渐上升。  但
Wesley13 Wesley13
3年前
Java分布式锁看这篇就够了
\什么是锁?在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到
Stella981 Stella981
3年前
2021年的今天,如何成为一名专业的前端工程师?
!(https://pic2.zhimg.com/80/v2fd1789cc4f83abb877682e3d6b8e6455_720w.jpg)如果你想成为一名专业的前端工程师,那么你需要了解要学什么,学到什么程度,以及如何有效的学习。大学里没有正规的前端技术课程,普遍缺少比较权威的渠道来系统地了解和学习当前最实用、最前沿的前端技术。作为一个入行许
可莉 可莉
3年前
200行Python制作音乐下载器,支持所有主流的平台
前言对于自己喜欢的音乐的时候,总想着能下载下来作为自己的铃声,但是有一些歌曲下载的时候是需要收取一些费用的,或者是需要VIP会员的,今天小编教大家用Python下载音乐,支持目前网络上所有主流的音乐平台声明:代码仅供学习交流,不得用于商业/非法使用基本环境配置版本:Python3.6系统:Windows相关模块:!(h
胖大海 胖大海
2年前
linux 僵尸进程处理
僵尸进程:就是已经结束了的进程,但是没有从进程表中删除,如果过多僵尸进程导致其他重要任务没有PID可用,进而导致系统崩溃。这是真实可能发生的,它有一定的概率,特别当存在一个编码糟糕的程序开始大量产生僵尸进程的时候,在这种情况下,找到并杀死僵尸进程是一个明智的做法。如何找到僵尸进程top命令用ps命令和grep命令寻找僵尸进程:psAostat,