AllenWang的个人博客

小楼一夜听春雨


  • 首页

  • 分类

  • 归档

  • 标签

  • menu.ad

Linux下gcc的使用

发表于 2016-02-19 | 分类于 linux

1.gcc简介

在正式使用gcc之前,我们先了解一下它的历史。

现在的gcc(最早还只有C编译器,gcc其实只是GNU Compiler)是由Richard Stallman开发的,Stallman也是GNU的首创者,也是开源精神的布道者,著名的Linux开源项目就得益于GNU.

随着计算机的发展,gcc逐渐开始支持C语言之外的语言,如C++,Object-C,Java,Fortan以及Ada等,详情可访问其主页 http://gcc.gnu.org

现在,GNU工具链包括:
1)GNU Compiler Collection(GCC):这里GCC只指编译器,包括链接等其它操作;
2)GNU Make:编译和构建工程的自动化工具,即Makefile

阅读全文 »

设计模式(3):建造者模式和原型模式

发表于 2016-02-16 | 分类于 design_pattern

1.建造者模式

工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象。所谓复合对象就是指某个类具有不同的属性。建造者模式的实质就是将一个复杂对象与它的表示分离,使得同样的构建过程可以创建不同的表示。

该模式的使用场景为:1)相同的方法,不同的执行顺序,产生不同的事件结果时;2)多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时;3)产品类非常复杂,或者产品类的调用顺序不同产生了不同的效能,这个时候使用建造者模式非常合适,经典的应用就是ImageLoader和Android中的AlertDialog.

建行者模式的UML图如下所示

阅读全文 »

设计模式(2):单例模式

发表于 2016-02-16 | 分类于 design_pattern

1.什么是单例模式(Singleton)

单例模式是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:

  • 1)某些类的创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销;
  • 2)省去了new操作符,降低了系统内存的使用频率,减轻GC压力;
  • 3)有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统就完全乱了。另外比如ImageLoader,加载图片的引擎也只需要一个。像这些情形都需要使用单例模式。

2.单例模式的使用

首先是一个简单的示例

阅读全文 »

设计模式(1):工厂方法模式

发表于 2016-02-16 | 分类于 design_pattern

1.工厂方法模式

工厂方法模式分为三种:普通工厂模式,多个工厂方法模式,静态工厂方法模式.

1.1普通工厂模式

所谓普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。我们以生产糖果为例,一个工厂生产各种口味糖果,用户需要哪种糖果,只需要告知对应糖果的名称即可。UML图如下:

阅读全文 »

设计模式(0):概述

发表于 2016-02-13 | 分类于 design_pattern

1.为什么需要设计模式

在实际工程中,即使不使用设计模式,往往也能实现相应的功能。但是这样的代码往往既不优雅,也不能很好地适应需求变更,结果就是一旦需求有变动,就需要对原有的代码进行大的修改,从而浪费很多的时间。

可见,设计模式就是一套被反复使用、基于以往设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。项目中合理地运用设计模式可以完美地解决很多问题,每种模式都有相应的原理与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。

2.设计模式的分类

总体来说设计模式分为以下三大类:

阅读全文 »

DexClassLoader

发表于 2016-02-02

Android DexClassLoader分析

发表于 2016-01-30

Java ClassLoader原理分析

发表于 2016-01-30 | 分类于 android_deep_analysis

1.认识ClassLoader

Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中,JVM在加载类的时候,都是通过ClassLoader的loadClass()方法来加载class的。需要注意的是,程序在启动的时候,并不会一次性加载所有的class文件,而是根据需要,通过ClassLoader来动态加载

阅读全文 »

操作系统(4):分页机制

发表于 2016-01-29 | 分类于 OS

1.分页机制的引入

在操作系统(2):保护模式和GDT一文中,讲述了操作系统的分段机制,但是分段机制的主要作用是使计算机在保护模式下具有强大的寻址能力,并且对于保护模式下用户能够访问的物理地址进行了限制。但是如果对能够寻址的内存进行很好地分配呢?为了解决这个问题,我们需要分页机制

阅读全文 »

操作系统(3):中断及IDT

发表于 2016-01-26 | 分类于 OS

1.为什么需要中断

操作系统的一个核心任务就是和连接在主板上的所有外设进行通信,但是CPU和这些外设的速率根本就不在一个数量级上,CPU如果一直轮询或者发出一个请求后就一直等待反馈结果,那么带来的性能损失就太大了。为了解决这个问题,中断应运而生,当某个外设发生变化时,就产生一个中断,CPU接收到这个中断信号后,会打断当前的任务,保留当前的执行现场后再转移到该中断事先安排好的中断处理函数去执行。在中断处理函数执行完之后再恢复中断之前的执行现场,继续执行之前

阅读全文 »
1…678…16
Allen Wang

Allen Wang

152 日志
25 分类
8 标签
© 2018 Allen Wang
由 Hexo 强力驱动
主题 - NexT.Muse