自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 哈希表讲解

问题有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id,性别,年龄,住址……),当输入该员工id时,要求查找到该员工的所有信息。要求:不使用数据库,尽量节省内存,速度越快越好==>哈希表。哈希表的基本介绍哈希表是根据关键码值而直接进行访问的数据结构。...

2021-08-19 15:06:27 236

原创 Collection总结

Collection :List:有序且重复。ArrayList:底层时数组,查询快,增删慢,线程不安全,所以效率高。Vector:底层数据结构是数组,查询快,增删慢,线程安全,所以效率低。LinkedList:底层是链表,增删快,查询慢,线程安全,所以效率高。Set:无序且位置。HashSet:底层是哈希表,他的底层依赖于hashCode和equals方法来实现元素唯一。LinkedHashSet:底层是链表和哈希表,哈希表保证元素唯一,链表保证元素有序。TreeSet:底层是红黑树,它的

2021-08-19 15:06:10 156

原创 树的常用术语

二叉树1)树有很多种,每个节点最多只能有两个子节点的一种形式称为二叉树。2)二叉树的子节点分为左节点和右节点。3)如果该二叉树的所有叶子节点都在最后一层,而且节点总数=2^n-1,n为层数,则我们称为满二叉树。4)如果该二叉树的所有叶子节点都在最后一层或者倒数第二层,而且最后一层的叶子节点在左边是连续的,倒数第二层的叶子节点在右边连续,我们称为完全二叉树。...

2021-08-19 15:05:47 186

原创 二叉树的前序中序后序遍历

概念前序遍历:先输出父节点,再遍历左子树和右子树中序遍历:先遍历左子树,再输出父节点,再遍历右子树。后序遍历:先遍历左子树,在遍历右子树,最后输出父节点。小结:看输出父节点的顺序。前序遍历1、先输出当前节点(初始的时候是root节点)2、然后如果左子节点不为空,则递归继续前序遍历。3、如果右子节点不为空,则递归继续前序遍历。中序遍历1、如果当前节点的左子节点不为空,则递归中序遍历。2、输出当前节点3、如果当前节点的右子节点不为空,则递归进行中序遍历。后序遍历1、如果当前节点的左子

2021-08-19 15:05:32 370

原创 线索化二叉树

线索化二叉树基本介绍1)n个节点的二叉链表中含有n+ 1 公式2n-(n-1)=n+1个空指针域,利用二叉树链表中的空指针域,存放指向该节点某种遍历次序下的前驱和后续节点的指针。2)这种加上了线索的二叉链表陈为线索链表,相应的二叉树称为线索二叉树,根据线索性质不同,线索二叉树分为前序线索二叉树、中序线索二叉树、后续线索二叉树。3)一个节点的前一个节点,称为前驱节点4)一个节点的后一个接待你,称为后续节点案例说明:当线索化二叉树后,Node节点的属性left和right,有如下情况:1)le

2021-08-19 15:05:15 107

原创 JVM详解

JVM探究1、请你谈谈你对JVM的理解?Java–>class—>jvm1、JVM的位置2、JVM的体系结构3、类加载器4、双亲委派机制5、沙箱安全机制6、Native7、PC寄存器8、方法区9、栈10、三种JVM11、堆12、新生区13、永久区14、堆内存调优15、GC(垃圾回收器)1、常用算法16、JMM17、总结1、JVM位置jvm就像一个软件Java程序都是跑在JVM上面的,JVM是用C写的。JVM就是一个环境,3、类加载器作用:加载cl

2021-08-19 15:04:59 230

原创 泛型的使用

由于添加元素的集合的不确定,我可以添加任意类型的元素,那么在遍历的时候可能会出现问题。我们之前学习过的数组,就可以声明一种类型,使得在添加数据时,数据类型不匹配的情况下,就会出现异常。那么集合中有没有这样的方法呢?有的,泛型。泛型的概述泛型是一种特殊的类型,可以理解为参数化类型,也就是可以把类型像参数一样传递。泛型的格式:<泛型类型>泛型的用处一般多用于集合。泛型的好处1、提高了程序的安全性,2、将原本运行时期的错误在编译时期就暴露了出来。3、省去了强制类型转换的麻烦。

