JAVA
文章平均质量分 81
ronaldo siu...
这个作者很懒,什么都没留下…
展开
-
数据结构:泛型和反射
文章目录一.泛型1.1什么是泛型1.2泛型方法和使用1.3泛型接口1.4通配符1.5类型擦除二.反射2.1什么是反射2.2反射相关的类一.泛型1.1什么是泛型泛型:定义时没有明确参数的类型,使用时明确类型,看到=>泛型的定义,只有<>泛型操作符,不一定看到T就是泛型方法,只是使用了反省的普通方法守门员,编译阶段检查了类型是否一致,避免了向下转型的强制类型转换的出错问题泛型类:T和E称为类型参数,占位符class MyClass<单个大写字母,T,E,…>{T v原创 2022-05-31 11:31:05 · 207 阅读 · 2 评论 -
数据结构:排序
文章目录一.概念1.1排序1.2稳定性1.3,内部排序和外部排序二.基础排序算法2.1选择排序2.2插入排序一.概念1.1排序排序就是使一串记录,按照某个或某些关键字的大小,递增或递减排列起来的操作。平时的上下文中,如果提到排序,通常指的是排升序(非降序)通常意义上的排序,都是指的原地排序(in place sort)原地堆排序:不开辟额外的数组空间进行的排序升序和降序严格升序(不包含重复元素):数字有小到大依次排列i1<i2非降序:前一个元素<=后一个元素在指定的集合中,若原创 2022-05-31 08:37:57 · 840 阅读 · 2 评论 -
数据结构:JDK源码分析
文章目录一.回到Object万物之母二.JDK的源码分析2.1 HashMap的源码一.回到Object万物之母此时要将Student对象存储到HashMap的key上。1.计算Student对象的哈希值,得到一个数组的索引下标hashCode()2.判断当前这个Student对象是否已经在哈希表中存在了。是否是相同的key值=>equals>class Student{int age;String name;}equals相同的两个对象 = 》hashcode是否应该相同原创 2022-05-27 08:57:09 · 558 阅读 · 1 评论 -
数据结构:搜索树
文章目录一.搜索树1.1什么是搜索树1.2搜索树特点1.3二分搜索树核心操作一.搜索树1.1什么是搜索树基础二叉树主要是做题,基础二叉树的衍生结构在实际工程中有着广泛的应用堆=>完全二叉树AVL,RBTree,B树=》搜索树BST:二分搜索树,二叉搜索树,二叉排序树1.2搜索树特点1.也是个二叉树2.每个树的左子树的所有节点值<树根节点<所有右子树的节点值(当前树中的所有子树仍然遵循这个规则)KDK中的BST,不存在重复节点3.存储的节点必须具备可以比较的能力(要么实原创 2022-05-21 10:38:07 · 2643 阅读 · 1 评论 -
数据结构:Map和Set
文章目录一.Map和Set1.1主要的数据结构1.2Set集合的基础使用1.3Map集合的基础使用1.4关于Map接口常见子类的添加问题1.5关于保存null值的说明一.Map和Set1.1主要的数据结构Set:其实就是披着Set外衣的Map也是Collection接口的子接口,一次保存一个元素,和List集合最大的区别在于List集合保存的元素不能重复。Set:使用Set集合来进行去重处理只要是Collection的子类都能使用for-each进行遍历1.2Set集合的基础使用Set集合原创 2022-05-21 10:37:45 · 230 阅读 · 1 评论 -
数据结构:优先级队列(堆)
文章目录一.一.原创 2022-05-19 10:56:52 · 200 阅读 · 1 评论 -
数据结构:二叉树
文章目录一.树1.1什么是树1.2为什么会存在树1.3关于树的基础概念二.二叉树2.1什么是二叉树2.2二叉树的性质:2.3常见的二叉树2.4关于完全二叉树的编号问题2.5二分搜索树2.6平衡二叉树2.7二叉树的遍历问题一.树1.1什么是树树:高效的查找与搜索语义1.2为什么会存在树例如企业管理企业中的员工的分类其实就是一个树结构如果是一个线性结构,所有人都在一个目录中,比如当前公司中一共有300号员工,要找到一个特定的员工,最坏情况下得找00次,O(n)如果现在是一个树结构,按照员工的职级原创 2022-05-17 09:03:13 · 134 阅读 · 2 评论 -
数据结构:栈和队列
文章目录一.栈和队列1.1什么是线性表1.2什么是栈和队列一.栈和队列1.1什么是线性表一次保存单个同类型元素,多个元素之间逻辑上连续数组,链表,栈,队列,字符串(内部就是字符数组char[])1.2什么是栈和队列栈和队列其实是操作受限的线性表。之前的数组也罢,链表也罢,既可以在数组的头部插入和删除,也可以在数组的尾部插入和删除,甚至在任意位置都可以插入和删除。栈和队列只能在一端插入元素,和删除元素栈:水杯1.只能从一端插入元素,也只能从这一端取出元素(栈顶)将12345一次添加到栈原创 2022-05-11 12:25:01 · 136 阅读 · 1 评论 -
JAVA集合框架初识
文章目录一.集合框架1.1什么是集合框架二.List-线性表的父接口2.1什么是List2.2List方法2.3List的使用三.图书管理系统项目一.集合框架1.1什么是集合框架所谓的集合就是为了保存和操作数据的一些类Collection:线性表集合,保存单个同类型元素ArrayList:动态数组LinkedList:双向链表Map:键值对集合,保存一对元素键值对,映射关系,键-key,值-valuekey不重复value重复例如:身份证号key姓名valueHashMap:哈希原创 2022-05-10 09:42:34 · 111 阅读 · 1 评论 -
JAVA基础语法:泛型
文章目录一.泛型1.1什么是泛型1.2泛型的使用1.3多个类型参数的使用一.泛型1.1什么是泛型point{x:y:}x = 10,y = 20;x = 10.1, y = 20.2;x = “东经15度”,y=“北纬39度”JAVA强类型语言,在定义x和y时候必须强制定义变量类型,所以可以把x和y定义为Object类当用户不小心输入的x和y是不同类型时,编译是没问题的,但是在下面取出x和y的值时,强制类型转换就会报错,运行时异常一般来说,我们要求把所有的错误都提前暴露在编译阶段,原创 2022-05-09 10:25:13 · 408 阅读 · 1 评论 -
JAVA基础语法:包装类
文章目录一.包装类1.1什么是包装类1.2包装类的使用一.包装类1.1什么是包装类包装类就是把八大基本类型封装到类之中。a.Object接受所有引用数据类型(数组,类,接口),为了让Object类可以接收java中一切东西,引入包装类,把基本类型的数值封装到类的对象之中就产生了包装类b.基本类型默认值其实在很多场景下会造成误导,引用类型的默认值就是nullJDK中包装类-有以下八种数值型包装类(Number的子类)有以下六种a.整型:(byte<short<int<long原创 2022-05-09 09:17:37 · 271 阅读 · 1 评论 -
JAVA基础语法:认识异常
文章目录一.认识异常1.1什么是异常1.2异常的基本语法一.认识异常1.1什么是异常异常:程序没按照预计的结果运行,在运行的过程中发生了“错误”1.2异常的基本语法try{//可能会产生异常的代码,除0异常,数组越界,空指针等}[catch…0…n]{//出现异常以后如何处理}[finally]{//异常的出口,最终会执行的代码块}1.程序中不处理异常,发生异常之后的代码就不再执行2.使用try…catch…处理异常3.java中一切都是类,异常其实也是类,依次Catch代码原创 2022-05-09 08:30:09 · 180 阅读 · 1 评论 -
JDK常用接口&String类
文章目录一.Object类1.1什么是Object类1.2Object使用方法二.JDK常用接口2.1接口的使用2.2JDK内置的常用接口一.Object类1.1什么是Object类在java中万物之母Object类全名称:包名.类名 java.lang.Object1.2Object使用方法1.Object类是java中所有类的默认父类,无需使用extends来定义。class声明的类都有一个父类,Object类因为Object类是所有类的父类,使用Object引用来接受所有的类型,参数原创 2022-05-08 10:37:07 · 373 阅读 · 2 评论 -
面向对象编程:抽象类和接口
文章目录一.抽象类1.1 什么是抽象类1.2抽象类的使用二.接口2.1接口的概念2.2接口的使用一.抽象类1.1 什么是抽象类若强制要求子类覆写方法,用到抽象类。现实生活中,有很多的抽象类,这些类都是一个概念化的,没发具体到某个实例,描述这一类对象共同的属性和行为。人类->抽象,没法对应到具体某个或某一类人,例如中国人,日本人,印度人。抽象类是普通类的超集,只是比普通类多了一些抽象方法而已[0…N],抽象方法所在的类必须是抽象类,子类若继承了抽象类,必须覆写所有抽象方法(前提,子类是普通类原创 2022-05-06 10:05:50 · 250 阅读 · 1 评论 -
面向对象编程:关于类的访问修饰符
文章目录一.类的访问修饰符二.包的导入一.类的访问修饰符从小到大依次为:private(私有,当前类的内部可见)< default(啥也不用写就是包权限,当前包的内部可见,不包含子包,同级目录下可见)<protect(继承权限,不同包的有继承关系的类之间可见)<public(当前项目可见)java中的包就对应操作系统的文件夹声明一个包使用package关键字若存在多个文件夹的嵌套,使用“.”来分隔package www.bit.java.rocketclass有几个点创造几个原创 2022-04-29 12:03:03 · 821 阅读 · 1 评论 -
数据结构及算法:双向链表
文章目录一.双向链表的意义二.双向链表的使用1.头插法一.双向链表的意义单链表:单向链表,默认只能从链表的头部遍历到链表的尾部,实际中的应用很少见,太局限,只能从头遍历到尾部。双向链表:对于该链表中的任意节点,即可通过该节点向后走,也可以通过该节点向前走。双向链表实际工程中应用非常广泛,是使用链表这个结构的首选。二.双向链表的使用1.头插法...原创 2022-04-26 14:37:35 · 1222 阅读 · 1 评论 -
数据结构及算法:动态数组及链表
文章目录一.循序表和链表1.线性表二.动态数组1.什么是动态数组2.添加方法3.查4.修改5.删除一.循序表和链表1.线性表线性表是n个具有相同元素的有限序列,线性表是一种实际中广泛使用的数据结构,常见的线性链表:循序表(数组),链表,栈,队列,字符串。也就是多个相同数据类型的元素逻辑上呈直线排列,逻辑上连续。逻辑连续:1号元素在2号元素之前,2号元素在1号元素之后,这种先后循序指的逻辑上的先后,物理上不一定连续(存储时,不一定就是1在2的前面,不是连续存储),比如链表。二.动态数组1.什么是动原创 2022-04-24 15:23:11 · 966 阅读 · 1 评论 -
数据结构及算法:时间和空间复杂度
文章目录一.时间和空间复杂度分析1.算法效率2.时间复杂度2.空间复杂度一.时间和空间复杂度分析1.算法效率算法效率分析分为两种:第一种时间效率,第二种空间效率,时间效率被称为时间复杂度,而空间效率被称为空间复杂的,时间效率主要是衡量一个算法的运行速度,而空间复杂度是衡量一个算法所需要的额外空间,在计算机发展早期,计算机的存储容量很小,所以对时间复杂度很是在乎,但经过计算机行业的迅速发展,计算机的容量已经到达了很高的程度,所以如今我们已经不需要的别关注一个算法的空间复杂度。为了估算一个算法的耗时情况原创 2022-04-18 11:09:49 · 327 阅读 · 1 评论