先上图,妈的说个题外话,工作真的难找,吐血!!!! 首先JVM 是可运行 Java 代码的假想计算机 , 括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。 之所以说可以跨平台就是因为JVM的存在。 通过这个路径就可 ...
分类:
其他好文 时间:
2020-07-01 20:11:12
阅读次数:
36
Java常用类 一.String类 字符串时常量,创建后不可改变 字符串字面值存储在字符串池中,可以共享 字符串的创建方式 使用String str="hello",产生一个对象,字符串池中存储 使用String str=new String("hello"),产生两个对象,堆和字符串池中个存储一个 ...
分类:
其他好文 时间:
2020-07-01 18:41:34
阅读次数:
58
Java类加载机制 简介 类的加载: 将类的.class文件中的二进制数据读取到内存中,将其放在运行时数据区的方法区中,在堆内存中创建一个java.lang.Class对象,用来封装在方法区内的数据结构。 Class对象: 封装类在方法区内的数据结构,提供访问方法区的数据结构的接口。 注:不需要等到 ...
分类:
编程语言 时间:
2020-07-01 09:57:51
阅读次数:
72
简介 逃逸分析我们在JDK14中JVM的性能优化一文中已经讲过了,逃逸分析的结果就是JVM会在栈上分配对象,从而提升效率。如果我们在多线程的环境中,如何提升内存的分配效率呢?快来跟小师妹一起学习TLAB技术吧。 逃逸分析和栈上分配 小师妹:F师兄,从前大家都说对象是在堆中分配的,然后我就信了。上次你 ...
分类:
其他好文 时间:
2020-07-01 09:38:25
阅读次数:
60
基本原理堆排序的基本原理也是选择排序,只是不在使用遍历的方式查找无序区间的最大的数,而是通过堆来选择无序区间的最大的数。大致过程:1.建堆(这里是以建大顶堆为例)先把数组中的数转换成二叉树的形式,在这个基础上建堆。这里用到的大顶堆的性质:所有父节点的值要大于其子节点的值。按照这个性质,将无序的二叉树调整成堆。父节点和子节点计算:如图是一个简易的二叉树,蓝色的数字为节点的序号。计算父节点的序号要根据
分类:
编程语言 时间:
2020-07-01 09:19:44
阅读次数:
46
前言 网络上的信息很多,有的时候我们需要关键字搜索才可以快速方便的找到我们需要的信息。今天我们实现搜索关键字爬取堆糖网上相关的美图,零基础学会通用爬虫,当然我们还可以实现多线程爬虫,加快爬虫爬取速度 环境: windows pycharm python3 导入模块 import urllib.par ...
分类:
编程语言 时间:
2020-06-30 22:46:04
阅读次数:
89
第一章 Matplotlib 简介 Matplotlib 能够创建多数类型的图表,如条形图,散点图,条形图,饼图,堆叠图,3D 图和地图图表。 首先,为了实际使用 Matplotlib,我们需要安装它。 pip install matplotlib 一旦你安装了 Python,你就做好了准备,你可以 ...
分类:
编程语言 时间:
2020-06-30 20:19:50
阅读次数:
128
本博客总结学习堆排序算法,以一个数组为例,采用大根堆进行升序排序,附有代码实现。 堆排序的思想 堆排序的逻辑是建立在完全二叉树的基础上。 有两个概念必须要了解: 大根堆:每个结点值都大于等于左右孩子结点值 小根堆:每个结点值都小于等于左右孩子结点值 以大根堆为例,将根结点与最后一个结点交换,弹出根结 ...
分类:
编程语言 时间:
2020-06-30 13:03:10
阅读次数:
63
(1) 基本概念 jvm是运行java代码的虚拟机,包括一套字节指令集,一组寄存器,一个栈,一个垃圾回收,堆和一个存储方法域,jvm是运行在操作系统之上的,它与硬件没有直接的交互 (2)运行程序 我们都知道java的源文件,也就是.java文件,可以通过编译器生成相应的.class文件,也就是字节码 ...
分类:
其他好文 时间:
2020-06-30 12:57:51
阅读次数:
54
先看看啥叫深拷贝?啥叫浅拷贝? 假设B复制了A,修改A的时候,看B是否发生变化: 如果B跟着也变了,说明是浅拷贝,拿人手短!(修改堆内存中的同一个值) 如果B没有改变,说明是深拷贝,自食其力!(修改堆内存中的不同的值) 深拷贝(deepCopy)是增加了一个指针并且申请了一个新的内存,使这个增加的指 ...
分类:
其他好文 时间:
2020-06-30 12:33:57
阅读次数:
57