超新星燃烧之Java基础知识
文章平均质量分 67
Java基础
超新星燃烧
这个作者很懒,什么都没留下…
展开
-
重写equals一定要重写hashcode吗?
重写equals一定要重写hashcode吗?原创 2022-01-02 13:07:15 · 651 阅读 · 0 评论 -
Java异常分类及处理
概念 如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常处理器。异常分类Throwable 是 Java 语言中所有错误或异常的超类。下一层分为 Error 和 ExceptionError  原创 2021-08-06 22:54:55 · 104 阅读 · 0 评论 -
Java 里的HashSet和TreeSet
SetSet与Map主要的不同有两点:Set是继承自Collection的接口类,Set中只存储了Key。Set官方文档纯 key 模型,比如:有一个英文词典,快速查找一个单词是否在词典中快速查找某个名字在不在通讯录中方法解释boolean add(E e)添加元素,但重复元素不会被添加成功void clear()清空集合boolean contains(Object o)判断 o 是否在集合中Iterator iterator()返回迭代器原创 2021-08-03 14:39:24 · 352 阅读 · 0 评论 -
Java中的HashMap和TreeMap
1 概念及场景 **Map是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。以前常见的搜索方式有:1). 直接遍历,时间复杂度为O(N),元素如果比较多效率会非常慢2). 二分查找,时间复杂度为O(log2 N) ,但搜索前必须要求序列是有序的 上述排序比较适合静态类型的查找,即一般不原创 2021-08-02 14:07:45 · 582 阅读 · 0 评论 -
Java栈和队列
栈概念一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈: 栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。入栈:栈的删除操作叫做出栈。出数据在栈顶。首先栈中的数据元素准循着先进后出(后进先出)的原则!!!举个例子:就和我们现实生活中用口袋装东西一样,往里面放东西,往往先放的物品会在最下面,最后放的东西会在最上面,那么取东西时,也是一样最后放原创 2021-08-02 00:54:38 · 139 阅读 · 0 评论 -
final,finally,finalize的区别
1.final final 可以用在控制方法,成员变量,或者是一个类.(1).final成员 当定义变量时,在前面加上final关键字,那么这个变量一旦被初始化,就无法再被修改.对于基本类型来说是值不可改变,而对与引用类型来说是其引用不能改变public static void main(String[] args原创 2021-07-26 14:16:38 · 103 阅读 · 0 评论 -
重写和重载区别
重写(Override) 重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。重写的好处也就在于子类可以根据需要,定义特定于自己的行为,也就是说子类能够根据需要来实现父类的方法。1.重写父类中的方法2.子类重写父类的方法是可以通过s原创 2021-06-19 15:07:20 · 250 阅读 · 0 评论 -
数据结构——链表
链表的概念和结构链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的 。1.实际中链表的结构非常多样带头,不带头单向,双向循环,非循环无头单向非循环链表每个节点都会有两个域,一个是值域用来存放数据,另一个节点域用来存放下一个节点的地址,这样让每个节点都连起来。(假设0x222是数据2的地址,那么数据的节点域存放0x222就将两个节点链接起来)。...原创 2021-06-19 13:55:20 · 151 阅读 · 0 评论 -
ArrayList和LinkedList的区别
ArrayList 和 LinkedList 是 List 接口的两种不同实现,并且两者都是线程不安全的。对于这两者的区别无非就是围绕着增删查改的效率来说1.底层结构的不同(1)ArrayList ArrayList内部使用的动态数组来存储元素,同时数组也属于顺序结构的线性表,逻辑上和物理上都是连续的。(2)原创 2021-06-12 14:56:06 · 2084 阅读 · 2 评论 -
常见的七种排序(Java实现)
常见的各种排序前言一、冒泡排序二、选择排序三、直接插入排序四、希尔排序五、堆排序前言排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。如果提到排序,通常指的是排升序(非降序)。通常意义上的排序,都是指的原地排序(in place sort)。两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法。一、冒泡排序冒泡排序是一种简单的排序,通过访问下标,重复的遍历数组,将2个相近的值按照给定的顺序将其交原创 2021-05-17 15:41:18 · 194 阅读 · 7 评论 -
优先级队列(堆)的建立及堆排序
堆堆逻辑上是一个完全二叉树(非完全二叉树会有空间的浪费)堆物理上是保存在数组上如图:下标关系:已知双亲(parent)的下标,则:左孩子(left)下标 :2parent+1;右孩子(right)下标:2parent+2;堆的建立(大根堆) 堆的内部结构也是以数组为基础的,以给出的数组,我们可以建出大根堆,由下而上调整 双亲下标则为数组长度有效值-1-1除以2 parent = (this.size-1-1)/2 则孩子child下标 child = 2*parent +原创 2021-05-15 00:11:17 · 155 阅读 · 0 评论 -
抽象类和接口
抽象类一 丶什么是抽象类简单而说抽象类就是包含抽象方法的类,指在普通类的结构里增加抽象方法的组成部分。那什么是抽象方法呢?抽象方法是指没有方法体的方法,同时该方法要被关键字abstract修饰,这个方法可以没有具体的实现!抽象类里可以包含抽象方法和普通方法//定义一个抽象类abstract class X{ //普通方法 public void study(){ System.out.println(" 我在学习 ! "); //抽象类里可以包含普通的方法 //存原创 2021-04-20 14:20:44 · 198 阅读 · 0 评论 -
Java类与对象
1.类与对象:对象一定具有自己的属性和方法类: 定义了对象应具有的特征和行为, 类是对象的模板对象: 拥有多个特征和行为的实体, 对象是类的实例什么是对象?1.一切客观存在的事物都是对象2.对象就是一个真实世界的的实体,对象与实体是一一对应的关系,就是现实世界里每一个实体都是一个对象,所以对象是一个具体的概念什么是类?类是具备某些共同特性的实体集合,在面向对象的程序语言中,类是对一类“事物”的属性与行为的抽象表达//如下举例:比如Person(人)就是一个类,那么具体的某个人“张三原创 2021-04-11 17:42:33 · 108 阅读 · 0 评论 -
Java基本数据类型
一 . Java的八种数据类型1.Java的数据类型分为(1)基本数据类型(2)引用数据类型(1)基本数据类型基本数据类型又分为数值型(整数型和浮点型),字符型和布尔类型数值型:byte , short , int , long , double , float(前四个为整数类型,double和float为浮点类型)字符型: char布尔类型: boolean(2)取值范围和位数1·整数型byte (位) : 占1个字节 也就是8(bit)位 ,取值范围 (-2原创 2021-04-11 17:12:52 · 82 阅读 · 0 评论