`
文章列表
Java集合 有时也将集合称为容器类,它的作用就是用来“装对象”的。这里要注意的是集合也可以是对象。下面先看一张图: HashSet:底层用一个数组存元素 --而且这个数组的长度永远是2的N次方。 HashSet底层就是HashMap实现的 ...
首先向大家道个歉,前面3天由于在忙着写项目说明文档,所以耽误了一下。今天借着中午这段时间把前面的补回来。话不多说,下面步入正题吧! Jar命令:jar可以把多个文件打包成一个压缩包,得到的压缩包通常有3种:1)*.ja ...
抽象类、接口常常与设计模式紧密相连。掌握抽象类、接口等其实很简单。下面以说明+实例的方式来讲,这样更容易理解。 抽象类 先看一个关键字“abstract”,我们知道它是抽象的意思。所谓抽象,说的直白一点就是同一件 ...
Java学习系列 Java学习系列(一)Java的运行机制、JDK的安装配置及常用命令详解Java学习系列(二)Java注释、标识符、基本数据类型及其转换易错点详解Java学习系列(三)Java运算符、控制语句、数组及其在内存中的运行分析Java学习系列(四)Java面向对象之修饰符、封装、继承、多态详解Java学习系列(五)Java面向对象之抽象类、接口、内部类、枚举类详解Java学习系列(六)Java面向对象之Jar命令、正则表达式、国际化详解Java学习系列(七)Java面向对象之集合框架详解(上)
Java学习系列 Java学习系列(一)Java的运行机制、JDK的安装配置及常用命令详解Java学习系列(二)Java注释、标识符、基本数据类型及其转换易错点详解Java学习系列(三)Java运算符、控制语句、数组及其在内存中的运行分析Java学习系列(四)Java面向对象之修饰符、封装、继承、多态详解Java学习系列(五)Java面向对象之抽象类、接口、内部类、枚举类详解Java学习系列(六)Java面向对象之Jar命令、正则表达式、国际化详解Java学习系列(七)Java面向对象之集合框架详解(上)
今天内容比较多,直接步入正题吧。 类和对象的定义 类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。而对象是具有类类型的变量,存在于堆内存中。类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。 定义一个类语法格式 [修饰符] class 类名 { //可以有属性、方法、构造方法、初始化块、枚举类、内部类等。。 } 注意:类的修饰符可以省略(必须在同一个包里,下面会讲到),还可以是:public,final(不能被继承),abstract(不能创建实例,但增加了一个可以包含抽象方法的功能)。类名必须是多个有 ...
梭罗说:“从圆到圆心有多少条半径,人们的生活方式也应该有这么多。” 同样学习也是如此,学习的渠道有很多种,但能找适合比较适合自己的却不是一件简单的事。比如说有的人喜欢看书,从书中学到一些自己感兴趣的东 ...
今天看到一则小笑话,分享给大家。一对情侣甜蜜的在公园中依偎着,男的看到女的的头发如此柔顺,便忍不住偷摸了一下,女的娇滴滴的说:“唉呀!讨厌啦!” 男的听了心更痒,于是又偷摸了一下,女的又说:“嗯,不要 ...
俗话说:“十五的月亮十六圆”。那学习是不是也是如此呢?如果把月亮看成是我们的愿望,那十五便是我们所处的“高原期”,坚持迈过这个坎,我相信你的愿望终究会现实的。记得马云曾说:今天很残酷,明天更残酷,后天 ...
快速排序 快速排序是对冒泡排序的一种改进。它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。大概算法是先找到某一元素的确切位置,再把该元素前后分成两半,没找到就移动,找到就赋值!具体做法是先移H,左边找到比val大的就赋值,右边找到比它小的就赋值!L和H赋值(L指向第一个元素,H指向最后一个元素,val存放第一个元素的值)。一旦赋值完就不移动!L和H重合了就不需要找了。只要记住一点就行了:左边找比关键字(val)大的就赋值(没 ...
树 树可以简单理解为是由节点和边(存放指针域,指向下一个结点的地址)组成,每个节点只有一个父节点(根节点除外),但可以有多个子节点。树只有一个称为根的节点,树有若干个子树,且这些子树本身也是一棵树。树里面有很多专业术语,常用的有:深度(从根节点到最底层结点的层数,根节点是第一层),叶子节点(没有子节点的节点),非叶子节点(也叫非终端节点,含有子节点),度(某个节点含有子节点的个数,树的都按节点的最大度算),节点的层次(根作为第1层,根的子节点作为第2层,以此类推到该节点的层数)。树的分类分为一般树(任何一个节点的子节点的个数都不受限制);二叉树(有序):任何一个节点的子节点的个数最多两个,且 ...
递归 递归一个函数直接或间接调用自己的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。递归要满足3个条件:一是递归必须得有一个明确的中止条件,要不然就很可能陷入死递 ...
循环队列 队列通常分为两类:一是动态链式队列(其核心思想为链表,只是少了链表的一些功能),二是静态(顺序)队列(其核心是用数组实现,准确一点讲是由向量空间来实现,向量空间好比是开辟的一块内存,由我们的指针来指向其地址)。顺序队列实际上是运算受限的顺序表,由于队列的队头和队尾的位置是变化的,通常设置两个指针front和rear分别指示队头元素和队尾元素在向量空间中的位置,它们的初值在队列初始化时均应置为0。由于入队和出队操作中,头尾指针只增加不减小,致使被删元素的空间永远无法重新利用。当队列中实际的元素个数远远小于向量空间的规模时,也可能由于尾指针已超越向量空间的上界而不能做入队操作。这种“假 ...
队列 队列(Queue)是只允许在一端(队尾rear)进行插入,而在另一端(队头front)进行删除的运算受限的线性表。它是一种可以实现“先进先出”(FIFO)的存储结构。队列在具体应用中通常用链表或者数组来实现,因此我们也常常将队列分为静态队列(数组队列),链式队列(主要以链表方式进行操作)。当队列中没有元素时,我们称之为空队列。一般队列的存储结构是顺序存储,当队列的存储结构是链式存储结构(即队列中每个元素都包含一个指向其后继的指针,最后一个指针元素也就是尾结点的指针域为NULL)时,就是链式队列了。和栈不同,队列通常需要对其两端进行操作,而栈一般只需对通过栈顶指针进行操作即可。 对链式 ...
栈的定义和分类 栈是我们线性结构中的一种常见应用。在函数调用、内存分配等也常常跟栈打交道,栈可以简单的理解为是一种可以实现“先进后出”的存储结构。栈又分为静态栈和动态栈。静态栈以类似于数组方式存放,而动态栈以类似于链表的方式存放。 栈区(Stack)和堆区(heap) 栈区主要用于存放局部变量、定义的形参,在定义时局部变量或形参时由系统自动分配,在函数结束时由系统自动回收存储单元。 堆区主要通过new(常用于C++、Java中),malloc(用于C中)等动态开辟的存储块,函数结束时需要我们通过delete(c++中)、free(c中)手动释放 举例说明: void f(in ...
Global site tag (gtag.js) - Google Analytics