自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Log4j学习笔记

简介Log4J 是 Apache 的一个开源项目(官网 http://jakarta.apache.org/log4j),通过在项目中使用 Log4J,我们可以控制日志信息输出到控制台、文件、GUI 组件、甚至是数据库中。我们可以控制每一条日志的输出格式,通过定义日志的输出级别,可以更灵活的控制日志的输出过程。方便项目的调试。组成Log4J 主要由 Loggers (日志记录器)、Appenders(输出端)和 Layout(日志格式化器)组成。其中 Loggers 控制日志的输出级别与日志是否输出;

2022-01-08 21:49:15 176

原创 带哨兵节点和不带哨兵节点的单链表操作的对比

带哨兵节点和不带哨兵节点的单链表操作的对比定义哨兵结点:哨兵结点(sentinel)是一个哑元结点(dummy node),可以简化边界条件。是一个附加的链表结点,该结点作为第一个结点,它的值域中并不存储任何东西,只是为了操作的方便而引入的。如果一个链表有哨兵结点的话,那么线性表的第一个元素应该是链表的第二个结点。很多情况下,需要处理当前节点的前驱节点,如果是没有哨兵节点的链表,对第一个节点,即头节点,没有前驱节点。如果不作特殊处理,就可能出错;如果对它特别对待,就会增加代码复杂性,还会降低程序效率。

2021-10-19 17:33:34 415

原创 三种高级排序及其实现(希尔,归并,选择)

高级排序之前我们学习过基础排序,包括冒泡排序,选择排序还有插入排序,并且对他们在最坏情况下的时间复杂度做了分析,发现都是O(N^2),而平方阶通过我们之前学习算法分析我们知道,随着输入规模的增大,时间成本将急剧上 升,所以这些基本排序方法不能处理更大规模的问题,接下来我们学习一些高级的排序算法,争取降低算法的时间 复杂度最高阶次幂。希尔排序希尔排序是插入排序的一种,又称“缩小增量排序”,是插入排序算法的一种更高效的改进版本。前面学习插入排序的时候,我们会发现一个很不友好的事儿,如果已排序的分组元素为

2021-10-14 00:45:43 322

原创 三种简单排序及其实现(冒泡,选择,插入)

在我们的程序中,排序是非常常见的一种需求,提供一些数据元素,把这些数据元素按照一定的规则进行排序。比 如查询一些订单,按照订单的日期进行排序;再比如查询一些商品,按照商品的价格进行排序等等。所以,接下来 我们要学习一些常见的排序算法。 在java的开发工具包jdk中,已经给我们提供了很多数据结构与算法的实现,比如List,Set,Map,Math等等,都 是以API的方式提供,这种方式的好处在于一次编写,多处使用。我们借鉴jdk的方式,也把算法封装到某个类中, 那如果是这样,在我们写java代码之前,就需要

2021-10-12 01:05:35 390

原创 java实现二叉查找树

二叉查找树性质​ 开始这篇文章之前,首先我们回顾一下链表和数组元素查找方式,链表和数组查找某个元素必须从头节点往后遍历依次查找元素。这样的查找效率非常的低,如果使用二叉查找树则可以大大提高查找效率,接下来我们看看二叉查找树的创建规则。二叉查找树的性质和规则​ 首先我们来看看二叉查找树是什么:它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。

2021-10-10 01:01:21 1094 2

原创 使用二叉树解决折纸问题

题目:请把一段纸条竖着放在桌子上,然后从纸条的下边向上方对折1次,压出折痕后展开。此时 折痕是凹下去的,即折 痕突起的方向指向纸条的背面。如果从纸条的下边向上方连续对折2 次,压出折痕后展开,此时有三条折痕,从上 到下依次是下折痕、下折痕和上折痕。 给定一 个输入参数N,代表纸条都从下边向上方连续对折N次,请从上到下打印所有折痕的方向 例如:N=1时,打 印: down;N=2时,打印: down down up分析:咱们可以自己试着用值,折一次,两次,三次,观察折出来的折痕,博主自己尝试之后..

2021-09-28 01:11:44 259

原创 java实现队列数据结构

队列队列是一种基于先进先出(FIFO)的数据结构,是一种只能在一端进行插入,在另一端进行删除操作的特殊线性表,它 按照先进先出的原则存储数据,先进入的数据,在读取数据时先读被读出来。队列的API设计类名Queue构造方法Queue():创建Queue对象成员方法1.public boolean isEmpty():判断队列是否为空,是返回true,否返回false2.public int size():获取队列中元素的个数 3.public T dequeue():从队

2021-09-28 00:16:43 115

原创 int和Integer的区别

int和Integer的区别Integer是int的包装类,int则是java的一种基本数据类型Integer变量必须实例化后才能使用,而int变量不需要Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值关于Integer和int的比较由于Integer变量实际上是对一个Integer对象的引用,所以两个通过new生成的Integer变量永远是不相等的(因为new生成的是两个对象,其内存地址不同)。Inte

2021-09-27 11:08:35 80

原创 java使用synchronized实现线程同步

线程同步什么是线程同步呢?现实生活中,我们会遇到“同一个资源,多个人都想使用”的问题,比如食堂排队打饭,每个人都想吃饭,最天然的解决办法就是排队,一个一个来。处理多线程问题,多个线程访问同一个对象,并且某些线程还想修改这些对象。这里我们就需要线程同步。线程同步就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程再使用队列+锁由于同一进程的多个线程共享一块存储空间,在带来方便的同时,也带来了访问冲突问题,为了保证数据在方法中被访问时的正确

2021-08-30 23:00:43 332

原创 hexo创建博客项目并设置butterfly主题

hexo创建博客项目并设置butterfly主题一、创建项目1、使用npm安装hexo,输入以下命令2、在指定文件夹下,通过hexo命令创建项目,folder 为文件夹名称3、进入刚刚创建的文件夹,安装依赖包二、修改主题1、在项目文件夹的根目录,使用npm安装butterfly主题2、找到项目中的_config.yml文件,修改主题(如下图)三、启动项目1、清除缓存2、构建项目3、启动工程项目启动成功后终端将输出访问地址:http://localhost:4000四、添加后台管理系统插件1、输入下面命令安装

2021-08-20 23:26:16 888 3

原创 HTML:认识html文件基本结构

HTML文件时有自己固定的结构的。 ...... ....... 代码讲解: 1、 称为根标签,所有的网页标签都在、 中。 2、标签用于定义文档 的头部,它时所有元素的容器。头部元素有,...

2020-04-08 21:20:36 163

原创 java如何设置游戏窗体以及画图形

创建GameFrame类,继承于JFrame(窗体类)import javax.swing.JFrame;/* * java中的窗体类JFrame * 自定义游戏窗体的步骤: * 1、写一个类、继承JFrame 在类名后面接extends JFrame * 2、写一个构造方法,确定窗体的特点 */public class GameFrame extends JFrame { /...

2020-03-08 09:11:50 1474

空空如也

空空如也

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

TA关注的人

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