javaSE基础(三)
泛型类:像ArrayList这样的特殊类,他们允许通过类型参数来指明使用的数据类型。
报装类:一种用于将基本类型的数据“封装”成对象的类。
装箱:将 基本类型的数据自动转换为对应类型的报装类对象(如,int会被装箱为Integer)的过程。
拆箱:将报装类对象自动转换为对应的基本类型数据(如,Integer会被拆箱为int)的过程。
比较函数:一种用于判断给定两个值之间关系(大于、小于或等于)的函数。
自然排序:某种类型数值的顺序关系,它由该类型上定义的比较函数决定。
数据结构:用于存储和管理数据的实体被称为数据结构。
集合:集合(collection)对象中可以保存一组其它类型的对象数据,这些内部对象称为集合中的元素。
线性表(List):一组有序元素的集合,可以使用整数索引或顺序来访问其中的元素。
栈(Stack):一种有序的元素集合,支持添加和删除位于“顶端”的元素,实现后进先出的访问顺序。
队列(Queue):一种有序的元素集合,支持从尾部添加元素,从首部删除元素,实现先入先出的访问顺序。
数学集合(Set):一组没有重复元素的集合。
映射(Map):一组存放(键,值)对的集合,其中每一个键都对应着一个值。
节点:构成链表的单个元素;每个节点可以存储一个数据值。
链表:链表(Linked list)是一种结合类型,它将元素存储在节点中,而所有节点又连接成一条链。
迭代器:允许用户以顺序的方式高效的访问链表中每个元素的一种特殊对象。
抽象数据类型(ADT):对某种数据类型以及该类型允许的各种操作的一个规定。
迭代(迭代的):一种用循环来描述需要重复进行的操作的编程技术。
递归(递归的):一种通过调用某个方法来描述需要重复进行的操作的编程技术,该方法的一个基本特点是:它可以调用它自己。
递归方法的结构:每一个递归方法有两个重要组成部分;一个基本情况和一个递归情况。
基本情况:一种简单到不需要递归调用就可以直接解决的情况。
递归情况:一种需要把整个问题转化成一个相同种类的,比较简单的,而且可以通过递归调用来解决问题的情况。
调用栈:用来跟踪所调用方法的顺序的内部结构。
(递归)回溯法:一种搜索问题解的通用算法,它先找出可能的候选解,一旦确定某个(某些)候选解不适合,就立刻放弃进一步尝试(回溯)。
二分法查找:一种在有序列表中查找某个值的算法,它每次都将待查找的空间分为两半,在其中一半继续查找。
复杂度:衡量一段代码使用时间、内存、硬盘空间等计算资源的紧凑程度的属性。
复杂度类型:一类所需资源开销与输入规模之间的关系相似的算法。
要确定一段代码的复杂度,我妈妈值需要首先找到它执行次数最多的那一行代码,确定他的执行次数,从中取出 N 的最高项即可。例如,如果执行次数最多的代码 被执行了 (2NNN + 4N)次,那么该算法属于“N×N×N类型“的复杂度,或简记为 O(NNN) 。这种以大写字母O开头的表示法被称为”大写O表示法“。
以下是一些常用复杂度类型:
1)常数时间或O(1)算法,该类型算法的运行时间与输入的大小无关。
2)对数时间或O(log N)算法,该类算法总是不停地将问题空间减半,直到问题被解决。二分法查找是对数时间算法的一个例子。
3)线性或O(N)算法,该类算法的运行时间与N成比例(当N加倍时,运算时间也加倍)。很多需要逐个处理数据集合中每个元素的算法都是线性复杂度类型, 例如,计算一组数值的个数、和、平均值、最大值后上下边界。
4)对数-线性或O(N logN)算法,该类算法一般包括对数算法与线性操作的结合。例如,对输入数据集中的每一个元素进行一次对数运算。很多高效的排序算法,例如归并排序,都输入对数-线性复杂度类型。
5)平方或O(NN)算法,该类算法的运行时间与输入规模N的平法成比例。当输入规模N加倍后,二次算法的时间开销会变为原来的4倍。
6)立方或O(NN*N)算法,该类算法的运行时间与输入规模N的立方成比例。该类算法通常对输入数据进行三重嵌套。例如计算两个N×N矩阵的乘法或计算一个很大的Point数组中共线的三个点数目的算法就是该类的例子。
7)指数或O(2^n)算法,该类算法的运行时间与输入规模N的指数2^N成比例。这意味着输入规模增加1,算法运行时间就要加倍。该类算法的一个例子是输入给定数据集的幂集,也就是它所有的子集。指数算法的效率很低,通常值用来处理很小的输入数据。
内部类:在另一个类中声明的类。内部类的对象可以访问外部类的方法和字段。
垃圾收集器(GC):java运行时环境中的一个进程,定期释放不再被引用的对象所使用的内存。
散列函数:一个能够快速完成元素值与其在数组中存储索引的映射的函数。
散列表:利用散列函数确定元素存储索引的数组。
冲突:当两个或更多不同元素经散列函数处理后得到相同的结果,使得它们都要存储到散列表中同一个位置的情况。
探测技术:一种通过查找并使用其它空闲位置索引来解决散列表冲突问题的技术。
独立链:在散列表中每个索引位置存储一个列表而非单个值来解决冲突。
再散列:一种通过扩大散列表的容量来存储更多元素,或提高存取效率的技术。
负载因子:将散列表元素数量与内部数组容量的比值定义为负载因子。
优先级队列(Priority queue):一种队列集合,每个元素都带有优先级或重要程度信息,并根据优先级访问或删除队列中的元素。
堆(heap):一种父子节点之间满足特定顺序的树形数据结构。在最小堆中,父节点的值总是小于等于所有子节点的值;在最大堆中,父节点的值总是大于等于所有子节点的值。
起泡技术:通过上移或下移元素使堆满足父子节点之间的大小关系。
////end
O
javaSE基础(三)的更多相关文章
- javaSE基础07
javaSE基础07 一.static静态修饰符 用了static修饰的变量就会变成共享的属性,只会初始化一次,在内存中只存在一个,并且每个对象都可以访问,存放在方法区(数据共享区) 1.1 stat ...
- javaSE基础06
javaSE基础06 一.匿名对象 没有名字的对象,叫做匿名对象. 1.2匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值的,无法获取属性值(现阶段只能设置和拿到一个属性值.只能调用一次方 ...
- javaSE基础05
javaSE基础05:面向对象 一.数组 数组的内存管理 : 一块连续的空间来存储元素. Int [ ] arr = new int[ ]; 创建一个int类型的数组,arr只是一个变量,只是数组的一 ...
- javaSE基础04
javaSE基础04 一.三木运算符 <表达式1> ? <表达式2> : <表达式3> "?"运算符的含义是: 先求表达式1的值, 如果为真, ...
- javaSE基础03
javaSE基础03 生活中常见的进制:十进制(0-9).星期(七进制(0-6)).时间(十二进制(0-11)).二十四进制(0-23) 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为 ...
- javaSE基础02
javaSE基础02 一.javac命令和java命令做什么事情? javac:负责编译,当执行javac时,会启动java的编译程序,对指定扩展名的.java文件进行编译,生成了jvm可以识别的字节 ...
- javase基础复习攻略《十》
按照计划本篇为大家总结JAVA的网络编程,什么叫网络编程呢?网络编程!=网站编程,对于这一点大家一定要注意,很多小朋友都曾经这么认为.既然谈到网络编程,咱们先了解一下网络的基础知识,什么是计算机网络? ...
- 基础1 JavaSe基础
JavaSe基础 1. 九种基本数据类型的大小,以及他们的封装类 boolean 无明确指定 Boolean char 16bits Character byte 8bits Byte short 1 ...
- java学习之路之javaSE基础2
java学习之路之javaSE基础2 所有的代码都是引用他人写的. 1.逻辑运算符 //&,|,^,! //int x = 10; //5 < x < 15 //x > 5 ...
- java学习之路之javaSE基础1
<h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...
随机推荐
- js 技巧 (六)弹窗代码汇总
弹窗代码汇总 [0.超完美弹窗代码] 功能:5小时弹一次+背后弹出+自动适应不同分辩率+准全屏显示 代码: <script> function openwin(){ window.open ...
- js 技巧 (二)
//最小化,最大化,关闭 <object id=min classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"> & ...
- bzoj3262陌上花开 cdq分治入门题
Description 有n朵花,每朵花有三个属性:花形(s).颜色(c).气味(m),又三个整数表示.现要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量.定义一朵花A比另一朵花B要美丽,当 ...
- c网购物车流程图
1. 流程图 2. 流程介绍 1) 客人浏览模式下(未登录状态)加入购物车 这个时候回校验一下商品的可售数量,以及状态等等,校验成功后会保存到cookie和memcache,数据操作校验以memcac ...
- [luoguP1472] 奶牛家谱 Cow Pedigrees(DP)
传送门 一个深度为i的树可以由一个根节点外加两个深度为i-1的树组成,这就决定了DP该怎么写. 然而我真的没有想到. f[i][j]表示深度为i节点数为j的个数 sum[i][j]表示深度小于等于i节 ...
- noip模拟赛 蒜头君的兔子
分析:直接暴力算有30分,像斐波那契那样推式子算有60分,如果想要得到100分就要用一种数列题的常见优化--矩阵了. 当前的兔子数和十年内的兔子数有关,我们需要1个1*11的矩阵,来记录当前为0岁.1 ...
- POJ3107 树的重心
题解:只不过如果有求多个点,输出所有方案. #include<cstring> #include<cmath> #include<iostream> #includ ...
- JS基础:正则表达式
简介 正则表达式 (regular expression) 描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子串.将匹配的子串做替换或者从某个字符串中取出符合某个条件的子串等.在 JS ...
- 整体二分--BZOJ1901: Zju2112 Dynamic Rankings
n<=10000个数有m<=10000个操作,1.询问一个区间的第k小的数:2.单点修改. 带修主席树. 整体二分. 整体二分的必要条件: #include<string.h> ...
- hdu - 1429 胜利大逃亡(续) (bfs状态压缩)
http://acm.hdu.edu.cn/showproblem.php?pid=1429 终于开始能够做状态压缩的题了,虽然这只是状态压缩里面一道很简单的题. 状态压缩就是用二进制的思想来表示状态 ...