自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

RufyHuang的博客

唯有音乐与代码不可辜负!

  • 博客(44)
  • 资源 (9)
  • 收藏
  • 关注

原创 Java异常

文章目录1.Java异常简介2.Java异常架构2.1 Throwable2.2 Error(错误)2.3 Exception(异常)2.4 受检异常与非受检异常3.Java异常关键字4.Java异常处理5.如何选择异常类型6.常见异常处理方式1.Java异常简介Java异常是Java提供的一种识别及响应错误的一致性机制。Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。2.Java异常架构2.1 ThrowableThrowab

2021-03-28 11:17:21 432

原创 Mysql索引优化(上)

文章目录1.全值匹配1.1 key_len计算规则1.2 例子11.3 例子21.4 例子32. 最左前缀法则3. 不在索引列上做任何操作(计算、函数、类型转换)4. 存储引擎不能使用索引中范围条件右边的列5. 尽量使用覆盖索引(索引列包含查询列),减少select *语句6. 在使用(!=或者><)not in ,not exists的时候可能无法使用索引会导致全表扫描7. is null,is not null 一般情况下也无法使用索引8. like以通配符开头8.1 通配符在前8.2 通配

2021-03-27 22:06:53 495 2

原创 Redis缓存三大问题

文章目录1.为什么需要缓存2.缓存穿透2.1 缓存空对象2.2 布隆过滤器3. 缓存击穿4. 缓存雪崩1.为什么需要缓存当在一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读/写操作,这个时候往往不是数据库能够承受的,极其容易造成数据库系统瘫痪,最终导致服务宕机的严重问题。为了克服上述的问题,项目通常会引入NoSQL技术,这是一种基于内存的数据库,并且提供一定的持久化功能。Redis技术就是NoSQL技术中的一种。Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数

2021-03-23 16:47:03 395 1

原创 十七、垃圾回收器

文章目录1.GC分类与性能指标2.不同垃圾回收器概述3.Serial回收器:串行回收4.ParNew回收器:并行回收1.GC分类与性能指标GC分类:评估GC的性能指标:2.不同垃圾回收器概述3.Serial回收器:串行回收4.ParNew回收器:并行回收...

2021-03-20 15:56:52 373

原创 IO流(二):IO流原理及流的分类

文章目录1.流的分类2.IO流体系3.IO流体系1.流的分类按操作数据单位不同分为:字节流(8bit),字符流(16 bit)按数据流的流向不同分为:输入流,输出流按流的角色的不同分为:节点流,处理流1.Java的IO流共涉及40多个类,实际上非常规则,都是从如下4个抽象基类派生的。2.由这四个派生出来的子类名称都是以其父类名作为子类名的后缀。2.IO流体系3.IO流体系...

2021-03-16 12:54:25 149 1

原创 IO流(一):File类的使用

文章目录1.File 类的使用2.File 类常用构造器1.File 类的使用java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关。File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。File对象可以作为参数传递给流的构造器。2.File 类常用构造

2021-03-16 12:53:00 182

原创 十六、垃圾回收相关概念

文章目录1.System.gc()的理解1.System.gc()的理解

2021-03-16 12:51:19 279

原创 十五、垃圾回收相关算法

文章目录1、垃圾标记阶段的算法——引用计数算法1、垃圾标记阶段的算法——引用计数算法

2021-03-16 12:50:38 278

原创 十四、垃圾回收概述

文章目录1.什么是垃圾2.早期垃圾回收行为3.Java垃圾回收机制1.什么是垃圾垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占的内存空间会一直保留到应用程序结束,被保留的空间无法被其他对象使用。甚至可能导致内存溢出。2.早期垃圾回收行为3.Java垃圾回收机制...

2021-03-16 12:49:57 281

原创 十三、StringTable

文章目录1.String的基本特性2.String的内存分配1.String的基本特性2.String的内存分配

2021-03-15 10:13:06 277 1

原创 十二、执行引擎

文章目录1.执行引擎概述1.执行引擎概述

2021-03-15 10:12:47 271 1

原创 十一、直接内存

文章目录1.直接内存概述2.直接内存OOM与内存大小的设置1.直接内存概述2.直接内存OOM与内存大小的设置

2021-03-15 10:12:24 267 1

原创 十、对象的实例化内存布局与访问定位

文章目录1.对象的实例化2. 对象的内存布局3. 对象访问定位1.对象的实例化2. 对象的内存布局代码实例对象:上面代码的实例内存布局:3. 对象访问定位句柄访问:直接指针访问:...

2021-03-15 10:08:21 266

原创 九、方法区