2021-08-05 14:29:39 127

原创 集合之Collection!!!

集合的出现我们面向对象语言都是以对象的形式出现的,所以为了对多个对象进行操作,Java就提供了集合类。集合和数组的区别长度不同数组:长度固定集合:长度不固定内容不同数组:存储的相同数据类型集合:可以存储不同数据类型类型不同数组:可以存储基本数据类型和引用类型集合:只能存储引用类型。集合的特点集合只用于存储对象,它的长度是可变的,并且可以存储不同类型的对象。集合继承体系...

2021-08-05 14:28:41 184

原创 内部类详解!!!

概述:把类定义在其他类的内部,这个类就称为内部类。面试题package org.wdzl.unit04;/** * 1、内部类与外部类不是继承关系 * 2、通过外部类名限定this * 格式:外部类.this.num; */public class Test { public static void main(String[] args) { Outer4.Inner4 oi = new Outer4().new Inner4(); oi

2021-08-05 14:28:23 144

原创 返回值类型为引用类型详解

抽象类作为返回值package org.wdzl.unit04;/** * 返回值类型: * 类:返回该类的对象 * 抽象类:返回该抽象类子类的对象 * 接口: */public class ArgsDemo2_2 { public static void main(String[] args) { PersonDemo2 personDemo2= new PersonDemo2(); Person2 person = per

2021-08-05 14:28:08 655

原创 参数为引用数据类型详解

类作为参数时类:在调用方法时,传入相应类的对象(匿名类)package org.wdzl.unit04;/** * 形式参数是引用数据类型问题 * 1、类:在调用方法时,传入相应类的对象(匿名类) * 2、抽象类 * 3、接口 */public class ArgsDemo { public static void main(String[] args) { StudentDemo studentDemo = new StudentDemo

2021-08-05 14:27:43 693

原创 Java基础知识点---抽象类讲解!!!

抽象类抽象类的概述用来描述抽象概念的类,叫做抽象类,抽象类中的方法不一定要实现具体的功能。特点1、被abstract关键字修饰2、抽象类中不一定有抽象方法,但是有抽象方法的类一定要被定义为抽象类。3、抽象类有构造方法,但是不能被创建对象,构造方法是供子类去调用的。4、抽象类可以被标准类继承,也可以被抽象类继承。但是标准类必须重写抽象类中的抽象方法,但抽象类就不需要了。package org.wdzl.unit04;/** * 抽象类: * 概述:用来描述抽象概念的类叫做抽象类,抽

2021-08-04 16:21:51 185

原创 static详解

1、静态方法不可以调用非静态方法,只能调用静态的。2、非静态方法可以调用非静态方法和静态方法。静态导入包:

2021-08-04 16:21:01 114

原创 炒鸡讲解笔记之IO流

File类1、1 File类概述文件和目录路径名的抽象表示形式。对File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径而已。File类可以新建,删除,重命名文件和目录,但是File不能访问文件内容本省。如果需要访问内容本身需要输入/输出流。File对象可以作为参数传递给流的构造函数案例:public class fileDemo { public static void main(String[] args) { File file = new File("

2021-08-04 16:20:47 148

原创 a++与++a

代码:public class Demo { public static void main(String[] args) { int a =3; int b=a++; int c=++a; System.out.println(a); System.out.println(b); System.out.println(c); }}这串代码就相当于:package com.superp

2021-08-04 16:20:31 109

原创 Super

super注意点:1、super调用父类的构造方法,必须在构造方法的第一个2、super必须只能出现在子类的方法或者构造方法中!3、super和this总不能同时调用构造方法!Vs this:代表的对象不同:this:本身调用者这个对象super:代表父类对象的应用前提this:没有基础也可以使用super:只能在继承条件下才可以使用构造方法this():本类的构造super():父类的构造...

2021-08-04 16:20:15 114

原创 Java基础知识----继承!!!

1、继承继承概念的引入:/*** 学生类*/public class Student{//成员变量 String name; int age; //get和set方法 //构造方法 public Student(){ } //成员方法 public void eat(){} public void sleep(){} }/*** 教师类*/public class Teacher{ //成员变量 String name; int age; //g

2021-08-04 16:19:11 128

原创 Java炒鸡重要知识点:多态!!!

多态的概述:多态:同一操作(方法)作用于不同对象,可以产生不同的执行结果。多态的前提和体现!有继承关系!有方法的重写!父类的引用指向子类的对象,简单来记就是“父父new子”package org.wdzl.unit03;/** * 同一操作作用于不同的对象,可以产生不同的执行结果 * 举例: * 父类: 宠物:叫的这个方法 * 子类: 猫:叫()……喵喵喵 * 狗:叫()……汪汪汪 * 多态的前提: *

2021-08-04 16:18:47 147

原创 Java炒鸡重要知识点---final关键字

final关键字final关键字概述:final关键字:最终的,可以修饰类,方法,变量** final修饰方法时不能被重写!!!**package org.wdzl.unit03;/** * final关键字:最终的 * 可以修饰类,方法,变量 */public class FinalDemo { public static void main(String[] args) { Zi zi = new Zi(); zi.method();

2021-08-04 16:18:27 107

原创 java基础知识---封装!!!

封装**封装概述:**隐藏对象的属性和实现细节,仅对外提供公共的访问方式。package org.wdzl.unit02;public class Student { String name; private int age; public void setAge(int age1){ if (age1 > 0 ){ age=age1; }else { System.out.println(

2021-08-04 16:18:09 152

原创 Java学习炒鸡重要知识点---面向对象!!!

1、 面向对象概述**面向过程:**我们首先分析我们需要做什么,然后在分析怎么做,最后我们再使用代码一步一步具体实现,每一个过程我们都是参与者。**面向对象:**将许多功能封装在一个类当中,不在乎处理问题的过程,只注重最后的结果。面向对象特点:1、将我们从执行者变成了一个指挥者。2、更符合我们平时的思考方式。、3、将问题简化了。**面向对象举例:**把大象装冰箱更符合面向对象思想的思考:a、有哪些类b、每个类中有那些方法c、类与类之间有怎样的关系分析:有哪些类?名词提取法大象类

2021-08-04 16:17:42 119

原创 数据结构--栈

栈的介绍1):栈的英文名叫做:stack2):栈是一个先入后出的有序列表3):栈是限制线路列表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,称为栈顶,另外一端称为栈底。4):根据栈的定义可知,最先放入的元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除。栈的应用场景:1、子程序的调用:跳往子程序前,会先将下个指令的地址存在栈堆中,直到子程序指向完毕后再从地址取出,以回来原来的程序。2、处理递归调用:和子程序

2021-07-18 20:01:52 99

原创 二分查找算法

二分查找对一个有序数组查找,涉及递归的方法二分查找思路1、首先先确定该数组中间的下标mid=(left+right)/22、然后让需要查找的数findVaue和arr[mid]比较2、1findValue>arr[mid],说明要查找的数在mid的右边,因此需要递归的向右查找。2、2findValue<arr[mid],说明要查找的数在mid的左边,因从需要递归向左查找。2、3findValue == arr[mid]说明找到,就返回什么时候结束递归?1、找到就结束递归2、递

2021-07-18 20:01:26 104

原创 斐波那契(黄金分割法)查找算法

1、黄金分割点是指把一条线段分割成两部分,是其中的一部分与全长之比等于另外一部分与这部分之比,取其前三位数字的近似值是0.6182、斐波那契数列{1,1,2,3,5,8,13,21,34,55}发现斐波那契数列的两个相邻的数比例,无线接近黄金分割值0.618斐波那契原理mid = low +F(k-1)-1low:数组最前面的索引F(k-1)的理解:F(k)=F(K-1)+F(K-2)可推导(F[k]-1) = (F[k-1]-1)+(F[k-2]-1)+1代码实现package co

2021-07-18 20:00:57 509

原创 插值查找算法介绍

对应前面的代码公式:mid = left + (indValue - arr[right])/(arr[right]-arr[left])*(right-left)一步定位代码实现package com.search;import java.util.Arrays;public class InsertValueSearch { public static void main(String[] args) {// int[] arr= new int[100];//.

2021-07-17 11:34:27 170

原创 哈希表详解(韩顺平)!!!

哈希表的基本介绍散列表(哈希表)是根据关键码值而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数就叫做散列函数,存放记录的数组就是散列表。图解如下:哈希表的结构:例题:有一个公司,当新员工来报道时,要求将改员工的信息加入(id,年龄,名字,住址),当输入该员工的id时,要求查找到该员工的所有信息。要求:不使用数据库,速度越快越好。使用哈希表来管理雇员信息...

2021-07-17 11:33:46 187

原创 线性查找算法

线性查找代码:package com.search;public class SeqSearch { public static void main(String[] args) { int arr[] = {1, 9, 11, -1, 34, 89}; int index = seqSearch(arr,-11); if (index == -1){ System.out.println("没有查找到!!");

2021-07-17 11:33:20 125

原创 Javaweb-01:web的基本概念

JavaWebJava Web1、基本概念1、1 前言web开发:1、web,网页的意思,www.baidu.com2、静态web!html,css!提供给所有人看的数据不会发生改变3、动态web!淘宝,几乎所有的网站!提供给所有人看的数据会发生改变,每个人在不同的时间,不同的地点看到的信息各不相同。!技术栈:Servlet/JSP,ASP,PHP在Java种,动态web资源开发的技术统称位javaWeb;1、2web应用程序web应用程序:可以提供浏览器访问的程序;!a.h

2021-07-17 11:32:11 166

原创 八皇后问题(回溯算法)

八皇后问题概述:在8X8格上的国际象棋上放置8个皇后,即 :任意两个皇后都不能处于同一行,同一列或者同一斜线上,有多少种摆法?说明:理论上因该创建一个二维数组,但是实际上可以通过一个一维数组就可以解决问题,arr[8]={0,4,7,5,2,6,1,3}//对应arr下标表示第几行,即第几个皇后,arr[i]=val,val表示第i+1个皇后,放在第i+1行的第val+1列。代码实现:package com.recursion;//八皇后问题public class Queue8 {

2021-06-10 11:28:35 183

原创 时间频度介绍

**时间频度:**一个算法花费的时间与算法中语句执行次数成正比。对于时间频度来说,常数项可以忽略,低次项也可以忽略,时间复杂度:

2021-06-10 11:28:25 293

原创 冒泡排序详解

冒泡排序思想:通过下标从小到大开始,依次比较相邻元素,若发现逆序则交换,使较大的元素注解从前往后移。冒泡排序规则:1、一共进行数组的大小-1次大的循环2、每一趟排序的次数在逐渐的减少3、如果我们发现在某趟排序时,没有发生一次交换,可以几天结束循环;冒泡排序代码演示:package com.sort;import java.util.Arrays;public class BubbleSort { public static void main(String[] args) {

2021-06-10 11:28:10 175

原创 选择排序详解

**基本介绍:**选择式排序也属于内部排序,是从欲排序的数据中,按指定的规则选出某一元素,再依照规定交换位置后达到排序的目的。说明:1、选择排序一共有数组大小-1轮排序2、每1论排序,又是一个循环,2、1先假定当前这个数是最小数2、2然后和后面的每个数进行比较,如果发现有比当前更小的数,就重新确定最小数;2、3当遍历到数组的最后时,就得到本轮最小数和下标2、3交换代码演示:package com.sort;import java.text.SimpleDateFormat;impo

2021-06-10 11:28:00 119

原创 插入排序介绍

插入排序法介绍:插入排序属于内部排序法,是对于欲排序的元素以插入的方式寻找该元素的适当位置,以达到排序的目的。插入排序思想把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只包含一个元素,无序元素中包含n-1个元素,排序过程中每次从无序表中取出第一个元素,把他的排序码依次与有序码进行比较,将他插入到有序表中的适当位置,使之称为新的有序表。代码实现package com.sort;import java.util.Arrays;/** * 插入排序 */public cla

2021-06-10 11:27:51 154

原创 希尔排序详解(面试必要掌握!!!)

结论当需要插入的数是比较小的时候,后移的次数明显增加,对效率有影响。希尔排序基本思想希尔排序是把记录按下标按一定增量分组,对每组使用直接插入排序;随着增加量逐渐减少,每组包含的关键词越来越多,当增量减少到1时,整个文件恰好被分为一组,算法便终止。代码实现package com.sort;import java.util.Arrays;// 希尔排序public class ShellSort { public static void main(String[] args) {

2021-06-10 11:27:30 316

原创 快速排序详解(面试必会!!)

快速排序思想通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对两部分分别进行快速排序,整个过程可以递归进行,以达到整个数据变成有序序列代码实现package com.sort;import java.util.Arrays;public class QuickSort { public static void main(String[] args) { int[] arr={-9,78,0,23,-567

2021-06-10 11:27:03 143

原创 归并排序详解(韩顺平版,面试必考!!!)

基本思想代码实现package com.sort;import java.util.Arrays;class MergetSort { public static void main(String[] args) { int[] arr={8,4,5,7,1,3,6,2}; int temp[] = new int[arr.length];//归并排序需要一个额外的空间 mergeSort(arr,0,arr.length-1,temp

2021-06-10 11:26:30 232

原创 基数排序详解(面试必会!!)

基数排序基本思想将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。具有稳定性排序介绍1、将每个元素的个位取出,然后看这个数放在那个对应的桶(一个一维数组)。·2、按照这个桶的顺序(就是一维数组的下标)依次取出数据,放入到原来的数组)。3、将每个元素的十位取出,看放在对应的那个桶4、按照这个桶的顺序(就是一维数组的下标)依次取出数据,放入到原来的数组)。5、将每个元素的百位取出,看放在对应的那个桶6、按照这个桶的顺序(就是一维数组的下标)依次取出数据,放入到原来的数组)。

2021-06-10 11:25:48 246

原创 约瑟夫问题

Josephu(约瑟夫、约瑟夫环)问题概述:设编号为1,2,3,……n的n个人围坐一圈,约定编号为K(1<k<n)的人从1开始报数,数到m的那个人出咧,他的下一位又从1开始报数,数到m的那个人又出列,以此类推,知道所有人都出列为止,...

2021-06-03 20:18:22 169

原创 队列与链表

数据结构线性结构:1、线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系。2、线性结构有两种不同的存储结构,即顺序存储和链式存储结构。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的。3、链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素和相邻元素的地址信息。4、线性结构常见的有:数组、列表、链表和栈,非线性结构:非线性结构包括:二维数组,多维数组,广义表,树结构,图结构。稀疏数组基本介绍:当一个数组大部分元素为0,或者为同一个值的

2021-06-03 16:34:32 1454

原创 Spring Cloud

Spring Cloud微服务产生背景单体应用存在的问题:!随着业务的发展,开发变得越来越复杂!修改、新增某个功能,需要对整个系统进行测试,重新部署。!一个模块出现问题,很有可能导致整个系统崩溃。!多个团队同时对数据进行管理,容易产生安全漏洞;!各个模块使用同一种技术框架,局限性太大,很难根据业务选择最适合的技术框架。!模块的内容太复杂,如果有员工离职,可能需要很长时间才能完成任务的交接。为了解决上述问题,微服务应运而生,简单来说,微服务就是将一个单体应用拆分成若干个小型服务,协同完成系

2021-05-31 17:00:17 179

空空如也

空空如也

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

TA关注的人

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