随笔分类 -  java

摘要:本文整理来源 《轻松学算法——互联网算法面试宝典》/赵烨 编著 插入排序 什么是插入排序 插入排序分为两种,一种是直接插入排序,一种是二分法插入排序。这两种排序实际上都是插入排序,唯一的不同就是插入的方式不一样。 插入排序就是往数列里面插入数据元素。一般我们认为插入排序就是往一个已经排好顺序的待排序 阅读全文
posted @ 2018-04-03 18:38 Mr-cc 阅读(203) 评论(0) 推荐(0)
摘要:本文整理来源 《轻松学算法——互联网算法面试宝典》/赵烨 编著 算法基础 对于算法性能分析来说,除了时间复杂度,还是有空间复杂度、稳定性等指标。而我们平时说的算法的复杂度可以分为两个部分:时间复杂度和空间复杂度。 时间复杂度 在科学计算中,算法的时间复杂度是一个函数,它定量地描述了一个算法的运行时间 阅读全文
posted @ 2018-04-02 21:43 Mr-cc 阅读(235) 评论(0) 推荐(0)
摘要:汉诺塔 栈的数据结构非常适合汉诺塔来解释,因为二者的操作原理是一样的,由此也衍生了针对汉诺塔的依稀额算法。其中一个就是三根柱子的汉诺塔的移动步骤。 汉诺塔的移动原理 这里我们详细的介绍一个汉诺塔的移动原理,假设三根柱子分别是A、B、C,一开始A上有N个圆盘,从小到大、从上到下分别是1、2...... 阅读全文
posted @ 2018-03-27 20:34 Mr-cc 阅读(239) 评论(0) 推荐(0)
摘要:本文整理来源 《轻松学算法——互联网算法面试宝典》/赵烨 编著 链表其实也可以使用数组模拟 在C或者C++语言中有“指针”的概念。因为这个概念,链表在编程语言中能够方便地得以发挥作用,但并不是所有的编程语言中都有这个指针概念,比如Java。虽然没有“指针”这个概念,但是Java有“引用”的概念,类似 阅读全文
posted @ 2018-03-27 20:06 Mr-cc 阅读(243) 评论(0) 推荐(0)
摘要:本文整理来源 《轻松学算法——互联网算法面试宝典》/赵烨 编著 链表 虽然在很多的高级语言中,链表已经尽量的被隐藏起来,而且其应用之处还有很多的。 什么是链表 链表与数据结构有些不同。栈和队列都是申请一段连续的空间,然后按顺序存储数据;链表是一种物理上的非连续、非顺序的存储结构,数据元素之间的顺序是 阅读全文
posted @ 2018-03-27 17:09 Mr-cc 阅读(296) 评论(0) 推荐(0)
摘要:本文整理来源 《轻松学算法——互联网算法面试宝典》/赵烨 编著 用栈实现队列 由于栈和队列的特殊顺序存储结构,一些面试官会出一些题目,比如用栈实现队列和用队列实现栈。 这样的题目在实际工作中并不具有实际应用意义,完全是为了考察大家的思考能力。 用两个栈实现队列 一般会用两个栈来实现队列。首先,我们将 阅读全文
posted @ 2018-03-26 21:18 Mr-cc 阅读(186) 评论(0) 推荐(0)
摘要:本文整理来源 《轻松学算法——互联网算法面试宝典》/赵烨 编著 队列 什么是队列 什么是队列?队列就是一个队伍。队列和栈一样,由一段连续的存储空间组成,是一个具有自身特殊规则的数据结构。栈是后进先出的规则,队列刚好相反,是一个先进先出(FIFO,First In First Out)或者说是后进后出 阅读全文
posted @ 2018-03-26 10:43 Mr-cc 阅读(223) 评论(0) 推荐(0)
摘要:本文整理来源 《轻松学算法——互联网算法面试宝典》/赵烨 编著 栈 什么是栈 栈是有着特殊规则的数据结构,栈有着重要的一个特点——后进先出(LIFO, Last In First Out),也可以叫做先进后出(FILO, First In Last Out),我们无论如何只能够从一端去操作元素。 栈 阅读全文
posted @ 2018-03-22 14:23 Mr-cc 阅读(180) 评论(0) 推荐(0)
摘要:本文整理来源 《轻松学算法——互联网算法面试宝典》/赵烨 编著 数组 自我解读 数组是一堆数据按照顺序放入的固定长度空间。 1. 数组的长度固定,所以在声明时需要指定数组长度。如果长度不够用,也没有什么办法,想要继续存放数据,只能重新声明一个数组空间。 2. 数据只能够按顺序访问,虽然开发时可以通过 阅读全文
posted @ 2018-03-22 09:33 Mr-cc 阅读(281) 评论(0) 推荐(0)
摘要:try catch finally的执行顺序学习 首先执行try,如果有异常执行catch,无论如何都会执行finally,当有return以后,函数就会把这个数据存储在某个位置,然后告诉主函数,我不执行了,接下来你执行吧,所以函数就会退出。首先执行try,如果有异常执行catch,无论如何都会执行 阅读全文
posted @ 2016-09-12 11:31 Mr-cc 阅读(207) 评论(0) 推荐(0)
摘要:切记,不要忽略异常 尽管这条建议看上去显而易见,但是它常常被违反,因而值得再次被提出来。当API的设计者声明一个方法将被抛出某个异常的时候。他们等于正在试图说明某些事情。所以请不要忽略它!要忽略一个异常非常容易,只需要讲方法调用通过try语句包围起来,并包含一个catch块: 空的catch块会使异 阅读全文
posted @ 2016-08-31 11:57 Mr-cc 阅读(432) 评论(0) 推荐(0)
摘要:常用的异常 | 异常 | 使用场合 | | | | | IllegalArgumentException | 非null的参数不正确 | | IllegalStateException | 对于方法调用而言,对象状态不合适 | | NullPointerException | 在禁止使用null的情 阅读全文
posted @ 2016-08-31 11:28 Mr-cc 阅读(149) 评论(0) 推荐(0)
摘要:当心字符串的连接性能 字符串连接操作符(+)是把多个字符串合并为一个字符串的便利途径。要想产生单独一行的输出,或者构建一个字符串来表示一个较小的、大小固定的对象,使用连接符操作符是非常合适的,但是它不适合运用在大规模的场景中。未连接n个字符串而重复使用字符串连接操作符,需要n的平方级的时间。这是由于 阅读全文
posted @ 2016-08-31 10:21 Mr-cc 阅读(378) 评论(0) 推荐(0)
摘要:将局部变量的作用域最小化 将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能性。 在较早的程序设计语言(C语言),要求局部变量必须在一个代码块的开头处进行声明,出于习惯,很多程序员目前还是继续这样做。这个习惯过应该纠正。再次提醒,Java允许你在任何可以出现语句的地方声明变量 阅读全文
posted @ 2016-08-31 09:21 Mr-cc 阅读(920) 评论(0) 推荐(1)
摘要:理解国际站代码结构 O/R Mapping 是 Object Relationl Mapping(对象关系映射)的缩写。通俗点讲,就是对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是很重要的东东需要了解一下,即VO,PO。 VO,值对象(Value Ob 阅读全文
posted @ 2016-08-30 11:36 Mr-cc 阅读(385) 评论(0) 推荐(0)
摘要:返回零长度的数组或集合,而不是null 像下面的方法并不少见: 把没有奶酪(cheese)可买的情况当做一种特例,这是不合理的。这样做会要求客户端必须有额外的代码来处理null返回值,例如: 而不是下面这些代码: 对于一个返回null而不是令狐冲那个度数组或者集合的方法,几乎每次都要用到该方法时都需 阅读全文
posted @ 2016-08-26 16:20 Mr-cc 阅读(1048) 评论(0) 推荐(0)
摘要:用EnumMap代替序数索引 有时候,会见到利用ordinal方法来索引数组的代码。例如下面这个简化的类,表示一种烹饪用的香草: 假设有一个香草的数组,表示一座花园中的植物,想要按照类型(一年生、多年生或者两年生植物)进行组织后将植物列出来。 有些程序员会将这些集合放到一个按照类型序号进行索引的数组 阅读全文
posted @ 2016-08-25 21:47 Mr-cc 阅读(314) 评论(0) 推荐(0)
摘要:用EnumSet代替位域 如果一个枚举类型的元素主要用在集合中,一般使用int枚举模式,将2的不同倍数赋予每个常量: java // Bit field enumeration constants OBSOLETE public class Test{ public static final int 阅读全文
posted @ 2016-08-25 19:40 Mr-cc 阅读(417) 评论(0) 推荐(0)
摘要:枚举——用实例域代替序数 许多枚举天生就与一个单独的int值相关联。所有的枚举都有一个ordinal方法,它返回每个枚举常量在类型中的数字位置。你可以试着从叙述中得到关联的int值: 虽然这个枚举不错,但是维护起来就像一场噩梦。如果常量进行重新编译,numberOfMusicians方法就会遭到破坏 阅读全文
posted @ 2016-08-25 18:14 Mr-cc 阅读(572) 评论(0) 推荐(0)
摘要:泛型的使用 声明中具有一个或者多个类型参数的类或者接口,就是泛型类或者接口。例如,从Java 1.5发行版本起,List接口就只有单个类型参数E,表示列表的元素类型。从技术的角度来看,这个接口的名称应该是指现在的 (读作“E的列表”),但是人们经常把它简称为List。泛型类和接口统称为泛型。 每种泛 阅读全文
posted @ 2016-08-23 19:58 Mr-cc 阅读(528) 评论(1) 推荐(1)