文章目录1.栈、堆、方法区的交互关系2.方法区的理解3.设置方法区大小与OOM4.方法区的内部结构4.1 方法区存储什么4.2 方法区的内部结构4.2 常量池VS运行时常量池5.图示举例方法区的使用6.方法区的演进细节7.方法区的垃圾回收总结1.栈、堆、方法区的交互关系2.方法区的理解方法区在哪里:方法区的基本理解:HotSpot中方法区的演进:3.设置方法区大小与OOM设置方法区内存大小:如何解决这些OOM:4.方法区的内部结构4.1 方法区存储什么4.2 方

2021-03-15 10:08:01 279

原创 八、堆

文章目录1. 堆的核心概述1. 堆的核心概述一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间。》堆内存的大小是可以调节的。堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的。所有的线程共享Java堆,在这里还可以划分线程私有的缓冲区(Thread Local Allocation Buffer,TLAB)。“几乎”所有的对象实例以及数组都应当在运行时分配在堆上。数

2021-03-15 10:07:41 270

原创 六和七、本地方法接口和本地方法栈

文章目录1. 本地方法接口2. 本地方法栈1. 本地方法接口2. 本地方法栈

2021-03-15 10:07:20 255

原创 五、虚拟机栈

文章目录1.虚拟机栈概述1.1 内存中的栈与堆1.2 虚拟机栈的基本内容2.栈的存储结构和运行原理1.虚拟机栈概述1.1 内存中的栈与堆栈是运行时的单位,而堆是存储的单位。 即:栈解决程序的运行问题,即程序如何执行,或者说如何处理数据。堆解决的是数据存储的问题,即数据怎么放、放哪儿。1.2 虚拟机栈的基本内容Java虚拟机栈是什么?Java虚拟机栈(Java Virtual Machine Stack)。每个线程在创建时都会创建一个虚拟机栈,其内部保存一个个的栈帧(Stack Fram

2021-03-15 10:06:44 345

原创 四、程序计数器(PC寄存器)

文章目录1.PC寄存器概述2.PC寄存器的使用举例3.解决PC寄存器两个面试问题1.PC寄存器概述PC寄存器作用:PC寄存器用来存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令。PC寄存器介绍:它是一块很小的内存空间,几乎可以忽略不记。也是运行速度最快的存储区域。在JVM规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致。任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的Jav

2021-03-15 10:06:14 1091

原创 三、运行时数据区概述及线程

文章目录1.概述2.线程2.1 JVM系统线程1.概述运行时数据区内部结构:运行时数据区的创建和销毁:2.线程2.1 JVM系统线程

2021-03-15 10:05:43 257

原创 二、类加载子系统

文章目录1.内存结构概述2.类加载器与类的加载过程2.1 类加载器子系统作用2.2 类加载器ClassLoader角色2.3 类加载器过程类的加载过程一:Loading类的加载过程二:Linking3.类加载器分类4.ClassLoader的使用说明5.双亲委派机制6.其他1.内存结构概述2.类加载器与类的加载过程2.1 类加载器子系统作用类加载器子系统负责从文件系统或者网络中加载Class文件,Class文件在文件开头有特定的文件标识。ClassLoader只负责class文件的

2021-03-06 23:11:00 86

原创 一、JVM与Java体系结构

文章目录1. 虚拟机与Java虚拟机2. JVM的位置3. Java的体系结构3. JVM整体结构4. Java代码执行流程5. JVM的架构模型1. 虚拟机与Java虚拟机虚拟机所谓虚拟机(Virtual Machine),就是一台虚拟的计算机。它是一款软件,用来执行一系列虚拟的计算机指令。大体上,虚拟机可以分为系统虚拟机和程序虚拟机。》 我们常用的Mware,Visual Box就属于系统虚拟机,它们完全是对物理计算机的仿真,提供了一个可运行完整操作系统的软件平台。》 程序虚拟机的

2021-02-22 18:50:59 179

原创 集合(三):Set接口

文章目录1.Set接口概述2.Set实现类之一:HashSet3.HashSet的子类:LinkedHashSet4.Set实现类之二:TreeSet1.Set接口概述Set接口是Collection的子接口,set接口没有提供额外的方法。Set集合不允许包含相同的元素,如果试图把两个相同元素加入同一个Set集合中,则添加操作失败。Set判断两个对象是否相同不是使用==运算符,而是根据equals()方法。2.Set实现类之一:HashSetHashSet是Set接口的典型实现,大

2021-02-21 21:55:07 340

原创 集合(五):Collections工具类

文章目录1. Collections工具类2.Collections常用方法1. Collections工具类Collections是一个操作Set、List和Map等集合的工具类。Collectons中提供了一系列静态的方法对集合元素进行排序、查询、修改等操作,还提供了对集合对象设置不可变、对集合对象实现同步控制等方法。排序操作:(均为static方法)》reverse(List): 反转List中元素的顺序。》shuffle(List): 对List 集合元素进行随机排序。》sort

2021-02-03 22:03:28 123

原创 集合(四):Map接口

文章目录1.Map的实现类的结构2.HashMap的底层实现原理(以JDK7为说明)1.Map的实现类的结构Map: 双列数据,存储key-value对的数据。HashMap: 作为Map的主要实现类;线程不安全的,效率高;可以存储null的key和value.》LinkedHashMap: 保证在遍历map元素时,可以按照添加的顺序实现遍历. 原因:在原有的HashMap底层基础上,添加了一对指针,指向前一个和后一个元素. 对于频繁的遍历操作,此类执行效率高于HashMap.TreeM

2021-02-03 22:03:07 119

原创 集合(二):List接口

文章目录1.List接口概述2.ArrayList的源码分析3.LinkedList的源码分析4.List接口方法1.List接口概述鉴于Java中数组用来存储数据的局限性,我们通常使用List替代数组。List集合类中元素有序、且可重复,集合中的每个元素都有对应的顺序索引。List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。JDK API中List接口的实现类常用的有:ArrayList、LinkecList和Vector。ArrayLis

2021-02-02 15:49:53 278

原创 集合(一):Java集合框架概述

文章目录1. 数组与集合集合框架1. 数组与集合一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用Array存储对象方面具有一些弊端,而Java集合就像一个容器,可以动态地把多个对象的引用放入容器中。》数组在内存存储方面的特点:    - 数组初始化以后,长度就确定了。    - 数组声明的类型,就决定了进行元素初始化时的类型。比如:int[ ] arr;》数组在存储方面的弊端:&nb

2021-02-02 15:49:35 291 1

原创 多线程(六):JDK5.0新增的线程创建方式

文章目录1. 新增方式一:实现Callable接口1. 新增方式一:实现Callable接口与使用Runnable相比,Callable功能更强大些想比run()方法,可以有返回值。方法可以抛出异常。支持泛型的返回值。需要借助FutureTask类,比如获取返回结果。Future接口可以对具体Runnable、Callable任务的执行结果进行取消、查询是否完成、获取结果等。FutureTask是Future接口的唯一实现类。FutureTask同时实现了Runna

2021-02-02 15:48:59 283

原创 多线程(五):线程的通信

文章目录1. 线程通信的例子2. 线程通信的应用——生产者消费者问题1. 线程通信的例子例题:使用两个线程打印1-100。线程1,线程2交替打印。/** * 线程通信的例子:使用两个线程打印1-100.线程1,线程2,交替打印。 * */class Number implements Runnable{ private int number=1; @Override public void run() { while (true){

2021-02-02 15:48:26 72

原创 多线程(四):线程的同步

文章目录1.经典线程同步例子——卖票1.经典线程同步例子——卖票理想状态下卖票极端状态下卖票

2021-02-02 15:47:59 141

原创 多线程(三):线程的生命周期

文章目录线程的生命周期线程的生命周期JDK中用Thread.State类定义了线程的几种状态要想实现多线程,必须在主线程中创建新的线程对象。Java语言使用Thread类及其子类的对象来表示线程,在它的一个完整的生命周期中通常要经历如下五种状态: 新建:当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建状态。 就绪:处于新建状态的线程被start()后,将进入线程队列等待CPU时间片,此时它已具备了运行的条件,只是没分配到CPU资源。 运行:当就绪的线程被调度并获得C

2021-02-02 15:47:23 119

原创 多线程(二):线程的创建和使用

文章目录

2021-02-02 15:46:55 126

原创 多线程(一):程序、进程、线程

文章目录1、基本概念:程序、进程、线程2、单核CPU和多核CPU3、使用多线程的优点1、基本概念:程序、进程、线程程序(program)程序是为了完成特定的任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。进程(process)进程是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程。——生命周期如:运行中的QQ,运行中的MP3播放器。程序是 静态的,进程是动态的。进程作为资源分配的单位,系统在运行时会为每个进程

2021-02-02 15:46:23 105

原创 Windows10系统下载和安装Mysql

文章目录1.MySQL服务器下载2.MySQL安装包安装(自动版安装)3.MySQL环境变量配置1.MySQL服务器下载官网下载地址点击:Mysql服务器下载地址:https://dev.mysql.com/downloads/mysql/注意: MySQL的安装方式有两种,所以对应的下载方式也有两种,以下介绍两种的区别。2.MySQL安装包安装(自动版安装)1.双击打开下载好的安装包(mysql-installer-community-版本号.msi)2.接下来基本一直Ne

2021-02-02 15:43:55 53

原创 Mysql必知必会笔记

选择数据库USE 数据库名;查看有哪些数据库SHOW DATABASES;查看数据库内的表的列表SHOW TABLES;查看表中的列的列表1.SHOW COLUMNS FROM 表名;2.DESCRIBE 表名;用来显示授予用户(所有用户或特定用户)的安全权限SHOW GRANTS;查询第一行或前几行(查询指定几行)//注意:有行0的存在//查询前5行SELECT * FORM 表名 LIMIT 5; //查询从第4行开始的5行.

2021-02-02 15:42:29 128 1

原创 Ubuntu系统home目录空间不足,将其他硬盘挂载到home目录

1、查看磁盘信息sudo fdisk -l查看分区的UUID命令:sudo blkid根据上面的图,可以知道/dev/sda7里装的是Ubuntu系统(因为第二幅图里显示文件系统类型是ext4),而/dev/sda5和/dev/sda6都是普通磁盘,可以挂载到/home下的子目录里,本文以挂载/dev/sda5为例子。2、创建挂载点# /home/用户名 cd /home/hrfcd /home/hrf# mkdir NewDiskmkdir NewDisk注:/home/h

2020-11-19 22:05:05 8702 4

原创 JDK和IntelliJ IDEA 的安装、配置与使用

文章目录一、JDK安装与环境配置1.下载JDK并安装:2.环境变量配置二、IntelliJ IDEA 的安装、配置及使用1.下载IDEA并安装:2.配置及使用一、JDK安装与环境配置1.下载JDK并安装:网址:https://www.oracle.com/java/technologies/javase-downloads.html2.环境变量配置完整配置如下: “我的电脑”-右键-“属性”-(左侧)高级系统设置-(弹窗右下角)环境变量配置,窗口上方是用户变量,下方是系统变量,以后把你所有

2020-07-21 21:18:49 751

原创 python -m visdom.server报[Errno 98] Address already in use错误解决办法

当输入:python3 -m visdom.server的时候,会报错:“address already in use”。原因是地址被占用。解决办法如下:1.先在命令行中输入:lsof -i tcp:8097,其中8097是端口号。2.用以下命令结束这个pid:kill -9 # 是被占用的3.这时候再输入:lsof -i tcp:8097,就没有内容返回了。4.这时候再输入:python3 -m visdom.server,就没有报错,可以打开网页。...

2020-06-05 21:45:08 2156 2

原创 pytorch下验证是否安装了cuda和cuDNN

进入python环境,然后输入以下代码测试:#判断是否安装了cudaimport torchprint(torch.cuda.is_available()) #返回True则说明已经安装了cuda#判断是否安装了cuDNNfrom torch.backends import cudnn print(cudnn.is_available()) #返回True则说明已经安装了cuDNN...

2020-06-05 16:00:31 13848 1

原创 向上取整ceil(),向下取整floor()

向上取整ceil(): ceil(x)函数返回大于等于x的最小double类型整数 例如:ceil(3.8) 返回 4.0向下取整floor(): floor(x) 函数返回小于等于x的最大double类型整数 例如:floor(3.8) 返回 3.0...

2019-09-12 20:57:59 2865

原创 有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。

有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。#include&amp;lt;stdio.h&amp;gt; #include&amp;lt;malloc.h&amp;gt;int main(){ char *a,*b; int i,n,m,t; scanf(&quot;%d&quot;,&amp;amp;n); //输入一个整数n a=(char *)mall

2019-01-14 17:16:06 12316 3

谷歌划词翻译插件.rar

该插件为谷歌浏览器的插件,可以在谷歌浏览器里面进行划词翻译,安装非常方便,翻译效果很好,非常适合在网页上阅读外文文献。

2020-04-09

基于Web的学校新闻发布系统

本资源与本人之前上传的 毕业设计:基于Web的学校新闻发布系统

2019-02-21

dexpot虚拟桌面应用中文版

dexpot虚拟桌面应用中文版

2017-08-30

Axure RP Pro 7.0中文破解免安装版

Axure RP Pro 7.0中文破解免安装版

2017-08-14

大数据学习资料包

大数据学习资料包

2017-07-28

后台管理系统模板

5套免费后台管理系统模板

2017-07-23

操作系统ppt

操作系统

2017-06-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除