自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

你今天真好看呀

心若有所向往,何惧道阻且长

  • 博客(102)
  • 收藏
  • 关注

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

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

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

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

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

2019-12-31 16:26:40 397

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

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

2019-12-31 14:27:05 244

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

文章目录1. 二分查找介绍2. 代码实现3. 补充1. 二分查找介绍使用二分查找需要数组必须是有序的2. 代码实现public class binarySearch { public static void main(String[] args) { int[] arr ={1,8,10,89,1000,1234}; int index = bi...

2019-12-31 13:48:43 127

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

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

2019-12-31 13:14:13 250

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

文章目录1. 基数排序2. 基数排序思想3. 代码实现1. 基数排序2. 基数排序思想3. 代码实现分析算法过程:public class radixSort { public static void main(String[] args) { int arr[] = {53,3,542,748,14,214}; radixSort(arr...

2019-12-31 12:50:51 364

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

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

2019-12-31 10:53:54 205

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

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

2019-12-30 11:45:44 305

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

1. 希尔排序介绍2. 希尔排序思路3. 代码实现3.1 交换法希尔排序推导过程:public class ShellSort { public static void main(String[] args) { int[] arr = {8,9,1,7,2,3,5,4,6,0}; System.out.println("排序前:"+Arr...

2019-12-29 17:38:59 288

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

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

2019-12-29 16:25:18 188

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

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

2019-12-29 15:19:45 245

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

文章目录1. 冒泡排序介绍2. 冒泡排序规则3. 基本冒泡排序实例1. 冒泡排序介绍2. 冒泡排序规则3. 基本冒泡排序实例冒泡排序原理:ublic class BubbleSort { public static void main(String[] args) { int arr[] = {3,9,-1,10,-2}; //第一趟排序就...

2019-12-29 13:34:05 250

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

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

2019-12-28 16:32:33 154

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

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

2019-12-28 15:20:47 235

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

1. 迷宫问题2. 代码实现public class MiGong { public static void main(String[] args) { //创建一个二维数组,模拟迷宫 int[][] map = new int[8][7]; //使用1表示墙(红色的部分都是墙) //先把上下两行都置为1 ...

2019-12-28 11:00:38 469

原创 【数据结构15】递归

1.递归调用机制

2019-12-28 09:12:41 117

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

文章目录12 方法个数13 方法集合13.1 分析第一个方法1 方法访问标志2 方法名索引 & 描述符索引3 属性计数器4 属性集合4.1 属性名称索引4.2 属性长度4.3 属性信息13.2 分析第二个方法13.3 分析第三个方法13.4 分析第四个方法12 方法个数13 方法集合13.1 分析第一个方法字段表下面就是方发表类型名称含义 数量u2acc...

2019-12-27 22:10:38 505

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

0. java字节码结构类型名称说明长度u4magic魔数,识别Class文件格式4个字节u2minor_version次版本号2个字节u2major_version主版本号2个字节u2constant_pool_count常量池个数2个字节cp_infoconstant_pool常量池表n个字节u2acces...

2019-12-27 20:18:36 339

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

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

2019-12-27 17:32:23 464

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

文章目录1. 波兰表达式(前缀表达式)2. 中缀表达式3. 逆波兰表达式(后缀表达式)4. 逆波兰计算器1. 波兰表达式(前缀表达式)2. 中缀表达式3. 逆波兰表达式(后缀表达式)4. 逆波兰计算器public class PolanNotation { public static void main(String[] args) { //先定义逆波...

2019-12-27 15:35:39 300

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

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

2019-12-27 14:23:55 282

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

文章目录1. 栈的介绍2. 使用数组来模拟栈1. 栈的介绍入栈时,栈底不动,栈顶动:出栈时,栈底不动,栈顶动:栈的应用场景:2. 使用数组来模拟栈import java.util.Scanner;public class ArrayStackDemo { public static void main(String[] args) { ArraySt...

2019-12-26 10:36:42 387

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

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

2019-12-26 09:31:59 273

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

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

2019-12-25 20:57:29 851

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

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

2019-12-25 19:40:30 1078

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

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

2019-12-25 15:36:49 324

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

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

2019-12-25 14:36:00 254

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

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

2019-12-25 14:01:12 644 2

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

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

2019-12-25 13:11:36 472

原创 javap命令的使用

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

2019-12-24 20:31:52 974

原创 关于学习方式

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

2019-12-24 19:49:59 108

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

1.线程上下文类加载器的重要性:父ClassLoader可以使用当前线程的Thread.currentThread().getContextClassLoader()所指定的classLoder加载的类,这就 改变了父ClassLoader不能使用子ClassLoader或者是没有直接父子关系的ClassLoader加载类的情况,即破坏了双亲委托模型。2.为什么会有上下文类加载器?线程上下文...

2019-12-24 19:30:35 376

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

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

2019-12-24 17:38:29 1156

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

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

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

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

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

2019-12-24 13:44:16 279

原创 常用转义字符表

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

2019-12-23 17:32:58 1509

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

1.一维数组的初始化:静态初始化:int[] a = {1,2,3,4};动态初始化:String books = new String[3];books[0] = "活着";books[1] = "追风筝的人";books[2] = "茶花女";2. 二维数组的初始化:二维数组实际上就是一个一维数组,他的每个元素都是一个一维数组。可以画一张表格,一维数组的话,表格只有一行,二...

2019-12-23 16:53:11 939

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

问:字节流与字符流有什么区别?答:计算机中的一切最终都是以二进制字节形式存在的,对于我们经常操作的字符串,在写入时其实都是先将字符转成对应的字节,然后将字节写入到输出流,在读取时其实都是先读到的是字节,然后将字节直接使用或者转换为字符给我们使用。由于对于字节和字符两种操作的需求比较广泛,所以 Java 专门提供了字符流与字节流相关IO类。对于程序运行的底层设备来说永远都只接受字节数据,所以当我...

2019-12-23 15:53:25 1604

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

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

2019-12-23 14:48:32 7752 2

原创 IO流之输入流总结

文章目录1 字节文件输入流(FileInputStream)1.1 读取单个字符1.2 一次读取一个字节数组2 字符文件输入流(FileReader)3. 转换流(InputStreamReader)4. 字符输入缓冲流(BufferedReader)1 字节文件输入流(FileInputStream)概念:FileInputStream 从文件系统中的某个文件中获得输入字节。内存(...

2019-12-22 21:03:30 342

空空如也

空空如也

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

TA关注的人

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