自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

转载 JVM-类加载机制

1. 类加载的时机 ·隐式加载 new 创建类的实例, · 显式加载:loaderClass,forName等 · 访问类的静态变量,或者为静态变量赋值 · 调用类的静态方法 · 使用反射方式创建某个类或者接口对象的Class对象。 · 初始化某个类的子类 · 直接使用java.exe命令来运行某个主类2. 类加载的过程java编译器将 .java 文件...

2021-07-27 11:30:35 91

原创 JVM-内存管理02-(垃圾回收机制)

垃圾回收机制Java虚拟机JVM提供了一种名为垃圾回收(GC)的机制,来帮助程序员实现自动的动态内存管理。其主要完成三件事: 1)判断哪些垃圾需要回收? 2)什么时候回收? 3)如何回收?显而易见的是,程序计数器、虚拟机方法栈、本地方法栈都是线程私有的,其内存的分配与回收随线程的创建与结束而实现,是确定的。而Java堆与方法区则是不确定的,只有在程序实际运行时,才能知道有多少对象被创建了,这部分内存的分配与回收是动...

2021-07-21 10:45:32 123

原创 JVM-内存管理01-(运行时数据区域)

目录动态内存分配1. 程序计数器 2. Java虚拟机栈3. 本地方法栈4. Java堆5. 方法区6. 运行时常量池对象的创建与内存布局1. 对象的创建2. 对象的内存布局3. 对象的访问定位Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 ——《深入理解Java虚拟机》 与C++不同的是,Java虚拟机提供了内存自动管理机制,...

2021-07-19 11:41:43 122

原创 Java-01 浅拷贝/深拷贝

1. Java中的赋值 在Java中对于8种基本类型变量的赋值是通过拷贝值的形式实现的(即将原有变量的值拷贝到新变量中,两者独立,互不干扰)。 而Java对于对象的拷贝一共有三种实现方式:分别是1)直接赋值、2)浅拷贝、3)深拷贝。1.1 直接赋值 1)概述: 基本类型变量的直接赋值就是值拷贝,这里不再赘述。 对于引用类型变量的直接赋值时发生的是引用的拷贝,即将原引用(对象的内存地址...

2021-07-16 12:12:24 171

原创 Java-04 集合框架3-Map

1. Map接口 Map接口是Map体系的根接口,定义了键值对的容器;Map接口允许存储 无序、无下标、键不可重复,值可重复的 键值对。1)Map接口的实现类: HashMap:基于哈希表实现的键值对存储结构; TreeMap:基于红黑树实现的键值对存储结构。注意:Map接口未实现任何接口。 2)Map接口的常用方法: V put(K key,...

2021-07-16 10:14:30 106

原创 Java-04 集合框架2-Collection

1. Collection接口 Collection接口是Collection体系的根接口,定义了单值元素的容器,其下有List、Set、Queue三个重要的接口。 · List:列表接口,存储有序、允许重复的、有下标的元素; · Set:集合接口,存储无序、不允许重复、无下标的元素; · Queue:队列接口,存储有序的、无下标的、允许重复的元素。 1)Colle...

2021-07-15 15:28:19 83

原创 Java-04 集合框架1-Iterator/Iterable

目录1.Iterator 与 Iterable接口的关系2.Iterator接口3.Iterable接口4. Java的三种遍历方式5. 在集合上实现自定义迭代器1.Iterator 与 Iterable接口的关系Iterator是迭代器接口,可以用于迭代容器中的元素。Iterable是 Java 容器的最顶级的接口之一,该接口的作用是使容器具备迭代元素的功能(简而言之,就是Iterable在封装了Iterator的基础上,还提供了...

2021-07-13 11:18:10 124

原创 剑指offer-Day05(28/35)

JZ28-数组中出现次数超过一般的数字: 题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。你可以假设数组是非空的,并且给定的数组总是存在多数元素。1<=数组长度<=50000 示例: input:[1,2,3,2,2,2,5,4,2] ...

2021-07-12 22:21:54 67

原创 Java-03 异常

目录1. 异常概述2. 异常处理3. finally子句(try ··· catch)4. 自定义异常1. 异常概述 1)定义:Java中提供了异常处理机制,通过 JVM 将异常信息打印到控制台,以便处理程序在执行过程中发生的不正常的情况(异常)。 异常机制的作用:提高了程序的健壮性。 2)存在形式: 异常在Java中以类的形式存在,每一个异常...

2021-07-12 11:13:31 103

原创 Java-02 面向对象5

1. IO流 1)概述:I 即 Input/read;O 即 Output/write。IO流主要是用于实现数据(文件)的读写(以二进制的形式)。 2)分类: · 按照流的方向(以内存为参照物) 往内存中去的称为Input(Read); 从内存中出来称为Output(Write); · 按照一次提取的是字符...

2021-07-11 15:29:27 88

原创 Java-02 面向对象4

