暂无个人介绍
纯粹的面向对象程序设计的几个特性:1. 万物皆对象2. 程序是对象的合集,他通过发消息告诉彼此要做什么3. 每个对象都有自己的由其他对象所构成的存储4. 每个对象都有其类型5. 某一特定类型的所有对象都可以接收同一类型的消息 每个对象都有一个接口每个对象都有自己的服务(这个是为了高内聚性)具体类的实现被隐藏,调用方不需要知道被调用方的具体实现复用具体类实现 代码复用是面向对象程序设计的最了不起的优点之一使用现有的类合成新的类,这种概念称作组合。
多态是面向对象的核心思想之一,多态的实现有三要素: 1、 存在继承 2、子类对父类的方法进行了重写 3、父类引用指向子类对象。 前面说的还是有点虚,下面通过一个例子来深入理解多态。 程序代码如下,给出对应的输出: 1 public class Polymorphism { ...
如果一个多线程程序中每个线程处理的资源没有交集,没有依赖关系那么这是一个完美的处理状态。你不用去考虑临界区域(critical section),不用担心存在所谓的条件竞争(race condition),当然也不用去单行执行顺序,当然这种状态只是完美情况下,事实往往没有这么完美。
前言: 前面所讲的排序算法基本都是需要进行两个数依次比较,这种两个数依次比较的算法不依赖于数组重元素的特性并且有下界Ω(nlogn)。换句话说就是使用比较排序算法最快的时间消耗没法小于这个界。那么是不是我们永远没法跨越这个梗呢?答案当然不是,当数组中的元素有一定的特点的时候,我们就可以利用这个特定,以实现排序算法的时间消耗与n呈线性的关系。
前言 这个问题来自于看到的一个面试题,其中的解题过程比较有趣,有很多值得借鉴的地方,这里写出来作为记录。 题目 假设一栋100层的楼,两个完全一样的鸡蛋。存在某一层N,当鸡蛋从大于或等于N的楼层落下时会碎掉,当鸡蛋从小于N层落下时不会碎。
前言 前面差不多学习了插入排序、选择排序、冒泡排序、归并排序。这些排序除了归并排序在时间上消耗为:θ(nlgn)外,其余排序时间消耗都为:θ(n2). 接下来要讲的就是两种比较优雅的比较排序算法:堆排序和快速排序。
前言: 上一节刚讲过归并算法是排序算法中比较少见的一种时间复杂度为:θ(nlgn)的算法。而归并算法之所以快的原因在于它用了分治的思想,现实生活中有很多需要用到分治思想解决的问题,下面就举两个例子。
前言: 排序算法应该算是算法入门级的东西了,这里重新学习算法,先暂时归纳下个人对两种算法的理解。 插入排序: 插入排序可以对应到现实生活中的排队去停车场停车的场景。假设某家饭店的饭菜十分好吃(流口水),导致来这里吃饭的人特别多,后面来吃饭准备停车的车排起了长队。
Android起源与发展: Android操作系统最初在2003年的时候由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。