《技术预答辩资料整理2.docx》由会员分享,可在线阅读,更多相关《技术预答辩资料整理2.docx(54页珍藏版)》请在第一文库网上搜索。
1、1 .介绍自己常用IinUX指令Is全拼1ist,功能是列出目录的内容及其内容属性信息。cd全拼changedirectory,功能是从当前工作目录切换到指定的工作目录。示例:cd/home进入7home目录cd.返回上一级目录cd返回上两级目录cd进入个人的主目录cduser1进入个人的主目录Cd-返回上次所在的目录CP全拚py,其功能为复制文件或目录。示例:cpfi1e1fi1e2复制一个文件cpdir*.复制一个目录下的所有文件到当前工作目录cp-atmpdir1.复制一个目录到当前工作目录cp-adir1dir2复制一个目录find查找的意思,用于查找目录及目录下的文件。示例:find
2、/-namefi1e1从7,开始进入根文件系统搜索文件和目录find/-useruser1搜索属于用户ISerr的文件和目录findhomeuser1-name*.bin在目录7homeuser中搜索带有IbirT结尾的文件findusrbin-typef-atime+100搜索在过去100天内未被使用过的执行文件findusrbin-typef-mtime-10搜索在10天内被创建或者修改过的文件find/-name*.rpm-execchmod7550搜索以,.rpm,结尾的文件并定义其权限find/-xdev-name*.rpm搜索以.rpm结尾的文件,忽略光驱、捷盘等可移动设备mkdi
3、r全拼makedirectories,其功能是创建目录。示例:mkdirdir1创建一个叫做,dir的目录mkdirdir1dir2同时创建两个目录mkdir-ptmpdir1dir2创建一个目录树mv全拼move,其功能是移动或重命名文件。示例:mvdir1new_dir重命名/移动一个目录pwd全拼printworkingdirectory,其功能是显示当前工作目录的绝对路径。rename用于重命名文件。rm全拼remove,其功能是删除一个或多个文件或目录。rmdir全拼removeemptydirectories,功能是删除空目录。示例:rm-ffi1e1删除一个叫做,fi1e1的文件
4、rmdirdir1删除一个叫做dir1的目录,rm-rfdir1删除一个叫做dir1的目录并同时删除其内容rm-rfdidir2同时删除两个目录及它们的内容2 .介绍实1java开发中使用的设计模式1,单例模式:实现方式:a)将被实现的类的构造方法设计成PriVate的。b)添加此类引用的静态成员变量,并为其实例化。C)在被实现的类中提供公共的Create1nstance函数,返回实例化的此类,就是b中的静态成员变量。应用场景:优点:1 .在单遍模式中,活动的单例只有一个实例,对单例类的所有实例化得到的都是相同的一个实例。这样就防止其它对象对自己的实例化,确保所有的对象都访问一个实例2 .单例
5、模式具有一定的伸缩性,类自己来控制实例化进程,类就在改变实例化进程上有相应的伸缩性。3 .提供了对唯一实例的受控访问。4 .由于在系统内存中只存在一个对象,因此可以节约系统资源,当需要频繁创建和销毁的对象时单例模式无疑可以提高系统的性能。5 .允许可变数目的实例。6 .避免对共享资源的多重占用。缺点:1 .不适用于变化的对象,如果同一类型的对象总是要在不同的用例场景发生变化,单例就会引起数据的错误,不能保存彼此的状态。2 .由于单利模式中没有抽象层,因此单例类的扩展有很大的困难。3 .单例类的职责过重,在一定程度上违背了“单一职责原则”。4 .滥用单例将带来一些负面问题,如为了节省资源将数据库
6、连接池对象设计为的单例类,可能会导致共享连接池对象的程序过多而出现连接池溢出;如果实例化的对象长时间不被利用,系统会认为是垃圾而被回收,这将导致对象状态的丢失。使用注意事项:1 .使用不露用反射模式创建单例,否则会实例化一个新的对象2 .使用懒单例模式时注意线程安全问题3 .单例模式和懒单例模式构造方法都是私有的,因而是不能被继承的,有些单例模式可以被继承(如登记式模式)适用场景:单例模式只允许创建一个对象,因此节省内存,加快对象访问速度,因此对象需要被公用的场合适合使用,如多个模块使用同一个数据源连接对象等等。如:1需要频繁实例化然后销毁的对象。2 .创建对象时耗时过多或者耗资源过多,但又经
7、常用到的对象。3 .有状态的工具类对象。4 .频繁访问数据库或文件的对象。以下都是单例模式的经典使用场景:1资源共享的情况下,避免由于资源操作时导致的性能或损耗等。如上述中的日志文件,应用配置。2.控制资源的情况下,方便资源之间的互相通信。如线程池等。应用场景举例:1 .外部资源:每台计算机有若干个打印机,但只能有一个PrinterSpooIer,以避免两个打印作业同时输出到打印机。内部资源:大多数软件都有一个(或多个)属性文件存放系统配置,这样的系统应该有一个对象管理这些属性文件2 .Windows的TaSkManager(任务管理器)就是很典型的单例模式(这个很熟悉吧),想想看,是不是呢,
8、你能打开两个windowstaskmanager吗?不信你自己试试看哦3 .windows的ReCydeBin(回收站)也是典型的单例应用。在整个系统运行过程中,回收站一直维护着仅有的一个实例。4 .网站的计数器,一般也是采用单例模式实现,否则难以同步。5 .应用程序的日志应用,一般都何用单例模式实现,这一般是由于共享的日志文件一直处于打开状态,因为只能有一个实例去操作,否则内容不好追加。6 .Web应用的配置对象的读取,一般也应用单例模式,这个是由于配置文件是共享的资源。7 .数据库连接池的设计一般也是采用单例模式,因为数据库连接是一种数据库资源。数据库软件系统中使用数据库连接池,主要是节省
9、打开或者关闭数据库连接所引起的效率损耗,这种效率上的损耗还是非常昂贵的,因为何用单例模式来维护,就可以大大降低这种损耗。8 .多线程的线程池的设计一般也是采用单例模式,这是由于线程池要方便对池中的线程进行控制。9 .操作系统的文件系统,也是大的单例模式实现的具体例子,一个操作系统只能有一个文件系统。10 .HttpAppIication也是单位例的典型应用。熟悉ASPNet(IIS)的整个请求生命周期的人应该知道HttpAppIication也是单血模太,所有的HttpModuIe都共享一个HttpAppIication实例.2 .策略模式:实现方式:a)提供公共接口或抽象类,定义需要使用的策
10、略方法。(策略抽象类)b)多个实现,策略抽象类的实现类。(策略实现类)c)环境类,对多个实现类的封装,提供接口类型的成员量,可以在客户端中切换。d)客户端调用环境类进行不同策略的切换。注:Jdk中的TreeSet和TreeMap的排序功能就是使用了策略模式。策略模式的优点(1)策略模式提供了管理相关的算法族的办法。策略类的等级结构定义了一个算法或行为族。恰当使用继承可以把公共的代码移到父类里面,从而避免代码重复。(2)使用策略模式可以避免使用多重条件(if-e1se)语句。多重条件语句不易维护,它把采取哪一种算法或采取哪一种行为的逻辑与算法或行为的逻辑混合在一起,统统列在一个多重条件语句里面,
11、比使用继承的办法还要原始和落后。策略模式的缺点(1)客启端必须知道所有的策略类,并自行决定使用哪一个策略类。这就意味着客户端必须理解这些算法的区别,以便适时选择恰当的算法类。换言之,策略模式只适用于客户端知道算法或行为的情况。(2)由于策略模式把每个具体的策略实现都单独封装成为类,如果备选的策略很多的话,那么对象的数目就会很可观。3 .适配器模式:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。1 .类适配器(子类继承方式)实现方式:a)目标抽象角色(定义客户要用的接口)b)适配器(实现a继承c,作为一个转换器被客户调用)c
12、)待适配器(真正需要被调用的)d)客户端(借用a的实例调用C的方法)2 .对象适配器(对象的组合方式)实现方式:a)目标抽象角色(定义客户要用的接口)b)适配器(实现a,维护一个C的引用,作为一个转换器被d调用)c)待适配器(真正需要被调用的)d)客户端(此类,借用a类的实例调用C类的方法,类似静态代理,但是解决的问题不同)3 .缺省的方式实现方式:a)抽象接口b)实现a的适配器类(空实现)c)客户端,继承b,调用b中的方法,不必直接实现a(直接实现a需要实现a中的所有的方法)适配器模式的优点:1 .更好的复用性系统需要使用现有的类,而此类的接口不符合系统的需要。那么通过适配器模式就可以让这些
13、功能得到更好的复用。2 .更好的扩展性在实现适配器功能的时候,可以调用自己开发的功能,从而自然地扩展系统的功能。适配器模式的缺点:过多的使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是A接口,其实内部被适配成了B接口的实现,一个系统如果太多出现这种情况,无异于一场灾难。因此如果不是很有必要,可以不使用适配器,而是直接对系统进行重构。4,工厂模式就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。实现方式:a)抽象产品类(也可以是接口)b)多个具体的
14、产品类c)工厂类(包括创建a的实例的方法)庆点:工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.通过使用工厂类,外界可以从直接创建具体产品对象的尴尬局面摆脱出来,仅仅需要负责“消费”对象就可以了。而不必管这些对象究竟如何创建及如何组织的.明确了各自的职责和权利,有利于整个软件体系结构的优化。缺点:由孑工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中;它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了。当系统中的具体产品类不断增多时候,可能会出现要求工厂类根据不同条件创建不同实
15、例的需求.这种对条件的判断和对具体产品类型的判断交错在一起,很难避免模块功能的蔓延,对系统的维护和扩展非常不利;3 .设计模式用来干什么?公司框架用了哪些设计模式?举例说明设计模式(DeSignPattem)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块破石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。4 .设计模式的设计原则有哪些?哪个设计原则是核心?1 .单一取责一个类,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合