- 博客(52)
- 收藏
- 关注
原创 BFS与队列实现
队列是一种常见的数据结构,它具有先进先出(FIFO)的特点。在队列中,新的元素总是添加到队列的末尾(称为队尾),而旧的元素总是从队列的前面(称为队头)被移除。队列通常用于在多个线程之间共享数据,或者在算法中执行广度优先搜索等任务。Java中提供了Queue接口来表示队列。Queue接口扩展了Collection接口,提供了专门针对队列操作的方法。
2023-06-20 20:26:34 979
原创 LinkedList基本操作
LinkedList是Java中的一个双向链表实现,它提供了对链表的基本操作。在LinkedList中,每个元素都被包装在一个节点中,并且每个节点都包含指向前一个节点和后一个节点的引用。这种结构使得在LinkedList中插入、删除和访问元素的操作具有高效性能。LinkedList的底层数据结构是一个双向链表,每个节点包含三个属性:元素值、前驱节点的引用(prev)和后继节点的引用(next)。通过这种方式,可以在链表中轻松地在任意位置插入、删除元素。
2023-06-18 13:53:18 779 1
原创 JVM垃圾回收
Java是支持自动垃圾回收的,有些语言不支持自动垃圾回收(C++)自动垃圾回收不是Java的首创垃圾是什么?在 JVM 中垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。哪些区域需要回收垃圾?堆,方法区为什么要GC如果不及时对内存进行垃圾清理,那么,这些垃圾所占的内存空间会一直保留到应用程序结束,被保留的空间无法被其他对象使用,甚至可能导致内存溢出,也就是常说的 OOM在回收时还可以将内存碎片进行整理(数组必须使用连续空间)
2023-02-09 20:07:04 548
原创 JVM运行时数据区
程序计数器,Java栈,本地栈是线程私有的程序计数器不会出现内存溢出java栈,本地栈,堆,方法区,可能会出现内存溢出java栈,本地栈,堆,方法区大小是可以调整的堆,方法区是线程共享的,是可以进行垃圾回收的。
2023-02-05 22:23:56 346
原创 JVM结构 类加载
对字节码文件格式进行验证,看文件是否被污染,对基本语法格式进行验证。不包含使用final修饰的static变量,在编译时进行初始化。逐级向上委托,最终引导类加载器找到了系统中真正的String。将字节码中的表现形式,转为内存中表现(内存地址):类的初始化,为类中定义的静态变量进行赋值。:将类的二进制中符号引用替换为直接引用。类什么时候会被加载(初始化)?静态常量在编译期间就被初始化。: 准备阶段负责对类的。
2023-02-03 18:09:40 405
原创 JVM概述
关于JVM,在百度上的解释为:JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。要了解JVM 首先得知道什么是虚拟机。
2023-02-01 17:22:48 92
原创 【数据结构】堆
堆堆的定义(最大)堆是一个可以被看成一棵树的数组对象,满足如下性质:堆中的父亲结点总大于或等于其左右孩子结点的值总是一棵完全二叉树完全二叉树若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。根据堆的性质可以得出如下结论根节点没有父亲结点除根节点之外的任意结点(i)的父亲结点的索引为: parent = i/2任意结点的左孩子结点的索引为: leftIndex = 2 * i任意结
2023-01-10 09:52:21 386
原创 数据结构与算法
在计算机科学和互联网的迅猛发展下,需要计算的数据量越来越大。但是计算机的物理空间和计算能力是有限的,所以需要使用合适的数据结构和算法来对这些数据进行优化和处理。选用合适的数据结构和算法,在处理体量非常大的数据时,可以极大的提高计算效率和数据处理能力。学习算法和数据结构可以加强程序员的思维能力,让程序员能更好的写出高质量代码,减少代码重复堆叠。树型结构:二叉树、二分搜索树、AVL树、红黑树、堆、Trie树、线段树、并查集…线性结构:数组、队列、栈、链表、哈希表…图结构:邻接矩阵、邻接表。
2022-12-14 12:46:51 123
原创 Mybatis(3)
Mybatis 对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,一级缓存只是相对于同一个 SqlSession 而言。所以在参数和 SQL 完全一样的情况下,我们使用同一个 SqlSession 对象调用一个 Mapper 方法,往往只执行一次 SQL,因为使用 SelSession 第一次查询后,MyBatis 会将其放在缓存中,以后再查询的时候,如果没有声明需要刷新,并且缓存没有超时的情况下,SqlSession 都会取出当前缓存的数据,而不会再次发送 SQL 到数据库a、MyBati
2022-12-13 21:26:51 96
原创 十大排序算法(下)
六、快速排序代码实现public void quickSort(int[] arr, int left, int right) { if (left >= right) { return; } //递归操作 int pri = arr[left]; int i = left; int j = right; while (i < j) {
2022-12-07 20:25:23 181
原创 Mybatis(2)
/定义resultMap < resultMap id = " userResultMap " type = " User " > < id column = " id " property = " id_ " /> < result property = " userName " column = " user_Name_ " /> < result property = " userAge " column = " user_age " />
2022-12-02 14:17:28 1409 1
原创 Mybatis(1)
/在街口中定义方法 public interface userDao() {//保存user的接口方法 void saveUser(USer uesr);}
2022-11-21 19:10:52 227
原创 十大排序算法(上)
算法稳定性 – 假设在数列中存在a[i]=a[j],若在排序之前,a[i]在a[j]前面;并且排序之后,a[i]仍然在a[j]前面。则这个排序算法是稳定的!
2022-11-09 21:37:08 106
原创 Maven框架简述
Maven是Apache 软件基金会的一个开源项目,是一个优秀的项目构建工具,它用来帮助开发者管理项目中的jar,以及jar之间的依赖关系、完成项目的编译、测试、打包和发布等工作。
2022-08-31 00:38:16 1854
原创 Ajax(简述)
Ajax 全称为:“Asynchronous JavaScript and XML”(异步JavaScript 和 XML)使用Ajax,我们可以无刷新状态更新页面,并且实现异步提交,提交了用户体验。Ajax其实质是利用浏览器提供的一个特殊的一个特殊的对象(XMLHttpRequest)异步地向服务器发送请求服务器返回部分数据,浏览器让你去利用这些数据对页面做部分的更新,整个过程,页面无刷新,不打断用户的操作。...
2022-08-19 08:17:42 622
原创 数据库基础(2)
多表设计表设计原则:为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结目前关系数据库有5种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般来说,数据库只需满足第三范式(3NF)就行了。
2022-05-22 23:55:10 128
原创 JavaSE学习笔记(12)
JavaWeb笔记java网络编程计算机网络把分布在不同地理区域的具有独立功能的计算机,通过同心设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序Java提供的网络类库,可以实现网络连接,联网的底层细节被隐藏在Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境网络编程
2022-05-12 00:13:25 259
原创 JavaSE学习笔记(11)
io流什么是IO流I O 即:int和out根据流向来进行描述的方式,究竟是输入还是输出,站在内存的角度看。所有从设备到内存的过程成为输入,所有从内存到其它设备的过程成为输出java中操作输入输出使用的都是流对象,都在io包中的类输入和输出的概念输入输出(I/O)把电脑硬盘上的数据读到程序中,称为输入,即input, 进行数据的read操作从程序网外部设备写数据,成为输出,即为output 进行数据的write 操作字节流和字符流从数据流编码格式上将流划分为字
2022-05-09 20:50:35 97
原创 数据库基础(1)
数据库概述数据库(DataBase)为了方便数据的存储和管理,它将数据按照特定的规则存储在磁盘上,就是一个存储数据的仓库。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。数据库的相关概念DB:数据库(DataBase)存储数据的容器,它保存了一系列有组织的数据。DBMS:数据库管理系统(DataBase Management System)又称为数据库软件或数据库产品,用于创建或管理DB。SQL:结构化查询语言(Structure Query Language)用于
2022-04-03 00:14:12 199
原创 Tank大战游戏模拟(java版)
Java小项目 – 坦克大战1.任务分析玩家进入游戏,通过操纵坦克来守卫基地,摧毁全部敌方坦克来取得胜利,如果基地被摧毁,或者玩家坦克被摧毁,则判定游戏失败2.具体分析图形用户界面使用GUI技术实现,游戏中坦克的方向转动可以通过四种不同的图片(上下左右)来模拟实现,爆炸特效可以通过一连串递进的图片来模拟实现。3.程序预览如图随机生成了可以被敌我双方坦克击碎的方块,固定生成了我方坦克和我方基地的位置,通过WSAD 空格 或者 上下左右键盘移动 K 攻击键 来实现我方坦克的移动攻击,
2022-03-14 17:07:47 551 1
原创 JavaSE学习笔记(9)
Day 9集合类集合的概念当我们需要保存一组一样(类型相同)的元素的时候,我们应该使用一个容器来存储,数组就是这样一个容器数组的缺点: 数组一旦定义,长度将不能再变化在开发的过程中,需要使用能够动态增长长度的容器来保存数据,而且我们需要对数据的保存的逻辑可能各种各样,于是就有了各种各样的数据结构。Java中对于各种数据结构的实现,就是我们用到的集合集合与数组的区别长度区别 : 集合长度可变,数组长度不可变内容区别 : 集合可以存储不同类型的元素,数组只能存储单一类型的元素
2022-01-06 13:56:12 916
原创 JavaSE学习笔记 (Day8)
Day8java异常概念异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”.Java程序在执行过程中所发生的异常(运行时一切不正常情况)事件可分为两类:Error: Java虚拟机无法解决的严重问题,如:JVM系统内部错误、资源耗尽等严重情况。一般不编写针对性进行处理Exception: 因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。 例如: 1、数组下标越界 : arrayindexoutofboundsexceptio
2021-12-26 00:45:05 106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人