自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 类加载子系统

类加载子系统概述完整图如下如果自己想手写一个java虚拟机的话,主要考虑拿些结构呢?类加载器执行引擎类加载子系统的作用类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串常量和数字常量。class file存在于

2021-08-28 11:08:24 73

原创 常用类的笔记

Object类大家都知道object是所有类的父类,任何类都默认继承Object.理论上Object类是所有类的父类,即直接或间接地继承java.lang.Object类.由于所有类都继承在Object类,因此省略了extends Object关键字.该类中主要由以下方法:toString()getClass()equalsclone()finalize其中toString(),getClass(),equals是其中最重要的方法.演示:查看Object类源码注意:Object

2021-08-05 16:17:20 210

原创 GC垃圾收集器

java堆内存被划分为新生代和老年代两部分,新生代主要使用复制和标记-清除垃圾回收算法;老年代主要使用标记-整理垃圾回收算法,因此java虚拟机中针对新生代和老年代分别提供了多种不同的垃圾收集器,JDK1.6中Sun HotSpot虚拟机垃圾收集器如下:1.Serial垃圾收集器(单线程,复制算法)Serial(英文连续)是最基本垃圾收集器,使用复制算法,曾经是JDK1.3.1 之前新生代唯一的垃圾收集器。Serial 是一个单线程的收集器,它不但只会使用一个 CPU 或一条线程去完成垃圾收集工作,并且

2021-08-03 14:59:48 92

原创 异常的笔记

java异常分类及处理1.概念如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常处理器。2.异常分类Throwable是java语言中所以错误或异常的超类,下一层分为Error和ExceptionError1.Error类是指java运行时系统内部错误和资源耗尽错误。应用程序不会抛出该类对象。如果出现了这样的错误,

2021-08-03 10:48:21 63

原创 堆的含义以及堆结构

堆结构1)堆结构就是用数组实现的完全二叉树结构2)完全二叉树中如果每棵子树的最大值都在顶部就是大根堆3)完全二叉树中如果每棵子树的最小值都在顶部就是小根堆4)堆结构的插入和调整操作5)堆结构的增大和减少6)优先级队列结构,就是堆结构堆排序1.先让整个数组都变成大根堆结构,建立堆的过程1)从上往下的方法,时间复杂度为O(NlogN)2) 从下到上的方法,时间复杂度为O(N)2.把堆的最大值和堆末尾的值交换,然后减少堆的大小之后,再去调整堆,一直周而复始,时间复杂度为O(NlogN)3

2021-07-02 21:21:13 2212

原创 归并排序及其拓展问题小和问题

归并排序整体是递归,左边排好序+右边排好序+merge让整体有序package class03;public class Code01_MergeSort { public static void mergeSort(int[] arr) { if (arr == null || arr.length < 2) { return; } process(arr, 0, arr.length - 1); }

2021-07-01 16:10:07 121

原创 求数组的最大值用递归的实现

求数组arr[L…R]中的最大值,用递归的实现1)将L,R分成左右两半,左:[L…Mid]右[Mid+1,R]2)左部分求最大值,右部分求最大值3)[L…R]范围上的最大值,是max{左部分的最大值,右部分的最大值}package class02;public class Code05_GetMax { //求arr中的最大值 public static int getMax(int[] arr){ return process(arr,0,arr.length-1); }

2021-06-29 21:51:24 130

原创 栈和队列算法有关的常见

栈和队列逻辑概念栈:数据先进后出队列:数据先进先出栈和队列的实际实现双向链表实现代码实现:package class02;import java.util.LinkedList;import java.util.Queue;import java.util.Stack;public class Code03_DoubleEndsQueueToStackAndQueue { public static class Node<T> { public

2021-06-29 20:55:52 65

原创 单向链表和双向链表最简单的练习

链表相关的问题几乎都是coding问题1)单链表和双链表如何反转2)把给定值都删除单链表的反转初始:反转后:基本思路:先申请两个节点类型的pre,next,开始把它俩都设置为空,进入一个循环条件,head不为空时循环不能终止,首先让next指向head的next,意思就是第二个节点,然后head的next指向pre,让pre接住head,依次这样循环。public static Node reverseLinkedList(Node head){ Node pre = nu

2021-06-29 16:15:09 76

原创 Mybatis框架狂神笔记

Mybatis环境说明:jdk8+MySQL 5.7maven 3.6IDEA学习前需要掌握:JDBCMySQLjava基础MavenJunit1.Mybatis简介1.1 什么是MybatisMybatis是一款优秀的持久层框架Mybatis避免几乎所有的JDBC代码和手动设置参数以及获取结果集的过程Mybatis可以使用简单的XML或者注解来配置和映射原生信息,将接口和java的实体类映射成数据库中的记录。Mybatis本是apche的一个开源项目ibati

2021-06-25 16:02:15 237

原创 狂神笔记 注解与反射

一、注解1.概念Java 注解是在 JDK5 时引入的新特性,注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便地使用这些数据。注解类型定义指定了一种新的类型,一种特殊的接口类型。 在关键词 interface 前加 @ 符号也就是用 @interface 来区分注解的定义和普通的接口声明。目前大部分框架(如 Spring Boot 等)都通过使用注解简化了代码并提高的编码效率。2.作用提供信息给编译器: 编译器可以利用注解来探测错误和警告信息,如

2021-06-06 10:36:02 212

原创 Java多线程详解 狂神笔记

一 、线程简介多任务:同时做多件事,边看电视变吃饭边听歌(但是实际上是分时进行的,大脑的处理速度很快)多线程:多条线路同时执行,比如打游戏你可以和你朋友同时开黑。普通方法调用:1.调用run(),此时只有主线程一条依次执行路径2.调用start(),开启多线程,多条执行路径,主线程与子线程并行交替执行。在操作系统中运行的程序就是进程,我们平时的游戏就说典型的例子。进程与线程程序就是数据和指令的有序集合,其本身没有任何运行的含义,是静态的,而进程是动态的的程序。而进程是执行程序的一

2021-06-03 17:00:13 192 1

原创 JDK,JRE与JVM的联系

JDK:Java Development Kit Java开发工具为开发人员使用,它提供了编译,运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境,以及常用的Java类库。JRE: Jave Runtime Environment Java 运行环境,运行Java程序,JVM+Java语言的核心类库,用于解释执行Java的字节码文件。JVM:Java Virtual Machine Java虚拟机,时JER的一部分,是整个Java实现跨平台的最核心的部分,负责解释执行字节码文件

2021-05-29 19:42:25 93 2

空空如也

空空如也

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

TA关注的人

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