![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaSE
Thinking帆
这个作者很懒,什么都没留下…
展开
-
JavaSE——数据结构(Map接口)
Map接口现实生活中,我们经常需要成对存储某些信息。比如,我们使用的微信,一个手机号只能对应一个微信账户。这就是一种成对存储的关系。Map集合用于存储“键值对”,键指的就是“key”,值指的就是“value”。Map集合中“key”必须唯一,但是“value”可以重复。 例如:生活中,每个人都有“身份证号”,此处的“身份证号”指的就是“key”,每个“身份证号”对应着一个“姓名”,此处的“姓名”值的就是“value”。 注意:生活中,身份证号肯定是唯一的,也就意味着Map集合中的...原创 2020-12-28 21:23:46 · 141 阅读 · 0 评论 -
JavaSE——使用Iterator迭代器遍历集合元素
Iterator迭代器Collection集合元素的通用获取方式:在取元素之前先要判断集合中有没有元素,如果有元素则把元素取出,然后继续再判断下一个元素,如果还有就再取出,直到把集合中的所有元素全部取出为止。这种取出方式专业术语称为迭代。Collection集合中把这种取元素的方式描述在Iterator接口中,Iterator接口的常用方法如下: 方法名 描述 boolean hasNext(); 判断集合中是否有下...原创 2020-12-28 21:14:39 · 2657 阅读 · 0 评论 -
Java 数据结构(栈)——数组、链表模拟栈实现
栈(Stack)栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作,栈的重要特点为:后进先出或先进后出。栈的特点:先进后出(FILO,First In Last Out),我们也称之为FILO表。Java中有一个类Stack,用于表示栈,但这个类已经过时了。目前,如果需要使用栈,那么应该使用Deque的接口来实现,Deque的接口的实现类是LinkedList类。 Java中没有单独的栈接口,栈相关方法包括在了表示双端队列的接口Deque中,主要有四个方...原创 2020-12-28 20:48:02 · 422 阅读 · 0 评论 -
Java数据结构(队列),数组模拟队列实现
队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,队列是一种操作受限制的线性表。进行插入操作(入口)的端称为队尾,进行删除操作(出口)的端称为队头。队列的特点:先进先出(FIFO,First In First Out),因此我们也称队列为FIFO表。LinkedList类实现了Queue接口,在Queue接口中提供的方法可以实现队列的相关操作。Queue接口扩展了Collection接口,常见的方法如下所示。Qu.原创 2020-12-28 20:31:13 · 126 阅读 · 0 评论 -
从零开始学Java系列教程(一):数据结构(Vector类)
Vector类Vector类是List接口的实现类,而List接口是Collection的子接口,因此Vector类可以使用List接口和Collection接口的所有方法。Vector类和ArrayList类的用法几乎一模一样,底层都是采用了数组结构,很多情况下可以互用。只不过Vector类的方法都加了同步检查,因此“线程安全,效率低”。比如:add(E e)方法就增加了synchronized同步标记。相比较于ArrayList,Vector还包含了许多传统的方法,虽然这些方法不..原创 2020-12-28 20:08:21 · 164 阅读 · 0 评论 -
从零开始学Java系列教程(一):数据结构(LinkedList类)
链式存储结构1、单链表 节点构成:由两部分组成,其中一部分用于存储节点中的数据(data),另外一部分用于存储指向下一个节点的地址值(next)。 重要特点:只能从一个方向遍历单链表,因此也称之为“单向链表”。 注意事项:单链表的尾结点的next存储的为null2、双链表 节点构造:由三部分组成,data用于存储节点中的数据,prev用于存储指向上一个节点的地址值,next用于存储指向下一个节点的地址值。 重要特点:既可以...原创 2020-12-28 20:01:11 · 154 阅读 · 0 评论 -
从零开始学Java系列教程(一):数据结构(List接口)
开发和学习中需要时刻和数据打交道,由于数组远远不能满足我们对于“管理和组织数据的需求”,所以我们需要一种更强大、更灵活的,容量随时可扩的容器来装载我们的对象。这就是我们要学习的容器或者叫集合,集合存储的数据必须是引用类型数据。1.集合的概述: 集合的本质就是一个容器,不同的集合所对应的数据结构也不一样,则对应的“增删改查”效率也就不一样。2.学习集合的核心 a)掌握集合的“增删改查”效率 b)掌握不同集合是否有序。 b)掌握不同集合是否可存储相同的元素。 ...原创 2020-12-28 19:48:58 · 130 阅读 · 0 评论 -
从零开始学Java系列教程(一):多态
多态的概述多态指的是同一个方法调用,由于对象不同可能会有不同的行为。现实生活中,同一个方法,具体实现会完全不同。多态的必要条件:继承是多态的前提 子类重写父类方法 父类引用指向子类对象多态的使用场合:使用父类做方法的形参,实参可以是任意子类类型 使用父类做方法的返回值类型,返回值可以是任意子类的对象多态的实现多态的实现主要表现在父类和继承该父类的一个或多个子类对某些方法的重写,多个子类对同一方法的重写可以表现出不同的行为。【示例】基于继承实现的多态---管理员给原创 2020-12-22 19:16:18 · 150 阅读 · 0 评论 -
JavaSE——关键字super的概述
super关键字概述创建一个对象成功之后,那么虚拟机就会动态的分配一个this引用,该this引用指向的就是创建出来的对象。如果创建的是一个继承体系下的对象,那么该对象创建成功之后,还会分配一个super引用,该super引用指向的就是当前对象的直接父类对象。this指的:当前对象。super指的:当前对象的直接父类对象。super关键字使用super可以理解为直接父类对象的引用,可以通过super来访问父类中被子类覆盖的方法或属性,super的使用和this关键字非常的相似。.原创 2020-12-16 21:29:31 · 214 阅读 · 0 评论 -
从零开始学Java系列教程(一):继承
继承的概念封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。在现实生活中,继承一般指的是子女继承父辈的财产。在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。从英文字面意思理解,extends的意思是“扩展”。子类是父类的扩展,现实世界中的继承无处不在,如下图所示:指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类(也称.原创 2020-12-16 21:01:40 · 96 阅读 · 0 评论 -
从零开始学Java系列教程(一):封装
封装的引入我要看电视,只需要按一下开关和换台就可以了。有必要了解电视机内部的结构吗?有必要碰碰显像管吗?制造厂家为了方便我们使用电视,把复杂的内部细节全部封装起来,只给我们暴露简单的接口,比如:电源开关。具体内部是怎么实现的,我们不需要操心。需要让用户知道的才暴露出来,不需要让用户知道的全部隐藏起来,这就是封装。从java的角度上来分析,封装是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式。封装的优点1、 提高代码的安全性。2、 提高代码的复用性。3、 使用时,只需要了解访问方原创 2020-12-16 20:43:13 · 126 阅读 · 0 评论 -
JavaSE高级——静态方法、静态代码块和构造代码块概述及其执行顺序
1.静态方法概念使用static关键字修饰的方法,我们称之为静态方法(类方法)。2.静态方法的特点a)静态方法随着类的加载就存在,也就静态方法是优先于对象存在。。 存在时间:随着类的加载就存在 加载次数:永远只会加载一次。b)静态方法从属于“类”和“对象”的,因此调用方式有两种: 方式一:类名.静态方法名(实参列表); --> 建议 方式二:对象.静态方法名(实参列表); --> 不建议c)main方法也是一个静态方法,m...原创 2020-12-16 20:18:39 · 515 阅读 · 0 评论 -
JavaSE高级——静态变量
1.静态变量的定义???定位位置:在类中,代码块和方法体之外。定义语法:[修饰符] static 数据类型 静态变量名切记:static不能用于修饰局部变量!!2.静态变量的特点???a)静态变量优先于对象存在,随着类的第一次加载就已经存在。--> 成员变量从属于对象,静态变量从属类。b)在一个类中,静态变量只有一份,为类和对象所共享。--> 因为类只会记载一次,则一个类中的静态变量只会创建一次。c)静态变量属于共享数据(为类和对象所共...原创 2020-12-16 20:06:59 · 193 阅读 · 0 评论 -
JavaSE高级——关键字this的概述
this关键字概述 当一个对象创建成功之后(执行构造方法之前,对象已经创建成功),虚拟机(JVM)就会动态的分配一个引用,这个引用指向的就是创建出来的对象,并且该引用的名字就叫做this。this在不同场合具体指的什么???a)在构造方法中this指的是什么 this指的就是刚创建出来的对象。b)在成员方法中this指的是什么 谁调用该方法,那么this指的就是谁。 this的作用是什么???a)操作成员变量,语法:对象.成员...原创 2020-12-14 21:36:44 · 143 阅读 · 0 评论 -
JavaSE高级——面向对象基础(二)
成员变量定义位置:在类中,代码块和方法之外。定义语法:[修饰符] 数据类型 变量名;--> 注意:成员变量绝对不允许使用static关键字修饰。操作成员变量语法:对象.成员变量名注意:在成员方法中,我们可以直接通过“成员变量名”来操作当前类的成员变量。成员方法定义位置:在类中,代码块和方法之外。定义语法:[修饰符] 返回值类型 方法名(形参列表) {// 方法体return [返回值];}--> 注意:成员方法绝对不允许使用static关键.原创 2020-12-14 21:32:31 · 157 阅读 · 0 评论 -
JavaSE高级——面向对象基础(一)
一、面向过程和面向对象1.1面向过程,封装(功能method)经典语言:C特点:以线性思维来思考解决问题,强调一步一步的实现。也就是说,强调程序员是一个实施者。优势:效率高劣势:代码的复用性、扩展性和可维护性都比较差。使用场合:适用于小型的程序,例如:计算器、嵌入开发等等。1.2面向对象,封装(数据field和功能method)、继承和多态经典语法:Java、C#、C++等等特点:以非线性的思维来思考解决问题,强调宏观上的把控。也就是说,强调程序员是一个指挥者。优势:原创 2020-12-14 21:19:56 · 222 阅读 · 2 评论