![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javaSE
文章平均质量分 73
-Hermes-
Stay hungry, Stay foolish.
展开
-
JDBC操作Oracle
JDBC操作Oracle涉及的包 java.sql.Connection;java.sql.DriverManager;java.sql.ResultSet;java.sql.SQLException;java.sql.Statement;JDBC操作Oracle知识点梳理 Oracle包的位置:product\11.2.0\dbhome_1\jdbc\libJ原创 2017-05-02 10:21:37 · 3040 阅读 · 0 评论 -
Java编码规范,让你的代码赏心悦目--错误处理
先写try-catch-finally语句 从某种意义上try代码块就像是事务。catch代码块将程序维持在一种持续状态。在编写可能出现异常的语句时,最好先写这个try/catch代码块。这样可以事先划定一个范围。给出异常发生的环境说明 抛出的每个异常,都应当提供足够的环境说明,以便判断错误的来源和处所;应创建信息充分的错误信息,并和异常一起传递过去。在消息中,原创 2017-09-11 21:27:40 · 1257 阅读 · 0 评论 -
Java编码规范,让你的代码赏心悦目--类
类的组织 类应该从一组变量列表开始,如果有公共静态常量,应该先出现。然后是私有静态变量,以及私有实体变量。很少会有公共变量。公共函数应跟在变量列表之后。我们喜欢把由某个公共函数调用的私有工具函数紧随在公共函数后面。这符合自顶向下原则;类应该短小 类越短小越好!函数一般计算代码行数。对于类,采用不同的衡量方法。计算权责!类的名称应当描述其权责。类的命名是帮原创 2017-09-11 21:28:09 · 703 阅读 · 0 评论 -
Java编码规范,让你的代码赏心悦目--迭进
通过迭进设计达到整洁目的 简单设计的四条规则,以下规则按其重要程序排列:运行所有测试;不可重复;表达了程序员的意图;尽可能减少类和方法的数量;简单设计规则1:运行所有测试 全面测试并持续通过所有测试的系统,就是可测试的系统;紧耦合的代码难以编写测试。使用依赖注入,接口,和抽象来减少耦合;简单设计规则2~4:重构 有了测试,就能保原创 2017-09-11 21:28:21 · 1079 阅读 · 0 评论 -
Java连接Access数据库
JDK1.7以下连接Access:ODBC连接方式 使用的工具java JDK 1.7;Access 2013;ODBC数据源;数据库结构建立数据库shop,在其中添加表goods,表结构如下:数据如下: 建立ODBC数据源:控制面板-->管理工具-->数据源(odbc) 具原创 2017-11-21 22:16:39 · 20743 阅读 · 4 评论 -
Java基础--Collection方法
一.API图示 二.常用方法0.构造函数// Collection c = new Collection(); //错误,因为接口不能实例化 Collection c = new ArrayList();//ArrayList是Collection下的一个子类 1.添加功能boolean add(Object obj)添加一个元素boolean addAll(原创 2017-11-21 22:20:42 · 7884 阅读 · 1 评论 -
设计模式--组合模式
目录:此模式中的示例,基于迭代器模式,传送门:迭代器模式组合模式:允许你将对象组合成树形结构来表现"整体/部分"层次结构。组合能让客户以一致的方式处理个别对象以及对象组合; 知识点的梳理: 组合模式提供一个结构,可同时包容个别对象和组合对象;组合模式允许客户对个别对象以及组合对象一视同仁;组合结构内的任意对象称为组件,组件可以是组合,也可以是叶节点;在实现组合模式时,有原创 2017-12-19 22:18:07 · 795 阅读 · 0 评论 -
Java编码规范,让你的代码赏心悦目--对象和数据结构
数据,对象的反对称性 先来看一段过程式形状代码 此时给Geometry类添加一个primeter()函数,这些形状类根本不会因此而受影响。另一方面,如果添加一个新形状,就得修改Geometry中的所有函数来处理它再来看一段多态式形状 在这里,area()方法是多态的。不需要有Geometry类。如果添加一个新形状,现有的函数一个也不会受到影响,原创 2017-09-05 22:18:33 · 697 阅读 · 0 评论 -
Java编码规范,让你的代码赏心悦目--有意义的命名
名副其实 变量,函数,类的命名应该告诉我们它做什么事。如果需要注释来补充,就不算是名副其实。int d;//消逝的时间,以日计。名称d什么也没说明,要靠注释说明自身来看几个更好的例子:int elapsedTimeInDays;int daysSinceCreation;int daysSinceModification;int fileAgeInDays;避免误导原创 2017-09-05 22:17:34 · 1034 阅读 · 0 评论 -
Java编码规范,让你的代码赏心悦目--格式
垂直格式 源代码该有多大?短文件通常比长文件易于理解;垂直方向上的靠近空白行隔开了概念,靠近的代码行则暗示了它们之间的紧密关系;这条规则不适用于分布在不同文件中的概念。除非有很好的理由,否则就不要把关系密切的概念放到不同的文件中。这也是避免使用protected变量的 理由之一。变量声明应尽可能靠近其使用位置。因为函数较短,本地变量应该在函数的顶部出原创 2017-09-05 22:18:13 · 685 阅读 · 0 评论 -
Java设计模式透析--策略模式(一)
策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 知识点的梳理: 为了"复用"目的而使用继承,结局并不完美!找出应用中可能需要变化的地方,把它们独立出来,不要和那些不需要变化的代码混在一起;针对接口编程,而不是针对实现编程;多用组合,少用继承; 模拟鸭子应用 示例:公司开发了一套模拟鸭子游戏Sim原创 2017-05-15 09:06:48 · 527 阅读 · 0 评论 -
Java设计模式透析--装饰者模式(二)
装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案; 知识点的梳理: 装饰者模式符合开闭原则!继承属于扩展形式之一,但不见得是达到弹性设计的最佳方式;在我们的设计中,应该允许行为可以被扩展,而无须修改现在的代码;组合和委托可用于在运行时动态地加上新的行为;除了继承,装饰者模式也可以让我们扩展行为;装饰者模式意味着一群装饰者类,这原创 2017-05-28 09:24:13 · 769 阅读 · 0 评论 -
Java设计模式总览(一)
知识点的梳理: 让设计模式自然而然地出现在你的设计中,而不是为了使用而使用;设计模式并非僵化的教条:可以根据自己的需要采用或调整;总是使用满足需要的最简单解决方案,不管它用不用模式; 什么是模式? 模式:在某情境(Context)下,针对某问题的某种解决方案;情境:就是应用某个模式的情况。这应该是不断出现的情况。(例如:你拥有一个对象的集合);问题:就原创 2017-06-05 09:19:49 · 551 阅读 · 0 评论 -
设计模式--适配器模式(三)
适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间; 知识点的梳理: 当需要使用一个现有的类而其接口并不符合你的需要时,就使用适配器;适配器改变接口以符合客户的期望;实现一个适配器花费的时间取决于目标接口的大小与复杂程度;适配器有两种形式:对象适配器和类适配器;类适配器需要多重继承;适配器将一个对象包装起来以改变其接口原创 2017-06-05 09:22:28 · 765 阅读 · 0 评论 -
设计模式--适配器模式(简要)(四)
优点让本来不适合使用的接口变得适合使用 缺点一次只能适配一个类,使用有一定的局限性 /* * 针对用户操作的四种功能,增删改查 */ public interface UserDao { public abstract void add(); public abstract void delete(); publ原创 2017-06-05 09:22:52 · 461 阅读 · 0 评论 -
设计模式--抽象工厂模式(八)
目录:注意,此模式涉及的示例,来自于工厂模式笔记 抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类; 知识点的梳理: 抽象工厂使用对象组合:对象的创建被实现在工厂接口所暴露出来的方法中;抽象工厂创建相关的对象家族,而不需要依赖它们的具体类; 再回到比萨店。。。 现在我们需要确保每家加盟店使用的原料都是高质量的。现在打算建原创 2017-07-10 09:16:26 · 534 阅读 · 0 评论 -
设计模式--抽象工厂模式(简要)(九)
优点客户端不需要在负责对象的创建,从而明确了各个类的职责,如果有新的对象增加,只需要增加一个具体的类和具体的工厂类即可,不影响已有的代码,后期维护容易,增强了系统的扩展性 缺点需要额外的编写代码,增加了工作量 //父类 public abstract class Animal { public abstract void eat(); }原创 2017-07-10 09:16:47 · 438 阅读 · 0 评论 -
哪些代码需要重构(二)
Duplicated Code(重复代码) 常见的重复代码出现场景:同一个类的两个函数含有相同的表达式:提炼出重复的代码,然后让这两个地点都调用被提炼出来的那一段代码;两个互为兄弟的子类内含有相同表达式:对这两个类进行提炼函数,再将提炼出的代码上移,放入超类:如果代码之间只是类似,并非完全相同,那么就将相似部分和差异部分分割,构成单独一个函数;如果有些函数以不同的算法原创 2017-08-06 13:18:08 · 948 阅读 · 0 评论 -
重构,第一个案例(三)
知识点的梳理: 如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性;重构的节奏:测试,小修改,测试,小修改,测试,小修改...重要的事情说三遍; 案例描述 此实例是一个影片出租店使用的程序,计算每一位顾客的消费金额并打印详单;操作者告诉程序:顾客租了哪些影片,租期多长,程序便根据租原创 2017-08-06 13:19:09 · 886 阅读 · 0 评论 -
重构--Replace Temp with Query(以查询取代临时变量)(六)
重构方式 你的程序以一个临时变量保存某一表达式的运算结果;将这个表达式提炼到一个独立函数中,将这个临时变量的所有引用点替换为对新函数的调用。此后,新函数就可被其他函数使用; 动机 临时变量的问题:只能存在于所属函数;会驱使函数变长,只有这样才能访问到需要的临时变量;Replace Temp with Query往往是在运用Extract原创 2017-08-22 21:42:07 · 676 阅读 · 1 评论 -
Java编码规范,让你的代码赏心悦目--函数
短小 函数越短小越好!if,else,while,它们中的代码最好只有一行!最好是一个函数调用又因为函数名称具有说明意义,所以它们本质上又是一个不错的说明文档!只做一件事 函数应该只做一件事情!如何判断函数是否只做了一件事情:看该函数是否能再拆出一个函数,该函数不仅只是单纯地重新诠释其实现!每个函数一个抽象层级 自顶向下读代码:向下规则原创 2017-09-05 22:17:55 · 1934 阅读 · 0 评论