-
【笔记】JVM之PC寄存器(程序计数器)
PC寄存器(程序计数器)1.概述https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.5 它是一块很小的内存空间,几乎可以忽略不记。也是运行速度最快的存储区域。 在JVM规范中,每个线程都有它自己的程序计数器,是线程私有的,声明周期与线程的生命周期保持一致。 任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的Java方法的JVM指令地址;或者,如果是在执行...…
-
2020年第一次叨叨
最近 今天是个挺特别的日子 2020年的高考,因为疫情推延了一个月,今天是高考第一天 也是七七事变纪念日关于疫情 从1月17日到家,到今天,已经因为疫情原因在家待了172天了,差不多近6个月了。这段异常持久的疫情,国家付诸了很多很多人力和物力,感恩这些默默付出的人,坚守岗位的医务工作者,没有他们的话,恐怕我不会这么安逸的坐在电脑旁敲下这些文字。絮叨下压力 论文压力是从研究生开始就伴随我的,只是我一直把它挂在口头,吊儿郎当的弄,持续已久的老毛病了就是越想要什么的时候,就容易不去做,...…
-
【笔记】JVM之双亲委派机制
双亲委派机制Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存生成class对象。而且加载某个类的class文件时,Java虚拟机采用的是双亲委派模式,即把请求交由父类处理,它是一种任务委派模式。双亲委派模式要求除了顶层的启动类加载器外,其余的类加载器都应当有自己的父类加载器,请注意双亲委派模式中的父子关系并非通常所说的类继承关系,而是采用组合关系来复用父类加载器的相关代码,类加载器间的关系如下:双亲委派模式是在Java 1.2...…
-
【笔记】JVM之ClassLoader
关于ClassLoaderClassLoader类,它是一个抽象类,其后所有的类加载器都继承自ClassLoader(不包括启动类加载器) 方法名称 描述 getParent() 返回该类加载器的超类加载器 loadClass(String name) 加载名称为name的类,返回结果为java.lang.Class类的实例 findClass(Stri...…
-
【笔记】JVM之类加载器分类
类加载器分类JVM支持两种类型的类加载器1. 引导类加载器(Bootstrap ClassLoader)非Java语言编写的2. 自定义类加载器(User-Defined ClassLoader) Java语言编写的从概念上来讲,自定义类加载器一般指的是程序中由开发人员自定义的一类类加载器,但是Java虚拟机规范却没有这么定义,而是将所有派生于抽象类ClassLoader的类加载器都划分为自定义类加载器。无论类加载器的类型如何划分,在程序中我们最常见的类加载器始终只有三个,如下所示: ...…
-
【笔记】JVM之类加载过程
JVM的架构模型Java编译器输入的指令流基本上是一种基于栈的指令集架构,另外一种指令集架构则是基于寄存器的指令集架构。具体来说,这两种架构之间的区别:基于栈式架构的特点 设计和实现简单,适用于资源受限的系统; 避开了寄存器的分配难题:使用零地址指令方式分配 指令流中指令大部分是零地址指令,其执行过程依赖于操作栈。指令集更小,编译器容易实现 不需要硬件支持,可移植性更好,更好实现跨平台基于寄存器架构的特点 典型的应用是x86的二进制指令集:比如传统的pc以及Android的Dav...…
-
【笔记】栈
栈参考:https://www.cnblogs.com/ysocean/p/7911910.htmlJava数据结构和算法第二版【第四章栈和队列 97】栈的基本概念栈(stack)又称为堆栈或堆叠,栈作为一个数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。栈是允许在同一端进行插入和删除操...…
-
在Windows环境下的安装RabbitMQ
在Windows环境下的安装RabbitMQ需要保证erlang和RabbitMQ版本对应:https://www.rabbitmq.com/which-erlang.html1.下载erlang原因在于RabbitMQ服务端代码是使用并发式语言erlang编写的下载地址:http://www.erlang.org/downloads,双击.exe文件进行安装安装完成之后创建一个名为ERLANG_HOME的环境变量,其值指向erlang的安装目录,同时将%ERLANG_HOME%\bin加...…
-
红黑树
红黑树二叉查找树二叉搜索树又叫二叉查找树、二叉排序树,我们先看一下典型的二叉搜索树,这样的二叉树有何规则特点呢?二叉搜索树有如下几个特点: 节点的左子树小于节点本身 节点的右子树大于节点本身 左右子树同样为二叉搜索树下图就是一棵典型的二叉搜索树:2-3树红黑树 每个节点非黑即红 根节点总是黑色的 每个叶子节点都是黑色的空节点(NIL) 连接红色节点的两个子节点都是黑色,反之不一定(红黑树不会出现相邻的红色节点) 从任意节点出发,到每个叶子节点的路径中包含相同数量的黑色节点 ...…
-
JVM MXBean
MXBeanMBean是一种JavaBean,MBean往往代表的是JMX中的一种可以被管理的资源。MBean会通过接口定义,给出这些资源的一些特定操作:属性的读和写操作可以被执行的操作关于自己的描述信息在Java 5以后,JVM 中内置了一些特殊的 MBean,称为系统 MXBean (Platform MXBean)。这些系统 MXBean 实时地收集 JVM 实例内存使用,线程调度,类装载等各种信息。JMX 客户端程序可以通过这些系统 MXBean 获取系统运行的状况。JConsol...…
-
详解 equals() 方法和 hashCode() 方法
详解 equals() 方法和 hashCode() 方法Java的基类Object提供了一些方法,其中equals()方法用于判断两个对象是否相等,hashCode()方法用于计算对象的哈希码。equals()和hashCode()都不是final方法,都可以被重写(overwrite).一、equal()方法Object类中equals()方法实现如下:public boolean equals(Object obj) { return (this == obj);}通过该实现可以看...…
-
26. 删除排序数组中的重复项及相似题目解析
26.删除排序数组中的重复项来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目描述:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 示例 1: ...…
-
HashMap相关知识点
什么是哈希表?什么是哈希冲突?HashMap的原理?哈希表是基于数组的一种存储方式,它主要由哈希函数和数组组成。当要存储一个数据的时候,首先用一个函数计算数据的地址,然后再将数据存进指定地址位置的数组里面。这个函数就是哈希函数,而这个数组就是哈希表。哈希表的优势相比于简单的数组以及链表,它能够根据元素本身在第一时间,也就是时间复杂度为0(1)内找到该元素的位置。这使得它在查询和删除、插入上会比数组和链表要快很多。因为他们的时间复杂度为o(n)。哈希冲突哈希冲突是指哈希函数算出来的地址被别的...…
-
二维前缀和
什么是二维前缀和?原文链接:https://blog.csdn.net/qq_34990731/article/details/82807870前缀和,顾名思义就是第几个数之前的数的和,我们用DP来预处理,定义状态DP[i]表示到第i个数(包括它)为止前面所有数的和,从而得到状态转移方程DP[i]=DP[i-1]+num[i],num[i]表示数组中第i个数,这样要计算闭区间i,j(闭区间就是指i<=x<=j,x就是区间里的数)的和就是DP[j]-DP[i-1].如下图:下面我...…
-
Java的基本数据类型四类八种
Java常见的数据类型一.八种基本的数据类型1、整型byte 、short 、int 、long2、浮点型float 、 double3、字符型char4、布尔型boolean二.3种引用类型类class ,就是自己定义的数据结构,还有一些Java类库中的:包括String,date等接口interface数组array八种基本数据类型public class PrimitiveTypeTest { public static void main(String[] args) {...…
-
联邦学习FATE入门与应用实战
FATE简介FATE(Federated AI Technology Enabler)是微众银行基于联邦学习技术推出的全球首个工业级开源架构,它能实现基于同态加密和多方计算的安全计算协议,并支持联邦学习架构与各种机器学习算法的安全计算。项目地址:(https://github.com/FederatedAI/FATE/)KubeFATEFATE的部署模型以及基于Docker-Compose快速部署联邦学习开发实验环境Docker Compose简介Compose是用于定义和运行多容器Doc...…
-
29.Divide Two Integers
29.Divide Two Integers来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/divide-two-integersGiven two integers dividend and divisor, divide two integers without using multiplication, division and mod operator.Return the quotient after dividing div...…
-
Markdown笔记神器Typora图片上传
Typora 是一款简单、高效而且优雅的 Markdown 编辑器,它提供了一种所见即所得的全新的 Markdown 写作体验。它把源码编辑和效果预览两者合二为一,在输入 Markdown 内容的时候即时生成预览效果。Typora 的一切都围绕纯粹的生产效率而设计。一直以来,我是用在线的markdown编译器写博客,记笔记,苦恼于图片上传的烦恼。近期,才注意到Typora,且之前它是不支持图传功能的,只能通过第三方插件实现图片自动上传的功能。但是,喜大普奔的是,它终于支持图床功能,我测试了...…
-
Docker常用命令
Docker常用命令手册 运行Nvidia-docker sudo nvidia-docker run --runtime=nvidia -it -d -p 8888:8888 -p 6006:6006 -v $(pwd):/tf/ tensorflow/tensorflow:latest-gpu-py3-jupyter--rm # 停止后即删除 sudo docker pull tensorflow/tensorflow:latest-gpu-py3-jup...…
-
Pycharm远程调试docker containers
Pycharm远程调试docker containers 环境 Ubuntu 16.04(远程服务器) Windows(本地) docker(远程服务器) openssh-server(远程服务器) Pycharm profession版(本地) Xshell(本地) 原理 本地利用SSH链接远程服务器交互数据,在本地Pycharm上显示远程结果 配置流程 1.在远程服务器创建docker contain...…