摘要:
1、抛出异常之后1).使用new在对象上创建异常对象2).终止当前的执行路径3).从当前环境中弹出对异常对象的引用4).异常处理机制接管程序,并开始执行异常处理机制2、异常处理理论上有两种基本模型1).终止模型:一旦异常抛出,就表明错误无法挽回,也能回来继续执行。比较实用。2).恢复模型:异常处理之后继续执行程序。但是可能导致“耦合”。3、自定异常类(具有带参数的构造器)class SimpleException extends Exception{ public SimpleException(){} public SimpleException(String msg){ ... 阅读全文
随笔档案-2012年01月
《Java编程思想》之更好了解内部类的价值(一个简单的例子)
2012-01-29 19:54 by java线程例子, 331 阅读, 收藏,
摘要:
上接《Java编程思想》之为什么需要内部类?public abstract class Event{ private long eventTime; protected final long delayTime; public Event(long delayTime){ this.delayTime = delayTime; start(); } public void start(){ eventTime = System.currentTimeMillis() + delayTime; } public boo... 阅读全文
《Java编程思想》之为什么需要内部类?
2012-01-29 19:45 by java线程例子, 716 阅读, 收藏,
摘要:
上接《Java编程思想》之内部类——深奥而复杂13、为什么需要内部类?1).内部类最吸引人注意的原因是:每个内部类都能独立的继承自一个(接口的)实现,所以无论外围类是否已经继承了某个就(接口的)实现,对于内部类都没有影响。2).一个类中以某种方式实现两个接口。由于接口的灵活性,你有两种选择:使用单一类,或者使用内部类。从实现观点看,以下俩种方式没什么区别。interface A{}
interface B{} class X implements A, B{} class Y implements A{ B makeB(){ return new B(){ ... 阅读全文
《Java编程思想》之内部类——深奥而复杂
2012-01-29 19:23 by java线程例子, 268 阅读, 收藏,
摘要:
1、当将内部类向上转型为其基类,尤其是转型为一个接口的时候,内部类就有了用武之地(从实现某个接口的对象,得到对此接口的引用,与向上转型为这个对象的基类,实质上效果是一样得。)这是因为此内部类——某个接口的实现——对于其他人来说能够完全不可见,并且不可用。所得到的只是指向基类或接口的引用,所以能够很方便地隐藏实现细节。interface Destination{ String readLabel();
}
interface Contents{ int value();
}
class Parce1{ private class PContents implements Con... 阅读全文
《Java编程思想》之接口(Java中实现多重继承?!)
2012-01-27 19:21 by java线程例子, 1095 阅读, 收藏,
摘要:
1、interface不仅仅只是一个极度抽象的类,因为它允许人们通过创建一个能够被向上转型为多种基类型的类,来实现某种类似C++多重继承变种的特性。2、像类一样,可以在interface关键字前面添加public关键字(但仅限于该接口在与其同名的文件中被定义),或者不添加它而使其只是具有包访问权限,这样它就只能在同一个包内可用。3、可以选择在接口中显示地将方法声明为public的,但即使你不这么做,它们也是public的。因此当实现一个接口时,在接口中被定义的方法必须被定义为public。4、Java中,在方法的继承过程中,其可访问权限不能被降低。5、接口也可以包含字段,但是它们隐式为stat 阅读全文
《Java编程思想》之多态(面向对象程序语言的第三基本特征)
2012-01-26 21:32 by java线程例子, 228 阅读, 收藏,
摘要:
1.在面向对象的程序设计语言中,多态是继承数据抽象和继承之后的第三基本特征。2.“封装”通过合并特征和行为来创建新的数据类型。3.“实现隐藏”则通过将细节“私有化”,把接口和实现分离开来。4.多态的作用则是消除类型之间的耦合关系。5.耦合就是指两个或两个以上的实体相互依赖于对方的一个量度。6.多态也称作动态绑定、后期绑定或运行时绑定。7.将一个方法调用同一个方法主体关联起来被称作“绑定”。8.“前期绑定”:程序执行前进行的绑定,由编译器和连接程序实现。面向对象的语言不需要选择就默认的绑定方式。9.Java中除了static方法和final方法(private方法属于final方法)之外,其它所 阅读全文
自己最近写的一组日志处理类(支持高并发处理)
2012-01-21 21:55 by java线程例子, 374 阅读, 收藏,
摘要:
下面的日志处理我在3000个线程同时调用,写20个文件,相当于每个文件150个线程不间断大规模写.没问题,我提高到10000时,出了问题,但不是日志代码的问题,而是系统创建新的线程时报错,建到3500个线程的时候出现问题.后面我会贴出测试代码.1)FileLogWorker/// <summary> /// 文件日志处理类,利用队列机制,让写日志调用和日志写到文件分离,调用 /// 方将要写的日志和目标文件插入到日志队列中去就返回, /// 然后由内置线程去写到文件里去。这里用了单例模式。 /// </summary> public class File... 阅读全文
关于CLR内存管理一些深层次的讨论[下篇]
2012-01-21 17:32 by java线程例子, 217 阅读, 收藏,
摘要:
http://www.cnblogs.com/artech/archive/2010/10/20/1857086.html关于CLR内存管理一些深层次的讨论[下篇]《上篇》中我们主要讨论的是程序集(Assembly)和应用程序域(AppDomain)的话题,着重介绍了两个不同的程序集加载方式——独占方式和共享方式(中立域方式);以及基于进程范围内的字符串驻留。这篇将关注点放在托管对象创建时内存的分配和对大对象(LO:Large Object)的回收上,不对之处,还望各位能够及时指出。目录 一、从类型(Type)与实例(Instance)谈起 二、实例内存分配不仅限于GC堆 三、实例对类型的引用 阅读全文
程序集与应用程序域关系讲解(1)
2012-01-21 17:30 by java线程例子, 360 阅读, 收藏,
摘要:
关于CLR内存管理一些深层次的讨论[上篇]半年之前,PM让我在部门内部进行一次关于“内存泄露”的专题分享,我为此准备了一份PPT。今天无意中将其翻出来,觉得里面提到的关于CLR下关于内存管理部分的内存还有点意思。为此,今天按照PPT的内容写了一篇文章。本篇文章不会在讨论那些我们熟悉的话题,比如“值类型引用类型具有怎样的区别?”、“垃圾回收分为几个步骤?”、“Finalizer和Dispose有何不同”、等等,而是讨论一些不同的内容。整篇文章分上下两篇,上篇主要谈论的是“程序集(Assembly)和应用程序域(AppDomain)”。也许有的地方说的不是很正确,希望读者不吝赐教。一、程序集与应用 阅读全文
一些C#面试题(无聊之举)
2012-01-21 16:31 by java线程例子, 324 阅读, 收藏,
摘要:
既然无聊,又不能浪费时间,那就做点无聊的事情打发时间:1.Thread和Process之间有什么区别?.NET新引入了Application Domain的概念,这样他们三个之间有什么区别?引入了Application Domain会带来一些潜在的问题么? 进程是程序的组织形式,线程是系统调度的基本单元,一个进程至少包含一个以上的线程,线程存在于进程内; 应用程序域是为了像IIS这类程序提供的一种进程内隔离方法,便于在一个进程内运行多个应用。进程>应用程序域>线程.对于像IIS这样的应用程序而言,它可以运行多个应用程序,如果一个应用崩溃,整个程序都崩溃是有问题的,所以引入应用程序域 阅读全文
《java编程思想》之控制对成员的访问权限的原因、final、继承和组合、私有方法的“覆盖”
2012-01-21 16:07 by java线程例子, 300 阅读, 收藏,
摘要:
控制对成员的访问权限有两个原因: 第一是为了使用户不要碰触那些他们不该碰触的部分,这些部分对于类内部的操作是必要的,但是它井不属于客户端程序员所需接口的一部分。因此,将方法和域指定成private,对客户端程序员而言是一种服务。因为这样他们可以很清楚地看到什么对他们重要,什么是他们可以忽略的。这样简化了他们对类的理解。 第二个原因,也是最重要的原因,是为了让类库设计者可以更改类的内部工作方式,而不必担心这样会对客户端程序员产生重大的影响。例如,最初可能会以某种方式创建一个类,然后发现如果更改程序结构,可以大大提高运行速度。 如果接口和实现可以被明确地隔离和加以保护,那么就可以实现这一目的... 阅读全文
分布式流水作业系统项目经理挂掉的处理办法(Hadoop模拟思考系列)
2012-01-21 12:13 by java线程例子, 221 阅读, 收藏,
摘要:
在前一篇中的流水作业系统中,劳动者挂掉后,由项目经理来负责处理(重新分配该子任务),这个影响相对比较小,但项目经理挂掉后,整个任务都要重新开始,就有点浪费了,这里我们采用土八路打仗的方式,让每个成员都知道打仗的目的和自己的任务(包括整体任务号,子任务号,项目经理是谁,自己负责处理的加工原料在那里,交互的产品放哪里等)同时这些成员在完成任务后,除了给项目经理报告结果之外,并不立即进行清场,而是要接到项目经理的指令后才清场,对于没有清场的任务,成员有义务每间隔一段时间发一个项目经理还活着没有的询问,如果多次询问,无结果的情况下,可以向Master报告,由Master暂时担当项目经理角色,这有4种情 阅读全文
关于分布式流水作业架构的一点浅见(领导者压力和瓶颈的解决方法和思路)
2012-01-21 10:31 by java线程例子, 216 阅读, 收藏,
摘要:
这段时间其实一直在思考Hadoop的东西,主要是我准备用Dotnet来模拟玩一下,这两天刚好看到 http://blog.csdn.net/cenwenchu79/article/details/7206804这篇文章,看来对hadoop的架构有看法的不止我一个,当然,别人都是牛人,有牛人敢怀疑,我也跟着说点看法。首先,坦率的讲,我没有用过hadoop,我只是了解过其机制,根据上面那位牛人的看法,hadoop的master会成为瓶颈,因为其担当的Reducer职责,就是最后归并结果。因为我没有实际用过hadoop,我没有发现这个问题,只是我在准备模拟hadoop的思考过程中,我觉得maste. 阅读全文
Delphi多线程及消息发送传递结构体参数
2012-01-18 23:36 by java线程例子, 536 阅读, 收藏,
摘要:
1、Unit2:unit Unit2; interface
uses windows,classes,NMICMP,SysUtils,StdCtrls,messages;
const WM_MY_PING = WM_USER +1024;
type //要传递的消息记录. TPingMsg = record msg : array[0..1023] of char; id : integer; Handled : boolean; msg2 : string; //建议如果需要动态管理,比如采用List,采用字符数组的方... 阅读全文
《java编程思想》之垃圾回收器如何工作
2012-01-18 23:00 by java线程例子, 559 阅读, 收藏,
摘要:
忙了几天,无关学习。旁晚才又看起书来,想想自己还有10来本。呵。这寒假过得会很局促。以下内容摘自《java编程思想》,再稍作整理 在以前所用过的程序语言中,在堆上分配对象的代价十分高昂,因此读者自然会觉得Java中所有对象(基本类型除外)都在堆上分配的方式也非常高昂。然而,垃圾回收器对于提高对象的创建速度,却具有明显的效果。听起来很奇怪——存储空间的释放竟然会影响存储空间的分配,但这确实是某些Java虚拟机的工作方式。这也意味着,Java从堆分配空间的速度,可以和其他语言从堆栈上分配空间的速度相媲美。 打个比方,您可以把C++里的堆想象成一个院子,里面每个对象都负责管理自己的地盘。一段时间以后 阅读全文
奇怪的问题
2012-01-18 08:48 by java线程例子, 159 阅读, 收藏,
摘要:
为什么我的前一篇《一个简单的跨域跨数据库事务处理架构》,我总是打不开,而且是好几台机器上都是这样,难道是有敏感词?编辑可以,就是浏览不行!能正常看的留个信号,谢谢! 阅读全文
一个简单的跨域跨数据库事务处理架构
2012-01-16 22:47 by java线程例子, 2919 阅读, 收藏,
摘要:
原来只是有点这个想法,怎么去做这个事务,这次给公司做新架构演示,随带就加进去了,居然还成了,还像那么回事:我的做法很简单:自己写了个事务处理类,提供一个静态的启动事务方法,然后就是Commit,Rollback方法,再利用GUID作为事务ID。有事务处理类管理本地数据库链接和远程跨域服务信息,利用这些信息在Commit或者rollback时进行提交或者回滚,在数据库级上并行执行命令,需要对远程跨域提交或者回滚的,结合一个远程事务池、远程事务服务类和远程事务服务调用代理类(就提交和回滚两个方法)进行处理,其中用事务ID贯穿始终。当然,所有的数据访问层,数据库访问层都来由一个事务类参数,没有事务的 阅读全文
《算法导论》第二章 入门
2012-01-16 21:59 by java线程例子, 216 阅读, 收藏,
摘要:
2.1 Insertion sortPseudocodeis used to specify a given algorithm in English. Issues of data abstraction,modularity, and error handling are often ignored in order to convey the essence of thealgorithm more concisely.伪代码与真实代码的区别只是伪代码更加清晰、简洁。最清晰的表达方式就是直接用英语。为了简洁地表达算法的核心内容,数据抽象、模块化和异常处理等问题常常被忽略。We uselo 阅读全文
多线程中主线程等待所有子线程执行完再继续执行的解决方法
2012-01-15 09:47 by java线程例子, 1514 阅读, 收藏,
摘要:
最近在做系统架构的时候,一个命令需要同时在多个分布节点上执行命令,但主处理又必须等所有节点执行回来后再继续处理,因此研究了一下多线程,现分享如下:1)第1种方法,微软提供的标准教程:利用 ManualResetEvent和WaitHandle.WaitAll:public class Fibonacci { public Fibonacci(int n, ManualResetEvent doneEvent) { _n = n; _doneEvent = doneEvent; } ... 阅读全文
VS,WCF(DotNet)常见错误处理系列(整理)
2012-01-15 09:14 by java线程例子, 380 阅读, 收藏,
摘要:
1)由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值:这是因为调试时会自动对Local/Watch等窗口里面(或鼠标停留所在)的变量求值,为了防止用户写的程序错误(比如死循环),系统有一个超时限制,如果某个属性的get中做了很复杂的操作(而不是简单地返回一个私有变量的话),就有可能超过这个时间限制(如果strPage很大的话,你的正则运算就很可能会超时)。可以禁用自动求值的功能: 工具 -> 选项 -> 调试 -> 常规 -> 启用属性求值和其他隐式函数调用 去掉前面打勾,不过这样就不会对属性变量自动求值了。 http://msdn.micros 阅读全文
《java编程思想》之java对象的存储
2012-01-14 15:16 by java线程例子, 224 阅读, 收藏,
摘要:
以下内容摘自《java编程思想》第三版:程序运行时,对象是怎么进行放置安排的呢?特别是内存是怎么分配的呢?有六个不同的地方可以用来存储数据:1、寄存器:这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器根据需求进行分配。你不能直接控制,也不能再程序中感觉到寄存器存在的迹象。2、堆栈:位于通用RAM(随即访问存储器)中,但通过“堆栈指针”可以从处理器那里获得直接支持。堆栈指针若向下移动,则分配新的内存;若向上移动,则释放那里的内存。这是一种快速有效的分配存储方法,仅次与寄存器。创建程序时,Java系统必须知道存储在堆栈内所有项的确切生命周期,以 阅读全文
几个函数(转抄)
2012-01-12 21:21 by java线程例子, 201 阅读, 收藏,
摘要:
//1 获取IP地址string hostname = Dns.GetHostName(); System.Net.IPHostEntry ipEntry = Dns.GetHostEntry(hostname); if (ipEntry.AddressList != null) { foreach (var ip in ipEntry.AddressList) { if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { this.listBox1.Items.Add(ip.ToString()); }. 阅读全文
《Java编程思想》之对象的创建、使用、生命期(简单比较java与C++的不同之处)
2012-01-11 21:17 by java线程例子, 335 阅读, 收藏,
摘要:
这个寒假有不少书要看呀。。今天开始拜读起《java编程思想》。写写博客记录读书点滴的同时激励自己继续努力!第一章、对象导论 这一章是对面向程序设计的一个综述,介绍了接口与实现、抽象与封装、消息与函数。继承与数组,以及多态等等。以下内容摘自《Java编程思想》第三版: 对象最重要的要素之一便是它们生成和销毁。对象数据位于何处?怎么控制对象的生成周期?对此存在着不同的处理哲学。 C++认为效率控制最重要的议题,所以给程序员提供了选择的权力。为了追求更大的执行效率,对象的存储空间和生命周期可以在编写程序时确定。这可以通过对象置于栈堆(它们有时被称为自动变量(automatic v... 阅读全文
被神化的海量数据处理和高并发处理
2012-01-10 23:00 by java线程例子, 16022 阅读, 收藏,
摘要:
其实任何简单的问题,只要规模大了都会成为一个问题,就如中国人口多,很多小问题都会变成大问题一样。但处理这种海量数据的方法无非就是分治和”人海”战术。使用人海战术的前提是问题的划分能够支持这种人海战术,其手段无非是切割(纵向,横向)和负载均衡。纵向分隔主要是按业务(功能)来分,也就是所谓面向服务架构,横向分隔方式比较多,主要依赖于所处理的对象属性,比如时间属性或者特定业务数据属性划分(比如铁路客票的车次(每个车次的操作基本上是独立的));负载均衡则可以是镜像(部署)分布(同样的功能部署几份)和计算分布(一个问题分几个子问题在不同的机器上运行,然后合并结果)。当然,这些手段是可以综合利用的,最终可 阅读全文
斐波那契数列算法分析
2012-01-10 22:50 by java线程例子, 394 阅读, 收藏,
摘要:
http://www.cnblogs.com/CCBB/archive/2009/04/25/1443441.html背景:假定你有一雄一雌一对刚出生的兔子,它们在长到一个月大小时开始交配,在第二月结束时,雌兔子产下另一对兔子,过了一个月后它们也开始繁殖,如此这般持续下去。每只雌兔在开始繁殖时每月都产下一对兔子,假定没有兔子死亡,在一年后总共会有多少对兔子?在一月底,最初的一对兔子交配,但是还只有1对兔子;在二月底,雌兔产下一对兔子,共有2对兔子;在三月底,最老的雌兔产下第二对兔子,共有3对兔子;在四月底,最老的雌兔产下第三对兔子,两个月前生的雌兔产下一对兔子,共有5对兔子;……如此这般计算下 阅读全文
为什么成为优秀程序员这么难
2012-01-07 09:09 by java线程例子, 224 阅读, 收藏,
摘要:
回头看看自己的这几年工作经历,时间不算长却也有了不少感悟。不是对环境、对别人的抱怨,只是说说我的亲身感受。1. 技术氛围不浓,我身边大部分的程序员都不热爱编程。在业余时间学习技术,不被周围人理解,很少会有共鸣。基本上在公司没事时看计算机书会碰到几种声音:哇,这么爱学习呀;学这么多技术有什么用?会点工作和面试中能用到的框架不就行了。那种能让我,或者能面对着我说起某个技术问题两眼放光的知己少之又少。2. 为什么这么多的程序员不热爱编程呢?从我周围人的情况来看,一是不少人高考时都不是自己选择计算机专业的,有的是家人代填的志愿,有的是被专业调剂过来的。可一考定终身,不去复读就只能忍着继续念下去了。二是 阅读全文
MySQL性能优化的最佳20+条经验
2012-01-05 21:45 by java线程例子, 3456 阅读, 收藏,
摘要:
转载自酷壳:http://coolshell.cn/articles/1846.html今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。1. 为查询缓存优化你的查询大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引 阅读全文
学习的一个境界--"混熟"
2012-01-05 21:12 by java线程例子, 152 阅读, 收藏,
摘要:
很多东西都是混熟了,就慢慢了解了,慢慢了解了就慢慢理解了,慢慢理解了就会慢慢懂得.学习新东西尤其如此.其实有个几次准备学习linux的想法,但大多都在装个系统,敲几个命令后就结束了,这次,决定再学Linux,于是每天坚持用个把小时,慢慢 的也开始有点感觉了...其实Windows也没真正学过,不也是混熟的嘛;搞了这么多年编程,设计和架构,其实也都是混熟的;要想学什么,不管怎么样,先跟它混熟...,因为只是混,不会有太多的压力,反而有利于接近,了解,然后理解...当然,在CSDN写博客也是这样,也是先混混在说嘛....搞得好不好,学得好不好,先混个脸熟... 阅读全文
热爱生活,更热爱代码
2012-01-04 21:12 by java线程例子, 208 阅读, 收藏,
摘要:
现在是2012/1/4 19:06,我开始写下自己的一些想法。 在CSDN上看到那么多“大牛”写下的年度总结,受益匪浅。这也更加坚定我走程序员这条路,并努力为心中梦想奋斗的决心,即使路再长,再遥远。 2011年,对我来说,是成长的一年,更是人生的一个重大的转折点。相信多年后,我再回首,也会庆幸自己能这么快就找到自己热衷的,并愿意为之奋斗一生的东西。 2011年,我开始接触“编程”这个神奇的世界,HTML,CSS,JAVA,JSP,C++, PHP, Python, C#……各种新奇的东西开始出现在我的日记本上。 2011年,我养成了“天天看书,天天打代码。”的习惯。呵。不知像我这... 阅读全文
vim中文帮助教程
2012-01-03 15:25 by java线程例子, 209 阅读, 收藏,
摘要:
第一讲第一节∶移动光标 ※※ 要移动光标,请依照说明分别按下 h、j、k、l 键。 ※※ ^ k 提示∶ h 的键位于左边,每次按下就会向左移动。 < h l > l 的键位于右边,每次按下就会向右移动。 j j 键看起来很象一支尖端方向朝下的箭头。 v 1. 请随意在屏幕内移动光标,直至您觉得舒服为止。 2. 按下下行键(j),直到出现光标重复下行。---> 现在您应该已经学会如何移动到下一讲吧。 3. 现在请使用下行键,将光标移动到第二讲。提示∶如果您不敢确定您所按下的字母,请按下<ESC>键回到正常(Normal)模式。 然后再次从键盘输入您想要的命令。提示 阅读全文
新年 打油诗一首(与己勉)
2012-01-02 10:37 by java线程例子, 264 阅读, 收藏,
摘要:
烟花比烂漫,人在水云间。问月今何处?二零一二年!快乐留现在,牢骚去昨天。何苦做齐人?寰球还照转!责任肩上扛,理想心中藏。追求不强求,成败皆坦然! 阅读全文
技术随笔(密码保存,MSMQ)
2012-01-01 18:37 by java线程例子, 414 阅读, 收藏,
摘要:
1)密码保存: 明文肯定不行,加密后别人还可拖库碰撞解密,一般加密用hash的话可以加点扰动(所谓加盐,直接用GUID最好,这样基本可以保证用户密码相同Hash结果也不会相同),但这个扰动因子数据不要放在用户密码所在的数据库里,可以做成服务放在其它地方(比如Windows的目录服务里),而且这个服务只对自己的服务端应用开放访问权限(访问MAC地址限制,或其它硬件地址限制等),可以增加破解的难度;而且就是数据库被劫也没什么用。当然性能会有些影响。 话说回来,这个世界没有绝对的安全,密码的保护需要软件和用户一起来完成。用户在设密码的时候,还是可以分为几种场景来设,比如银行密码就肯定单独设了,没必要 阅读全文
2012技术方向上的期望
2012-01-01 18:16 by java线程例子, 189 阅读, 收藏,
摘要:
1、过系统架构师认证;2、玩转Linux及其编程(阅读至少一半Linux内核代码);3、体验大数据处理及云架构,并充分实践(写一个自己的MapReduce框架);4、英语能开口说话;为做中国最老程序员而努力! 阅读全文
《Shell脚本学习指南》第二章学习笔记
2012-01-01 15:29 by java线程例子, 180 阅读, 收藏,
摘要:
2.1 脚本编程语言与编译型语言的差异编译型语言从源代码转换成目标代码,便能直接通过计算机执行。好处是高效,但运作于底层。例如,在C++里,很难进行“将一个目录里所有的文件复制到另一个目录中”之类的简单操作。脚本编程语言通常是解释型(Interpreted)的。由解释器读入程序代码,并将其转换成内部的形式,再执行。解释器本身是一般的编译型程序。2.2 为什么要使用Shell脚本脚本执行效率通常不如编译型语言,但它已经足够快了,足以忽略它性能上的问题。花一个小时写成的简单脚本,同样的功能用C或C++来编写实现,可能需要两天。脚本编程语言的例子有awk、Perl、Python、Ruby与Shell 阅读全文