![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java基础
文章平均质量分 90
JavaSE基础
CHH3213
主要研究自动驾驶决策规划控制。
每天都要保持健康的状态,提升专业能力,谨慎投资!
展开
-
【尚硅谷_数据结构与算法】六、十大经典排序算法解析与java/c++实现
文章目录1. 冒泡排序(Bubble Sort)2. 快速排序(Quick Sort)1. 冒泡排序(Bubble Sort)基本概念冒泡排序通过重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。原理描述通过对待排序序列从前向后,依次比较相邻元素的排序码,若发现逆序则交换,使排序码较大的元素逐渐从前部移向后部。实现步骤(默认升序的情况)比较相邻的元素,如果前一个比后一个大,就交换这两个数;针对所有元素重复以上的步骤,最后一个除外,直到没有任何一对数字原创 2022-01-01 13:26:45 · 731 阅读 · 0 评论 -
【尚硅谷_数据结构与算法】十二、算法
文章目录参考文献1. 分治算法1.1 基本介绍1.2 基本算法步骤1.3 算法实践——汉诺塔2. 动态规划算法2.1 核心思想2.2 算法实践——背包问题3. KMP算法3.1 应用场景-字符串匹配问题3.2 KMP算法介绍3.2.1 思路分析3.2.2 部分匹配表的产生4. 贪心算法4.1 算法介绍4.2 算法应用——集合覆盖4.2.1 思路分析4.3 算法应用——钱币找零参考文献数据结构与算法https://www.bilibili.com/video/BV1E4411H73v?p=153原创 2022-02-20 17:04:20 · 818 阅读 · 0 评论 -
【尚硅谷_数据结构与算法】十一、图
文章目录参考资料1. 基本介绍1.1 定义1.2 常用概念1.3 表示方式参考资料https://www.bilibili.com/video/BV1E4411H73v?p=146数据结构与算法1. 基本介绍1.1 定义线性表局限于一个直接前驱和一个直接后继的关系树也只能有一个直接前驱也就是父节点当我们需要表示多对多的关系时,这里我们就用到了图。图是一种数据结构,其中结点可以具有零个或多个相邻元素。两个结点之间的连接称为边。结点也可以称为顶点。1.2 常用概念顶点(verte原创 2022-02-19 11:04:15 · 534 阅读 · 0 评论 -
【尚硅谷_数据结构与算法】十、多路查找树
文章目录参考资料1. 二叉树问题分析2. 多叉树2.1 2-3树2.1.1 2-3树特点2.1.2 2-3树插入规则2.2 B树、B+和B*树2.2.1 B树2.2.2 B+树2.2.3 B*树参考资料https://www.bilibili.com/video/BV1E4411H73v?p=142数据结构与算法1. 二叉树问题分析二叉树的操作效率较高,但是也存在问题,请看下面的二叉树二叉树需要加载到内存的,如果二叉树的节点少,没有什么问题,但是如果二叉树的节点很多(比如1亿),就存在如原创 2022-02-18 15:18:11 · 146 阅读 · 0 评论 -
【尚硅谷_数据结构与算法】九、树结构
文章目录参考文献1. 二叉树1.1 为什么需要树1.2 树的基本概念1.3 二叉树的概念1.4 二叉树的遍历1.5 二叉树的查找1.5.1 前序查找思路1.5.2 中序查找思路1.5.3 后序查找思路1.6 二叉树的删除1.6.1 基本思路参考文献https://www.bilibili.com/video/BV1E4411H73v?p=90数据结构与算法1. 二叉树1.1 为什么需要树数组存储方式的分析优点: 通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度原创 2022-02-18 14:43:15 · 604 阅读 · 0 评论 -
【尚硅谷_数据结构与算法】八、哈希表
文章目录参考文献1. 基本概念2. Google上机题参考文献https://www.bilibili.com/video/BV1E4411H73v?p=87数据结构与算法1. 基本概念散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。哈希表是一种将数组与链表相结合的数据结构示例程序参考gitee原创 2022-02-16 12:04:31 · 309 阅读 · 0 评论 -
【尚硅谷_数据结构与算法】七、查找
文章目录参考资料1. 查找算法介绍2. 线性查找3. 二分查找3.1 基本思路3.2 查找的值有多个时如何处理4. 插值查找4.1 基本思路4.2插值查找注意事项:5. 斐波那契(黄金分割法)查找5.1 基本介绍5.2 基本思路参考资料https://www.bilibili.com/video/BV1E4411H73v?p=77数据结构与算法1. 查找算法介绍在java中,我们常用的查找有四种:1) 顺序(线性)查找2) 二分查找/折半查找3) 插值查找4) 斐波那契查找2. 线性原创 2022-02-16 10:42:43 · 455 阅读 · 0 评论 -
【尚硅谷_数据结构与算法】五、递归
文章目录参考资料1. 概念2. 常见应用场景3. 递归调用规则4. 迷宫问题4.1 思路4.2 对迷宫问题的讨论4.3 代码实现5. 八皇后问题5.1 问题介绍5.2 思路分析5.3 代码实现参考资料https://www.bilibili.com/video/BV1E4411H73v?p=43数据结构与算法1. 概念递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。递归用到了虚拟机栈2. 常见应用场景八皇后问题汉原创 2022-02-14 21:04:31 · 339 阅读 · 0 评论 -
【尚硅谷_数据结构与算法】四、栈
文章目录参考资料1. 定义2. 应用场景3. 实现3.1 用数组实现4. 应用4.0 前缀、中缀、后缀表达式(逆波兰表达式)知识4.0.1. 前缀表达式4.0.2. 中缀表达式4.0.3. 后缀表达式4.1 表达式求值(中缀表达式)4.2 中缀转后缀4.3 逆波兰计算器参考资料https://www.bilibili.com/video/BV1E4411H73v?p=30Java数据结构与算法1. 定义栈(Stack)是一个先入后出(FILO-First In Last Out)的有序列表。原创 2022-02-14 14:39:58 · 474 阅读 · 0 评论 -
【尚硅谷_数据结构与算法】三、链表
文章目录参考资料1. 链表介绍2. 单链表(带头结点)2.1 应用实例2.1.1 添加方式12.1.2 添加方式22.1.3 删除2.1.4 修改节点2.2 实现步骤总结2.3 单链表常见面试题(新浪,腾讯,百度)2.3.1 求单链表中有效节点的个数2.3.2 查找单链表中的倒数第k个结点2.3.3 链表的反转参考资料https://www.bilibili.com/video/BV1E4411H73v?p=16&spm_id_from=pageDriver1. 链表介绍链表是有序的列表,原创 2022-01-30 16:04:12 · 884 阅读 · 0 评论 -
【尚硅谷_数据结构与算法】二、稀疏数组和队列
文章目录参考资料1. 稀疏数组1.1 介绍1.2 应用实例2. 队列2.1 简述2.2 数组模拟队列思路2.3 数组模拟环形队列参考资料https://www.bilibili.com/video/BV1E4411H73v?p=16&spm_id_from=pageDriver1. 稀疏数组问题引入1.1 介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:首先,稀疏数组的首行记录原数组一共有几行几列,有多少个不同的值原创 2022-01-27 15:51:23 · 645 阅读 · 0 评论 -
【尚硅谷_数据结构与算法】一、数据结构与算法概述
文章目录参考资料1. 数据结构与算法的关系2 看几个实际编程中遇到的问题3. 线性结构和非线性结构参考资料https://www.bilibili.com/video/BV1E4411H73v?p=6&spm_id_from=pageDriver1. 数据结构与算法的关系数据data结构(structure)是一门研究组织数据方式的学科,有了编程语言也就有了数据结构学好数据结构可以编写出更加漂亮更加有效率的代码。要学习好数据结构就要多多考虑如何将生活中遇到的问题,用程序去实现解决.程原创 2022-01-27 10:09:06 · 1452 阅读 · 0 评论 -
【尚硅谷_java基础】十七、Java8新特性
文章目录参考资料0. Java 8新特性简介0.1 Java8新特性的好处0.2 并行流与串行流1. Lambda表达式1.1 为什么使用 Lambda 表达式1.2 语法1.3 类型推断2. 函数式(Functional)接口2.1 什么是函数式(Functional)接口2.2 作为参数传递 Lambda 表达式2.3 Java 内置四大核心函数式接口3. 方法引用与构造器引用3.1 方法引用3.2 构造器引用和数组引用3.2.1 构造器引用3.2.2 数组引用3.2.3 示例4. 强大的Stream原创 2022-01-24 17:48:25 · 477 阅读 · 0 评论 -
【尚硅谷_java基础】十六、反射机制
文章目录参考资料1. Java反射机制概述1.1 补充:动态语言 vs 静态语言1.2 Java反射机制研究及应用2. 理解Class类并获取Class实例3. 类的加载与ClassLoader的理解4. 创建运行时类的对象5. 获取运行时类的完整结构6. 调用运行时类的指定结构7. 反射的应用:动态代理参考资料1. Java反射机制概述Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及原创 2022-01-23 21:43:58 · 399 阅读 · 0 评论 -
【尚硅谷_java基础】十五、网络编程
文章目录参考资料1. 网络编程概述2. 网络通信要素概述3. 通信要素1: IP和端口号4. 通信要素2:网络协议5. TCP网络编程6. UDP网络编程7. URL编程参考资料1. 网络编程概述Java是Internet 上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序。Java提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在Java 的本机安装系统里,由JVM 进行控制。并且Java 实现了一个跨平台的网络库,程序员面对的是一个统一的原创 2022-01-22 16:10:40 · 377 阅读 · 0 评论 -
【尚硅谷_java基础】十四、IO流
文章目录参考资料1. File类的使用1.1 实例化1.2 常用方法2. IO流原理及流的分类3. 节点流(或文件流)4. 缓冲流5. 转换流6. 标准输入、 输出流7. 打印流8. 数据流9. 对象流10. 随机存取文件流11. NIO.2中Path、 Paths、Files类的使用参考资料1. File类的使用1.1 实例化java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关File 能新建、删除、重命名文件和目录,但File 不能访问文件内容本身。如果需要访问文件原创 2022-01-21 16:55:06 · 1275 阅读 · 0 评论 -
【尚硅谷_java基础】十三番外:泛型补充
文章目录1.介绍2. 泛型和子类继承3. 通配符(Wildcards)4. 泛型方法1.介绍不使用泛型下的用法:List myIntList = new ArrayList();// 1myIntList.add(new Integer(0));// 2Integer x = (Integer) myIntList.iterator().next();// 3通常情况下,程序员知道一个特定的 list里边放的是什么类型的数据。但是,这个类型转换是必须的(essential)。编译器只能保证原创 2022-01-14 23:22:29 · 184 阅读 · 0 评论 -
【尚硅谷_java基础】十三、泛型
文章目录参考资料1. 为什么要有泛型1.1 泛型的概念1.2 为什么要有泛型2. 在集合中使用泛型3. 自定义泛型结构3.1 泛型类、泛型接口3.2 泛型方法4. 泛型在继承上的体现5. 通配符的使用5.1 通配符的使用:注意点5.2 有限制的通配符6. 泛型应用举例参考资料1. 为什么要有泛型泛型: 标签泛型的设计背景集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把元素类型设计为Object,JDK1.5之后使用泛型来解决。因为这个原创 2022-01-14 22:07:33 · 423 阅读 · 0 评论 -
【尚硅谷_java基础】十二、Java集合
文章目录参考资料1. Java集合框架概述1.1 集合的使用场景2. Collection接口方法3. Iterator迭代器接口4. Collection子接口一:List5. Collection子接口二:Set6. Map接口7. Collections工具类参考资料1. Java集合框架概述一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用Array存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引原创 2022-01-13 12:14:37 · 818 阅读 · 0 评论 -
【尚硅谷_java基础】十一、枚举类和注解
文章目录参考资料1. 枚举类的使用1.1 自定义枚举类1.2 使用enum关键字定义枚举类1.3 实现接口的枚举类2. 注解的使用2.1 注解(Annotation)概述2.2 常见的Annotation示例2.3 自定义Annotation2.4 JDK中的元注解2.5 利用反射获取注解信息2.6 JDK 8中注解的新特性3. 练习参考资料https://www.runoob.com/java/java-enum.html1. 枚举类的使用类的对象只有有限个,确定的。举例如下:星期:Mo原创 2022-01-10 21:05:19 · 431 阅读 · 0 评论 -
【尚硅谷_java基础】十、Java常用类
文章目录1. 字符串相关的类1.1 String的特性1.2 String不同实例化方式的对比2. JDK 8之前的日期时间API3. JDK 8中新日期时间API4. Java比较器5. System类6. Math类7. BigInteger与BigDecimal1. 字符串相关的类1.1 String的特性String类:代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。String是一个final类,不可被继承,代表不可变的字符序列。字符串原创 2022-01-09 22:57:25 · 339 阅读 · 0 评论 -
【尚硅谷_java基础】九、多线程
文章目录参考资料1. 基本概念:程序、进程、线程1.1 进程与线程1.2 使用多线程的优点1.3 何时需要多线程2. 线程的创建和使用2.1 线程的创建和启动2.2 Thread类2.3 API中创建线程的两种方式2.3.1 方式一:继承`Thread`类的方式2.3.2 方式二:实现Runnable接口2.3.3 继承方式和实现方式的联系与区别2.4 线程的优先级2.5 线程的调度2.6 线程的分类3. 线程的生命周期4. 线程的同步4.1 问题的提出4.2 Synchronized的使用方法5. 线程的原创 2022-01-08 09:45:15 · 1116 阅读 · 0 评论 -
【尚硅谷_java基础】Project3:开发团队调度软件
文章目录1. 目标2. 需求说明3. 模块设计结构4. 步骤1. 目标2. 需求说明3. 模块设计结构4. 步骤原创 2022-01-03 12:08:58 · 470 阅读 · 0 评论 -
【尚硅谷_java基础】八、异常处理
文章目录1. 异常概述与异常体系结构1.1 运行时异常1.2 编译时异常2. 常见异常3. 异常处理机制一: try-catch-finally3.1 异常的抛出机制3.2 try-catch-finally机制3.3 不捕获异常时的情况4. 异常处理机制二: throws4.1 重写方法声明抛出异常的原则5. 手动抛出异常: throw6. 用户自定义异常类6.1 如何自定义异常类6.2 练习7. 总结8. 练习1. 异常概述与异常体系结构在使用计算机语言进行项目开发的过程中,即使程序员把代码写原创 2022-01-01 22:08:16 · 559 阅读 · 0 评论 -
【尚硅谷_java基础】七、面向对象(下)
文章目录参考文献1. 关键字:static1.1 类属性、类方法的设计思想2. 理解main方法的语法3. 类的成员之四:代码块4. 关键字:final5. 抽象类与抽象方法6. 接口(interface)7. 类的成员之五:内部类参考文献1. 关键字:static当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过 new 关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用。我们有时候希望无论是否产生了对象或无论产生了多少对象的原创 2022-01-01 13:17:33 · 842 阅读 · 0 评论 -
【尚硅谷_java基础】工厂设计模式
文章目录1. 面向对象的设计原则1.1 OCP (开闭原则, Open-Closed Principle)1.2 DIP (依赖倒转原则, Dependence Inversion Principle)1.3 LOD (迪米特法则, Law Of Demeter)2. 工厂模式的分类2.1 无工厂模式2.2 简单工厂模式2.3 工厂方法模式2.4 4、抽象工厂模式本篇来自于尚硅谷Java入门视频教程课件。工厂模式实现了创建者与调用者的分离,即将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。其原创 2022-01-01 13:15:33 · 177 阅读 · 0 评论 -
【尚硅谷_java基础】六、面向对象(中)
文章目录参考资料1. 面向对象特征之二:继承性1.1 继承的概念1.2 继承的作用1.3 继承的类型1.4 继承的特性1.5 继承关键字1.6 练习2. 方法的重写2.1 定义2.2 要求2.3 示例2.4 方法的重载回顾2.5 重写与重载之间的区别3. 四种访问权限修饰符4. 关键字:super4.1 作用4.2 调用父类的构造器4.3 this和super的区别5. 子类对象实例化过程6. 面向对象特征之三:多态性6.1 理解多态性6.2 多态的优点6.3 多态存在的三个必要条件6.4 对象类型转换6原创 2021-12-29 10:17:11 · 415 阅读 · 0 评论 -
【尚硅谷_java基础】Project 2:客户信息管理软件
文章目录1. 目标2. 需求说明3.软件设计结构4. 设计1. 目标2. 需求说明3.软件设计结构4. 设计原创 2021-12-28 10:30:11 · 205 阅读 · 0 评论 -
【尚硅谷_java基础】五、面向对象(上)
文章目录参考资料1. 面向过程与面向对象2. 基本元素:类和对象2.1 类(class)和对象(object)是面向对象的核心概念2.2 类及类的成员2.3 类的语法格式2.4 创建自定义类步骤3. 对象的创建和使用3.1 内存解析3.2 [匿名对象](https://www.cnblogs.com/txbblog/p/10364558.html)4. 类的成员之一:属性(filed)4.1 语法格式4.2 变量的分类4.3 成员变量(属性)与局部变量的区别4.4 成员变量与局部变量的内存位置4.4 对象属原创 2021-12-26 10:46:00 · 603 阅读 · 0 评论 -
【尚硅谷_java基础】四、数组
文章目录参考资料1.数组的概述2. 一维数组的使用2.1 声明2.2 初始化2.3 数组元素的引用2.4 数组元素的默认初始化值2.5 内存的简化结构2.6 练习3. 多维数组的使用参考资料https://www.runoob.com/java/java-array.htmlhttps://www.cnblogs.com/huangminwen/p/5928315.htmlhttps://blog.csdn.net/qq_36743482/article/details/785273121.数组的原创 2021-12-25 11:58:14 · 649 阅读 · 0 评论 -
【尚硅谷_java基础】Project 1:家庭记账软件
文章目录1. 需求说明2. 代码实现2.1 Utility.java类2. 项目具体实现2.3实现效果如下:1. 需求说明2. 代码实现2.1 Utility.java类import java.util.Scanner;/**Utility工具类:将不同的功能封装为方法,就是可以直接通过调用方法使用它的功能,而无需考虑具体的功能实现细节。*/public class Utility { private static Scanner scanner = new Sca原创 2021-12-22 10:10:07 · 366 阅读 · 0 评论 -
【尚硅谷_java基础】三、基本语法(下)
文章目录1.流程控制2.分支结构2.1 if-else结构2.1.1 补充:输入语句--Scanner类2.2 switch-case结构3.循环结构3.1 for循环1.流程控制流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:顺序结构程序从上到下逐行地执行,中间没有任何判断和跳转。分支结构根据条件,选择性地执行某段代码。有if…else和switch-case两种分支语句。原创 2021-12-21 22:33:40 · 502 阅读 · 0 评论 -
【尚硅谷_java基础】二、基本语法(上)
文章目录1. 关键字与保留字1.1 关键字的定义和特点1.2 保留字2. 标识符3. 变量3.1变量的基础概念3.2 变量的声明和赋值3.3 变量类型3.3.1 整数数据类型3.3.2 浮点数据类型3.3.3 char类型补充:ASCII码,Unicode 编码,UTF-83.3.4 boolean类型3.4 基本数据类型转换3.5 字符串类型:String1. 关键字与保留字1.1 关键字的定义和特点定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)特点:关键字中所有字母都为小写原创 2021-12-21 10:12:59 · 292 阅读 · 0 评论 -
【尚硅谷_java基础】一、java语言概述
文章目录1. java基础知识图解2. 软件开发介绍3. 计算机编程语言介绍4. [语言排行榜](https://www.tiobe.com/tiobe-index/)5. java语言概述5.1 java简史5.2 java技术体系平台5.3 java在各领域的应用5.4 java语言的诞生5.5 java语言主要特性6. java运行机制6.1 java特点6.2 java两种核心机制6.2.1. Java虚拟机(Java VirtalMachine)6.2.2 垃圾收集机制(Garbage Coll原创 2021-12-19 16:21:28 · 710 阅读 · 0 评论