1.抽象类 1)定义:对象(实例)是现实世界中存在的,每个对象的属性与行为有所不同;类是对具有共性特征的对象抽象的结果,其保留了对象的共性特点,是实例创建的通用模板;抽象类是基于类与类之间的共性特征,将这些具有共性特征的类再进一步抽象形成了抽象类。抽象类的下层是类,类是不存在的所以抽象类不可以创建对象;类的下层是对象,对象是现实世界存在的,所以类可以创建对象。 2)语法格式(abstract关键字修饰...

2021-07-07 17:56:36 69

原创 剑指offer-Day04(01/06)

JZ6-旋转数组的最小数字: 题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 示例: input:[3,4,5,1,2] output:1 ...

2021-07-07 13:38:54 60

原创 Java-02 面向对象3

1. Object类 Java作为单继承语言,Object类是所有的类的祖先,所有类在没有指定继承父类的情况下都是默认继承Object类中的方法。Object类有12个成员方法,分别是(省略修饰符)String toString()、Object clone()、boolean equals(Object)、void finalize()、getClass() 、int hashCode()、void notify()、void notifyAll()、、 void w...

2021-07-06 13:47:05 91

原创 剑指offer-Day03(13/51)

JZ37-数字在升序数组中出现的次数: 题目描述:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * ... * A[n-1],B[n-1] = A[0] * A[1] * ... * A[n-2];)对于A长度为1的情...

2021-07-02 21:26:48 71

原创 Java-02 面向对象2

1. this关键字 this:Java中的关键字,代表调用当前类中实例变量与实例方法的那个对象(this即对象本身)。this中存储的是对象的引用(堆内存中的地址),可以将this理解为指向对象本身的指针。 this的用法(3种): 1)直接引用(多用于以对象作为参数传递): this代表对象本身,当考虑到需要传递当前对象时,可以使用this。/*** @description E...

2021-07-01 14:46:21 121

原创 Java-02 面向对象1

1. 面向对象面向对象和面向过程的区别:面向过程:将问题分解成步骤,然后按照步骤实现函数,执行时依次调用函数即可。数据和对数据的操作是分离的。面向对象:将问题分解成对象,描述事物在解决问题的步骤中的行为。对象与属性和行为是关联的。面向对象的三大特性是:封装、继承、多态。 优缺点:面向过程的优点是性能高,适用于高性能要求的场景;缺点是不容易维护、复用和扩展。...

2021-06-30 12:15:45 63

原创 剑指offer-Day02(37/42)

JZ42-和为S的两个数字: 题目描述:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,返回两个数的乘积最小的,如果无法找出这样的数字,返回一个空数组即可。返回值描述:对应每个测试案例,输出两个数,小的先输出。 示例: input:[1,2,4,7,11,15],15 ...

2021-06-29 22:02:43 76

原创 剑指offer-Day01(7\50)

JZ7-斐波那契数列数列: 题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n≤39 示例: input:4 output:3 题解思路: 从斐波那契数列的特性易知:;因此对于任何的结果 ,都需要先求解与的结果,对于与也...

2021-06-29 20:03:56 56

原创 数据结构实践1.基础

数据结构基础1. 基础概念:  1)数据:能够输入计算机并被计算机处理的符号集;  2)数据元素:数据的基本组成单位,在计算机中通常作为一个整体考虑;  3)数据项:组成数据元素的、具有独立含义的、不可分割的、最小单位;  4)数据对象:具有相同性质的数据元素的集合;  5)数据结构:相互之间具有一种或多种特定关系的数据元素的集合。即数据结构是带有“结构”的数据元素的集合,“结构”即是数据元素之间的相互关系。通常包括:  a. 数据元素之间的相互关系(逻辑结构);  b. 数据元素及其相互关

2021-03-19 17:43:18 361

原创 数据结构实践.线性表_2

线性表的顺序表示与实现:顺序表示顺序存储:将逻辑上相邻的数据元素存储到物理上也相邻的存储单元,即逻辑上相邻,物理上也相邻。基地址:顺序表中第一个元素 a1a_{1}a1​ 的存储位置,由于线性表的顺序存储结构占用的是一片连续存储空间,因此知道首元素的地址就可以通过元素下标访问任意元素。随机访问:又称随机存取,指访问线性表中任意元素的时间相同,线性表就是顺序存储。特点与实现顺序表中的数据元素具有以下特点:   a. 地址连续;   b. 依次存放;   c. 随机存取;   d.

2021-03-16 11:47:27 327

原创 数据结构实践.线性表_1

线性表基础:定义线性表:指具有相同特征的一组数据元素的有限序列;其中数据元素之间的逻辑关系为线性结构。(a1,a2,a3,...ai−1,ai,ai+1,...,an−1,an)(a_{1},a_{2},a_{3},...a_{i-1},a_{i},a_{i+1},...,a_{n-1},a_{n})(a1​,a2​,a3​,...ai−1​,ai​,ai+1​,...,an−1​,an​)如线性表 aaa 所示:  aia_{i}ai​ 为数据元素,其中 iii 为元素下标,指示了元素在线性

2021-03-15 10:29:05 209

空空如也

空空如也

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

TA关注的人

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