自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 【jvm学习15】全面分析一个类的class文件(一篇就够了)

文章目录1 magic(魔数) && version(版本)2 constant_pool(常量池) Class文件包含了java虚拟机指令集和符号表以及其他信息。 下面我们分析这个类的字节码文件: public class MyTest2 { String str = &...

2019-12-31 20:57:09 83 1

原创 【数据结构29】斐波那契查找算法

文章目录1. 斐波那契查找算法介绍2. 代码实现 1. 斐波那契查找算法介绍 对于斐波那契数列:1、1、2、3、5、8、13、21、34、55、89……(也可以从0开始),前后两个数字的比值随着数列的增加,越来越接近黄金比值0.618。比如这里的89,把它想象成整个有序表的元素个数,而89是由...

2019-12-31 16:26:40 70 0

原创 【数据结构28】插值查找

1. 插值查找介绍 2. 代码实现 public class InsertValseSearch { public static void main(String[] args) { int [] arr = new int[100]; for(int i...

2019-12-31 14:27:05 55 0

原创 【数据结构27】二分查找

文章目录1. 二分查找介绍2. 代码实现3. 补充 1. 二分查找介绍 使用二分查找需要数组必须是有序的 2. 代码实现 public class binarySearch { public static void main(String[] args) { int[]...

2019-12-31 13:48:43 34 0

原创 【数据结构26】线性查找

1. 常用查找算法 2. 线性查找算法 3.代码实现 public class SeqSearch { public static void main(String[] args) { int[] arr = {1,6,3,645,42,31}; int...

2019-12-31 13:14:13 86 0

原创 【数据结构25】基数排序

文章目录1. 基数排序2. 基数排序思想3. 代码实现 1. 基数排序 2. 基数排序思想 3. 代码实现 分析算法过程: public class radixSort { public static void main(String[] args) { int a...

2019-12-31 12:50:51 39 0

原创 【数据结构24】归并排序

1. 归并排序介绍 2. 归并排序思想 3. 代码实现 public class MargetSort { public static void main(String[] args) { int[] arr = {8,4,5,7,1,3,6,2}; ...

2019-12-31 10:53:54 33 0

原创 【数据结构23】快速排序

1 快速排序介绍 随便选择一个数作为基准: 以0为基准: 2 代码实现 public class QuickSort { public static void main(String[] args) { int[] arr = {-9,78,0,23,-567,70}...

2019-12-30 11:45:44 68 0

原创 【数据结构22】希尔排序

1. 希尔排序介绍 2. 希尔排序思路 3. 代码实现 3.1 交换法 希尔排序推导过程: public class ShellSort { public static void main(String[] args) { int[] arr = {8,9,1,7,...

2019-12-29 17:38:59 56 0

原创 【数据结构21】插入排序

1. 插入排序介绍 2. 插入排序思想 3. 代码实现 插入排序推导过程: public class InsertSort { public static void main(String[] args) { int[] arr = {101,34,119,1}; ...

2019-12-29 16:25:18 38 0

原创 【数据结构20】选择排序

文章目录1. 选择排序介绍2. 选择排序思路分析3. 选择排序代码 1. 选择排序介绍 2. 选择排序思路分析 3. 选择排序代码 排序算法推导过程: public class SelectSrot { public static void main(String[] args) ...

2019-12-29 15:19:45 89 0

原创 【数据结构19】冒泡排序

文章目录1. 冒泡排序介绍2. 冒泡排序规则3. 基本冒泡排序实例 1. 冒泡排序介绍 2. 冒泡排序规则 3. 基本冒泡排序实例 冒泡排序原理: ublic class BubbleSort { public static void main(String[] args) { ...

2019-12-29 13:34:05 41 0

原创 【数据结构18】时间复杂度

文章目录1. 排序算法介绍2. 度量一个程序执行时间的两种方法3. 算法的时间复杂度3.1 常数项可以忽略3.2 低次项可以忽略3.3 对于二次函数,系数可以忽略3.4 时间复杂度概念3.5 常见的时间复杂度4. 常见的时间复杂度举例5. 平均时间复杂度和最坏时间复杂度 1. 排序算法介绍 2....

2019-12-28 16:32:33 48 0

原创 【数据结构17】递归--八皇后问题

文章目录1. 八皇后问题2. 八皇后问题分析3. 代码实现 1. 八皇后问题 2. 八皇后问题分析 3. 代码实现 public class Queue8 { //定义一个max,表示共有对少个皇后 int max = 8; //定义数组array,保存皇后放置位置的结...

2019-12-28 15:20:47 71 0

原创 【数据结构16】递归-迷宫问题

1. 迷宫问题 2. 代码实现 public class MiGong { public static void main(String[] args) { //创建一个二维数组,模拟迷宫 int[][] map = new int[8][7]; ...

2019-12-28 11:00:38 122 0

原创 【数据结构15】递归

1.递归调用机制

2019-12-28 09:12:41 35 0

原创 【jvm学习14】字节码结构(方法表,附加属性表)

文章目录12 方法个数13 方法集合13.1 分析第一个方法1 方法访问标志2 方法名索引 & 描述符索引3 属性计数器4 属性集合4.1 属性名称索引4.2 属性长度4.3 属性信息13.2 分析第二个方法13.3 分析第三个方法13.4 分析第四个方法 12 方法个数 13 方法集合...

2019-12-27 22:10:38 119 0

原创 【jvm学习13】字节码结构(类访问标志,类索引,父类索引,接口计数器,接口集合,字段计数器,字段集合)

0. java字节码结构 类型 名称 说明 长度 u4 magic 魔数,识别Class文件格式 4个字节 u2 minor_version 次版本号 2个字节 u2 major_version 主版本号 2个字节 u2 constant_pool_count 常量池个...

2019-12-27 20:18:36 71 0

原创 【数据结构14】中缀表达式转后缀表达式并计算表达式结果

文章目录1.具体步骤2. 思路分析3. 代码分析 1.具体步骤 2. 思路分析 将中缀表达式转换为后缀表达式:1+((2+3)*4)-5 3. 代码分析 public class PolanNotation { public static void main(String[] args...

2019-12-27 17:32:23 117 0

原创 【数据结构13】逆波兰计算器

文章目录1. 波兰表达式(前缀表达式)2. 中缀表达式3. 逆波兰表达式(后缀表达式)4. 逆波兰计算器 1. 波兰表达式(前缀表达式) 2. 中缀表达式 3. 逆波兰表达式(后缀表达式) 4. 逆波兰计算器 public class PolanNotation { publi...

2019-12-27 15:35:39 79 0

原创 【数据结构12】使用栈实现综合计算器(中缀表达式)

1.使用栈实现综合计算器

2019-12-27 14:23:55 118 0

原创 【数据结构11】使用数组模拟栈

文章目录1. 栈的介绍2. 使用数组来模拟栈 1. 栈的介绍 入栈时,栈底不动,栈顶动: 出栈时,栈底不动,栈顶动: 栈的应用场景: 2. 使用数组来模拟栈 import java.util.Scanner; public class ArrayStackDemo { publi...

2019-12-26 10:36:42 196 0

原创 【数据结构10】单向环形链表

1.单向环形链表的应用场景: 2.环形单链表的创建与遍历: public class Josepfu { public static void main(String[] args) { CiecleSingleLinkedList ciecleSingleLinked...

2019-12-26 09:31:59 51 0

原创 【jvm学习12】字节码结构(魔数,版本信息,常量池数量,常量池表)

文章目录1.魔数2.版本信息3.常量池4.常量池的总体结构5.jvm中的描述符6. 常量池常量结构表 public class MyTest1 { private int a=1; public MyTest1() { } public int getA() { ...

2019-12-25 20:57:29 196 0

原创 【jvm学习11】jvm描述符

jvm中的描述符 在jvm规范中,每个变量/字段都有描述信息,描述信息主要的作用是描述字段的数据类型,方法的参数列表(包括数量,类型与顺序)与返回值。 基本数据类型和代表无返回值的void类型都用一个大写字符来表示,而对象类型用字符L加对象的全限定类名来表示。 为了压缩字节码文件的体积,对于...

2019-12-25 19:40:30 245 0

原创 【数据结构09】双向链表(增删该查)

public class DoubleLinkedListDemo { public static void main(String[] args) { //先创建几个节点 HeroNode heroNode1 = new HeroNode(1,"...

2019-12-25 15:36:49 139 0

原创 【数据结构08】从尾到头打印单链表(百度面试题)

//方法:利用栈这个数据结构将各个节点压如到栈中,利用栈的现金后出的特点,实现逆序打印 public static void reversePrint(HeroNode head){ if(head.next==null){ return; ...

2019-12-25 14:36:00 58 0

原创 【数据结构07】单链表的反转(腾讯面试题)

实现单链表的反转 真的是要被这题搞死了,这个问题看了几个小时,刚开始怎么都理解不了,还是很有难度的题目 整体分析: 代码实现: //方法:将单链表进行反转 public static void reverseList(HeroNode head){ //如果当亲链表为空或者只有一个节点...

2019-12-25 14:01:12 165 0

原创 【数据结构06】求单链表中有效节点的个数以及倒数第k个节点(新浪面试题)

下面的习题是基于上个博客做的: 1. 求单链表中有效节点的个数 在测试类中: //方法:获取到单链表的节点的个数(如果是带头节点的链表,需要不统计头结点) public static int getLength(HeroNode head){ // if(head.ne...

2019-12-25 13:11:36 188 0

原创 javap命令的使用

1.javap的基本用法: javap是JDK自带的反汇编器,可以查看java编译器为我们生成的字节码。通过它,我们可以对照源代码和字节码,从而了解很多编译器内部的工作。 2.语法:   javap [ 命令选项 ] class. . .   javap 命令用于解析类文件。其输出取决于所用的选项...

2019-12-24 20:31:52 143 0

原创 关于学习方式

视频只能入门,听视频很浪费时间,本来十分钟能解决的,看视频要一个小时,所以要记录好笔记 同一个视频不要听两遍,自己看博客加理解效果更好(因为已经入门了) 对于不懂的知识点,多百度多查,毕竟很多人的博客写的比你好的 学习就是学会使用百度,这句话没毛病 对于学过的知识,一定要复习,没有及时的复习笔记,...

2019-12-24 19:49:59 33 0

原创 【jvm学习10】线程上下文类加载器

1.线程上下文类加载器的重要性: 父ClassLoader可以使用当前线程的Thread.currentThread().getContextClassLoader()所指定的classLoder加载的类,这就 改变了父ClassLoader不能使用子ClassLoader或者是没有直接父子关系的...

2019-12-24 19:30:35 62 0

原创 【数据结构05】单链表修改节点和删除节点

单链表按照节点编号来修改节点和删除节点 1. 修改节点 修改节点的代码: //修改节点信息,根据no编号来修改 public void update(HeroNode newHeroNode){ //判断是否为空 if(head.next==null){ System.out....

2019-12-24 17:38:29 341 0

原创 【数据结构04】单链表在指定位置添加节点

1. 链表介绍 2. 单链表的应用实例 2.1在添加英雄时,直接添加到链表的尾部 思路分析: 辅助变量遍历的细节分析: public class SingleLinkedListDemo { public static void main(String[] args) { ...

2019-12-24 16:46:32 793 2

原创 【数据结构03】数组模拟环形队列

1. 思路分析: 2. 细节分析: 这个地方需要仔细的分析一下: 这里为了方便理解,在队列的最后预留了一个位置,如果不预留位置,考虑是一个环形队列,rear会指向第一个位置。 3.代码实现: public class ArrayQueueDemo { public static vo...

2019-12-24 13:44:16 63 0

原创 常用转义字符表

常用转移字符: 转义字符 含义 \n 换行符 \r 回车符 \ \ \ \t 水平制表符 1.制表符: \t为转移字符,代表一个tab: \t是补全当前字符串长度到8的整数倍,最少1个最多8个空格,补多少要看你\t前字符串长度。 比如当前字符串长度10,那么\t后长...

2019-12-23 17:32:58 63 0

原创 二维数组的初始化与遍历

1.一维数组的初始化: 静态初始化: int[] a = {1,2,3,4}; 动态初始化: String books = new String[3]; books[0] = "活着"; books[1] = "追风筝的人"; books[2] = &quo...

2019-12-23 16:53:11 147 0

原创 IO流如何选择字节流和字符流??

问:字节流与字符流有什么区别? 答:计算机中的一切最终都是以二进制字节形式存在的,对于我们经常操作的字符串,在写入时其实都是先将字符转成对应的字节,然后将字节写入到输出流,在读取时其实都是先读到的是字节,然后将字节直接使用或者转换为字符给我们使用。由于对于字节和字符两种操作的需求比较广泛,所以 J...

2019-12-23 15:53:25 248 0

原创 IO流中write方法写入文件中的数据如何换行?

Io流汇总内容可能不多,但是细节性的东西非常多,一大意就会搞错。 例1:将字节数据写入FileOutputStream并实现换行功能 public class FileWriterDemo3 { public static void main(String[] args) throws ...

2019-12-23 14:48:32 943 0

原创 IO流之输入流总结

文章目录1 字节文件输入流(FileInputStream)1.1 读取单个字符1.2 一次读取一个字节数组2 字符文件输入流(FileReader)3. 转换流(InputStreamReader)4. 字符输入缓冲流(BufferedReader) 1 字节文件输入流(FileInputS...

2019-12-22 21:03:30 51 0

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