自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yuan_dai_ma的博客

我还年轻,吃苦趁现在!

  • 博客(24)
  • 收藏
  • 关注

原创 数据结构 --- 单链表面试题

数据结构 --- 单链表试题求单链表中有效节点的个数 查找单链表中倒数第k个节点 单链表的反转 单链表的逆序打印package linkedlist;import java.util.Stack;public class SingleLinkedListDemo1 { public static void main(String[] args) { Node a = new Node(1); Node b = new Node(2);

2021-06-25 16:13:46 193

原创 数据结构 --- 链表

数据结构 --- 链表 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的链接次序实现的。 链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。 不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间...

2021-06-25 01:30:09 373

原创 Java队列Queue的使用

Queue   Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接 口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用。 BlockingQueue(阻塞队列) 继承了Queue接口,涉及到多线程后面会讲。 Que...

2021-06-22 00:01:24 1767

原创 数据结构 --- 循环队列

循环队列 在实际使用队列时,为了使队列空间能重复使用,往往对队列的使用方法稍加改进:无论插入或删除,一旦rear指针增1或front指针增1 时超出了所分配的队列空间,就让它指向这片连续空间的起始位置。 可用取余运算 rear%MaxSize 和 front%MaxSize 来实现。这实际上是把队列空间想象成一个环形空间,环形空间中的存储单元循环使用,用这种方法管理的队列也就称为循环队列。除了一些简单应用之外,真正实用的队列是循环队列。...

2021-06-21 22:31:29 376

原创 数据结构 --- 队列

数据结构 --- 队列队列 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。 和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先...

2021-06-16 00:25:23 330 3

原创 稀疏数组

稀疏数组 稀疏数组可以看做是普通数组的压缩,但是这里说的普通数组是值无效数据量远大于有效数据量的数组为什么要进行压缩存储呢? 原数组中存在大量的无效数据,占据了大量的存储空间,真正有用的数据却少之又少 压缩存储可以节省存储空间以避免资源的不必要的浪费,在数据序列化到磁盘时,压缩存储可以提高IO效率 面临的实际需求:在编写五子棋程序中,我们要实现一个存盘退出 和续上盘的功能。当我们用用二维数组记录棋盘分析问题: 在棋盘刚开始时,二维数组大多数...

2021-06-15 22:12:04 148

原创 Java 数据结构与算法

Java 数据结构

2021-06-15 18:55:40 6815

原创 Java 可变长参数

可变长参数

2021-02-23 16:18:18 325 2

原创 Java 线程安全及线程同步synchronized

目录Java 线程安全及线程同步synchronized同步处理的引入问题出错的解决方案写法一:同步方法写法二:同步代码块写法3:同步静态方法重点银行存取钱操作小结synchronizedsynchronized底层语义原理多线程之间的数据通讯方法生产者消费者模式为什么要使用生产者/消费者模式生产者/消费者模型优点生产者/消费者模式的作用练习题售票模拟过山洞问题模拟龟兔赛跑模拟Lock的使用Condition接口

2021-02-23 11:47:46 349 2

原创 Java 枚举(enum)

枚举类型

2021-02-21 11:42:17 133

原创 时间空间复杂度

时间空间复杂度详解算法复杂度 算法复杂度分为时间复杂度和空间复杂度。时间复杂度是值执行算法所需要的计算工作量; 而空间复杂度是指执行这个算法所需要的内存空间。时间复杂度 由于运行环境和输入规模的影响,代码的绝对运行时间是无法估计的,但我们可以预估出代码的基本操作执行次数。 一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。 一个算法中的语句执行次数称为语句频度或时间频度,这个基本操作执行次数的函数记为T(n)。渐进时间复杂度(a...

2021-02-19 21:16:18 113

原创 Java 进程和线程 ---- (下)

Java 进程和线程 ---- (下)线程池 创建线程要花费昂贵的资源和时间,如果任务来了才创建线程那么响应时间会变长,而且一个进程能创建的线程数有限。为了避免这些问题,在程序启动的时候就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程。 从JDK1.5开始,Java API提供了Executor框架可以创建不同的线程池。比如单线程池,每次处理一个任务;数目固定的线程池或者是缓存线程池(一个适合很多生存期短的任务的程序的可扩展线程池)。 new T...

2021-02-19 17:41:52 138

原创 Java 进程和线程 ---- (上)

Java 进程和线程基础概念程序是为完成特定任务、用某种语言编写的一组指令的集合。指一段静态的代码,是一个静态的概念。进程(Process)具有一定独立功能程序的运行过程,是系统进行资源分配和调度的一个独立单位,重点在系统调度和单独的单位,也就是说进程是可以独立运行的一段程序。进程是程序的一次执行过程,通常是一个可执行程序在内存中的一个完整副本,每个进程都有自己的数据段、栈段和代码段,是一段完整的程序,在内存中占据较大的空间,是系统进行调度和资源分配的一个独立单位。是一个动态的概念。 .

2021-02-03 21:54:12 121

原创 Java 流模型 ---- (下)

Java流模型 --- (下)过滤流类型 过滤流就是在节点流的基础上附加功能。 //Java 内置类 FilterInputStreampublic class FilterInputStream extends InputStream { // 典型的装饰模式 protected volatile InputStream in; // 被装饰目标 protected FilterInputStream(InputStream in) { // 通过构造器组装被装饰对象 this.i

2021-01-31 20:28:36 139

原创 Java 流模型 ----(上)

Java 流模型

2021-01-28 16:52:12 145

原创 Java File文件类

目录Java File文件类概念和方法具体应用常用方法访问文件名的方法文件检测相关方法文件过滤器FilenameFilter语法糖Lambda表达式Lambda表达式的本质Lambda表达式存在的意义Path和Paths以及FilesJava File文件类概念和方法具体应用java.io.File用于封装和平台无关的文件夹和文件夹对象Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。F.

2021-01-27 16:43:04 533

原创 Java I/O流

Java I/O流Input/Output:指跨越出了JVM 的边界,与外界数据的源头或者目标数据源进行数据交换 Java程序会从各种地方输入数据,比如文件,磁盘,网络,其它程序中 Java会采用不同的方式输出执行结果,比如屏幕、文件、磁盘、网络等 输入/输出是针对JVM 而言 ...

2021-01-27 11:29:07 103

原创 Java 面向对象(OOP)关键字

Java 面向对象(OOP)关键字package和import this superfinalstaticabstract

2021-01-25 14:42:34 194

原创 java 面向对象(OOP)基本概念

java 面向对象(OOP)基本概念 面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。 面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。

2021-01-24 18:32:33 3200 1

原创 Java 抽象类 abstract关键字

目录Java 抽象类 abstract关键字抽象类的概念抽象类的作用抽象类和抽象方法模板模式Java 抽象类 abstract关键字抽象类的概念abstract 关键字声明抽象的概念!在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类不描绘对象。定义抽象类的目的是提供可由其子类共享的一般形式,子类可以根据自身需要扩展抽象类抽象类除了不能实例化

2021-01-23 22:11:02 177

原创 Java 内部类

Java 内部类内部类的概念及特点将一个类定义置入另一个类定义中,这就叫作“内部类” 。内部类之外的类称为外部类 。外部类无法为static。只允许public、abstract和final修饰符。 内部类的名称必须区别于它所在的外部类,和其它类之间没有要求 。

2021-01-23 12:22:46 117

原创 Java 异常处理

Java 异常处理异常概述 在程序中错误可能产生于程序员没有预料到的各种情况,或者超出了程序员可控范围的环境因素。 在Java中在程序运行时可能出现的错误叫做异常。 异常是一个在程序执行期间发生的事,它中断了正在执行的程序的正常指令流。 异常机制已经成为判断一门编程语言是否成熟的标准。 其实异常就是Java通过面向对象的思想将程序中的问题封装成了对象,用异常类对其进行描述。

2021-01-22 14:47:36 181

原创 Java 接口

目录Java 接口 接口(interface)的概念 接口的特点 接口的作用 接口的使用 接口的继承Java 接口 接口(interface)的概念接口是一种更加特殊的抽象类,是抽象类的延伸!可以看作是纯粹的抽象类。 抽象类是从多个类中抽象出来的模板,接口则是将这种抽象类抽象的更彻底。 可以用于规范实现接口的类中必须实现接口中抽象方法。接口可以理解为一种契约 。简述:规范类必须实现的方法。 可以使用关键字interface定义接口:...

2021-01-20 22:04:16 195

原创 孩子为什么要学JAVA---Java学习规划

- **一种编程语言、一种开发环境、一种应用环境、一种部署环境。** - 简单来说Java是一门计算机编程语言,面向对象的编程语言,和外语类似,反而相比外语更有逻辑性,作为一门语言,有语法、词法,有规则、有“固定搭配”,目的也都是为了实现交流,人与人或人与机器,都是一个概念。

2020-11-25 10:39:31 502

空空如也

空空如也

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

TA关注的人

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