- 博客(24)
- 资源 (8)
- 收藏
- 关注
原创 面向对象设计的基本原则3
正如牛顿三大定律在经典力学中的位置一样,“开-闭”原则(Open-Closed Principle)是面向对象的可复用设计(Object Oriented Design或OOD)的基石。其他设计原则(里氏代换原则、依赖倒转原则、合成/聚合复用原则、迪米特法则、接口隔离原则)是实现“开-闭”原则的手段和工具。 一、“开-闭”原则(Open-Closed Principle,OCP)1.1“开-闭”原...
2018-04-26 13:23:57 208
原创 面向对象设计原则2
个良好的面向对象设计需要遵循一些基本原则,如单一职责原则(SRP)、开放-封闭原则(OCP)、Liskov替代原则(LSP)、依赖倒置原则(DIP)、接口分离原则(ISP)等。1、 单一职责原则(SRP) 描述:就一个类而言,应该仅有一个引起它变化的原因。 应用:在构造对象时,将对象的不同职责分离至两个或多个类中,确保引起该类变化的原因只有一个。 带来的好处:提高内聚、降低耦合。 个人观点:该原则...
2018-04-25 16:41:04 147
原创 面向对象设计原则资料1
在使用面向对象思想进行系统设计时,总结出了若干面向对象设计原则,分别是:单一职责原则、开闭原则、里氏替代原则、依赖注入原则、接口分离原则、迪米特原则和组合/聚合复用原则。这些原则是面向对象设计的基石,坚持这些原则是增强系统扩展性、降低耦合性的重要保证。 下面介绍单一职能原则。 单一职能原则一、定义 单一职责原则(SRP),英文全称是Single Responsibility Pri...
2018-04-24 17:13:47 120
原创 类和类之间的依赖、关联、聚合、组合关系
一、继承关系 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。 二、实现关系 实现指的是一个class类实现interface接口(可以是多个)的...
2018-04-23 20:01:43 22839 1
原创 如何实现对象克隆?
有两种方式: 1). 实现Cloneable接口并重写Object类中的clone()方法; 2). 实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆,注意:基于序列化和反序列化实现的克隆不仅仅是深度克隆,更重要的是通过泛型限定,可以检查出要克隆的对象是否支持序列化,这项检查是编译器完成的,不是在运行时抛出异常,这种是方案明显优于使用Object...
2018-04-23 14:39:48 646
转载 JVM加载class文件的原理机制
Java中的所有类,都需要由类加载器装载到JVM中才能运行。类加载器本身也是一个类,而它的工作就是把class文件从硬盘读取到内存中。在写程序的时候,我们几乎不需要关心类的加载,因为这些都是隐式装载的,除非我们有特殊的用法,像是反射,就需要显式的加载所需要的类。Java类的加载是动态的,它并不会一次性将所有类全部加载后再运行,而是保证程序运行的基础类(像是基类)完全加载到jvm中,至于其他类,则在...
2018-04-21 08:43:32 151
翻译 《Python编程金典》--函数
1. python的程序组件包括函数、类、模块和包。“模块”是包含函数和类定义的文件。许多模块可以组合成一个集合,称为“包”。2. 模块位于python安装目录的库目录下。在unix/linux下,是/usr/lib/python2.2或/usr/local/lib/python2.2,在windows上,则是\python\lib。3. 函数定义中创建的所有变量都是“局部变量”--只...
2018-04-20 13:28:59 343
原创 Android Studio安装教程
Android Studio安装教程1、这里给大家提供了AndroidStudio安装包跟SDK,2、开始安装: 2.1、点击下一步 2.2、选择安装目录,这里我的安装目录是D:\Android\Android Studio,这个可以根据自己的实际情况选择,然后选择Next2.3、点击Install(安装)2.4、安装完成 点击Next 2.5、到这一步安装就完成了,这里不要选中S...
2018-04-19 20:15:07 52244 8
转载 《Python编程金典》-- 函数
1. python的程序组件包括函数、类、模块和包。“模块”是包含函数和类定义的文件。许多模块可以组合成一个集合,称为“包”。2. 模块位于python安装目录的库目录下。在unix/linux下,是/usr/lib/python2.2或/usr/local/lib/python2.2,在windows上,则是\python\lib。3. 函数定义中创建的所有变量都是“局部变量”--只...
2018-04-19 08:45:29 173
转载 Linux系统如何安装Tomcat,jdk.mysql详细介绍
安装Tomcat,jdk.mysql注意:本安装目录全部位于/usr/work中 首先使用mkdir创建work目录一.安装jdk 步骤一、下载jdk的rpm安装包步骤二、如果linux是centos的话,请先卸载openjdk.1.使用rpm命令卸载CentOS6.4自带的OpenJDK 1.1安装好的CentOS 6.4会自带OpenJdk,要先用rpm命令卸载OpenJdk,才可以安...
2018-04-18 09:57:18 240
翻译 JqueryEasyUI如何使用
JqueryEasyUI1. 准备2. 布局Layout3. 手风琴Accordion4. 菜单树Tree5. 数据表格DataGrid6. 内容页Tabs7. 表单 关于easyui不多说,对于我们这样没有美术功底的程序员来说,简直是大大的福利,下面我们就一步一步来创建. 1.准备 htt...
2018-04-18 09:41:16 7855 1
原创 《Python编程金典》--控制流程
1. 所谓“算法”,是指解决一个问题的“过程”,它包含两个含义,1是要采取的行动,2 是采取这些行动的顺序。2. 研究表明,只要三种结构就可以写出所有程序,这三种结构是:顺序结构,选择结构以及重复结构。3. 算法求精,就是把算法用伪代码逐层分解成可以用python程序实现的过程。4. +=符号将符号右边的表达式的值加到左边的变量上,再将结果存回左边的变量。变量要先初始化,如果没有会...
2018-04-18 09:38:15 280
原创 《Python编程金典》--python编程概述
1. raw_input是python的内建函数,要求用户输入,输入结果是一个字符串。 example: test =raw_input("please input a number:\n")2. python是一种区分大小写的语言。3. id函数返回变量内存位置,type函数返回变量类型。4. 在python2.2前,只提供一种除法运算符(/),运算的行为(即是Floor整数除法...
2018-04-17 15:25:04 561
原创 在标准的JDK库中使用的一些设计模式有什么
Decorator(装饰者)设计模式常被用于各种Java IO类中Singleton模式常被用在运行环节中,Calendar以及各种其他类Factory(工厂)模式常被用于各种不可变类,比如Boolean。Boolean.valueOfObserver(观察者)模式常被用于Swing和许多事件监听器框架中。...
2018-04-17 09:06:36 2098
原创 开发中都用到了那些设计模式?用在什么场合?
所谓设计模式,就是一套被反复使用的代码设计经验的总结(情境中一个问题经过证实的一个解决方案)。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使人们可以更加简单方便的复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数...
2018-04-17 09:05:28 10405 1
转载 利用Python抢票,攻破12306的最后一道防线
首先在买票前我们需要先确认是否有票,那么进行正常的查票,打开12306查票网站https://kyfw.12306.cn/otn/leftTicket/init输入出发地和目的地进行搜索。 那么一般在看到这个页面的时候我们能想到的获取车次及相关信息的方式是什么呢?对于零基础的同学而言第一时间就会想到在源代码里面找,但这里事实上源代码里面根本没有相关内容,因为该请求是采用的js中ajax异步请求的...
2018-04-14 10:37:37 601
翻译 说出Servlet的生命周期,并说出Servlet和CGI的区别
Servlet被服务器实例化后容器运行其init方法请求到达时运行其service方法service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新...
2018-04-13 09:05:33 870
转载 项目经理笔试题
1. 下列哪个不是项目管理计划的一部分?( C)A. 里程碑图示 B. 进度 C. 数据库设计 D. 风险清单2. 需求分析是回答系统必须( A)的问题A. 做什么 B. 怎么做 C. 何时做 D. 为谁做3. 为了有效地管理项目,应该将工作分解为更小的部分,以下各项中,哪一项不能说明任务应该分解到什么程度?(A)A. 可以在80小时内完成 B. 不能再进一步进行...
2018-04-12 20:13:17 12691 2
原创 我们怎么保证软件开发的质量?
要保证软件的质量首先就要获得完整的需求,在需求分析阶段做了大量的工作与客户各个环节的代表性用户进行沟通,充分了解和熟悉客户的业务。并且从需求到设计阶段都保持与用户的沟通和交流。让用户的业务专家一直参与我们的需求,分析和设计工作。其次我们会在需求分析后就编写测试计划,在开发的每个阶段都进行相应的测试来保证代码是乎合相应需求的。在代码编写过程中,每完成一个类都由程序进行单元测试,每完成一个功能点或模块...
2018-04-12 20:07:22 10260
原创 支付宝接口开发步骤
1、需要向客户要的东西:、PID、Key、企业支付宝的账号2、前期准备:注册好企业账号,然后申请支付套餐:https://b.alipay.com/order/productSet.htm建议申请【网银支付】+【即时到账收款】(可以不申请)。里面的方案按各自的需求选择“套餐“类型去申请。3、申请好套餐后正常2-5天会有申请状态,成功后进入【我的商家服务】:地址:https://b.alipay.c...
2018-04-12 11:53:53 357
原创 说出Servlet的生命周期,并说出Servlet和CGI的区别
Servlet被服务器实例化后容器运行其init方法请求到达时运行其service方法service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的...
2018-04-12 11:45:17 408
原创 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收
对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。可以。程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。...
2018-04-12 11:43:35 1317
原创 解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法。
堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身. 3.一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 。 栈区:1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中2.每个栈中...
2018-04-10 11:05:35 2647
原创 数据连接池的工作机制是什么
数据连接池是把数据库连接放到中间服务器上,比如tomcat上,那么相当于每次你操作数据库的时候就不需要再"连接"到数据库再进行相关操作,而是直接操作服务器上的"连接池",.这样的话就可以提高"效率".但是数据池一般是用在数据量比较大的项目,这样可以提高程序的效率,想一想这样的话是不是就把相关的负荷加在了服务器上,因为这个"池"是在服务器上的,对于小数据量处理的项目不推荐使用,应为过于频繁的请求会使...
2018-04-10 10:53:01 4347
局域网多机共享鼠标键盘,编译了linux和win两个版本
2018-06-11
SpringBoot
2018-06-04
代码自动生成器
2018-05-16
SSM框架开发APP软件管理平台
2018-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人