05
2019
06

使用重载编写衍生函数组

使用重载编写衍生函数组开发过的兄弟都知道,有一些工具库,有一堆的重载函数,调用起来非常方便,经常能直接调用,不需要做参数转换。这些是怎么样编写出来的呢?我们举例说明。现在需要编写一个方法,输入是一个utf-8格式的文件的文件名,把里面内容输出到一个list< String>。我们刚刚开始编写的时候,是这个样子的我们先实现,实现完之后我们做第一个修改,很明显,utf-8格式是很可能要改的,所以我们先把它做为参数提取出去,方法一拆为二,就变成这样。多了一个方法,直接调用之前的方法主体,主
05
2019
06

使用父类/接口

使用父类/接口举例,假设我们写了一个判断arraylist是否为空的函数,一开始是这样的。这个时候,我们需要思考一下参数的类型能不能使用父类。我们看到我们只用了size方法,我们可以知道size方法再list接口上有,于是我们修改成这样。后面发现,size方法再list的父类/接口Collection上也有,那么我们可以修改为最终这样。到了这部,Collection没有父类/接口有size方法了,修改就结束了。最后我们需要把参数名字改一下,不要再使用list。改完后,所有实现了Collectio
05
2019
06

代码编写中经常会涉及的工具类

如何编写出好的工具类,代码编写中经常会涉及的工具类隐藏实现:就是要定义自己的工具类,尽量不要在业务代码里面直接调用第三方的工具类。这也是解耦的一种体现。如果我们不定义自己的工具类而是直接使用第三方的工具类有2个不好的地方:1.不同的人会使用不同的第三方工具库,会比较乱。2.将来万一要修改工具类的实现逻辑会很痛苦。以最简单的字符串判空为例,很多工具库都有 StringUtils工具类,如果我们使用 commons 的工具类,一开始我们直接使用 StringUtils.isEmpty ,字符串为空或
04
2019
06

JavaSE学习之集合框架

JavaSE学习之集合框架一、集合框架1、集合引入(1)对象数组的概念:将多个类对象存放为数组特点:长度固定,不适应变化的需求。(2)面向对象强调的是对象,需要容器来进行存储和操作之前提过StringBuffer虽然是一种容器,但只存放字符串如果没有集合,我们只能选择对象数组,但并不能满足需求所以Java提供了集合,方便对多个对象进行操作(3)集合与数组的区别数组可以存储对象,也可以存储基本类型,并且存放的都是同一类型元素集合是可变的,但只能存储对象,可以存储不同类型元素(但其实一般还是同类型)
04
2019
06

学习Java之流程控制

学习Java之流程控制一、顺序结构分支结构    条件判断: 注意:①当某个条件表达式结果为true, 执行相应的语句,其他 else if 将不再执行           ②if-else 语句可以嵌套的选择结构: 注意:①表达式结果的数据类型,只能是 byte short char int 枚举 String(jdk1.7后)         
04
2019
06

Java语言的特性你了解多少

Java语言的特性你了解多少?1、简单Java语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。 Java略去了运算符重载、多重继承等模糊的概念,并且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作。2、纯面向对象Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏 ;而类则提供了一类对象的原型,并且通过继承机制,子类可以
03
2019
06

解耦是编程里面重要的思想

解耦是编程里面重要的思想个人认为,解耦是编程里面重要的思想,解耦的关键在于:多引入“第三者”,不要直接发生关系。spring的IoC最重要的价值不就是解耦吗?spring的容器不就是“第三者”吗?就像mvc一样,数据和视图要彻底的分离,否则业务代码里面有视图代码改起来是很痛苦的。数据结构上要考虑扩展由于是牵涉到表设计的时候,大家都知道改表结构很痛苦。很多时候,由于时间关系,一开始只做简单的功能,后面会慢慢丰富功能。这虽然不是变更,但是如果你一开始的时候不设计好,很可能后面版本需要大改动,数据库表
03
2019
06

如何应对需求变更

如何应对需求变更?有没有可能存在明确的、不再改动的需求呢?其实很难的。关于需求变动,不同的角色定义很不一样。BA觉得这个改动很正常,开发人员觉得就是个需求变更,两边各执一词,这种矛盾长期存在。我列举几种场景,大家觉得算不算需求变更?删除对象功能一开始只能创建者删除,后面变更为管理员也可以删除,再后面变更了某个角色也可以删除。配置功能一开始使用xml配置,后面修改为json格式,又或者修改为使用数据库配置。导出功能一开始导出为excel格式,后面变更为导出json格式或者pdf格式。或者一开始导出
03
2019
06

让你快速提高效率的日志小要求

让你快速提高效率的日志小要求#用户工具类用户信息放入MDC:#log4j配置增加用户信息变量,%X{user}#日志要求做好上面2步后,对开发人员的日志只有3点要求:1.修改(包括新增)操作必须打印日志大部分问题都是修改导致的。数据修改必须有据可查。2.条件分支必须打印条件值,重要参数必须打印尤其是分支条件的参数,打印后就不用分析和猜测走那个分支了,很重要!如下面代码里面的userType,一定要打印值,因为他决定了代码走那个分支。数据量大的时候需要打印数据量前后打印日志和最后的数据量,主要用于
31
2019
05

开发程序员如何写日志才能提高效率

开发程序员如何写日志才能提高效率开发中日志这个问题,每个公司都强调,也制定了一大堆规范,但根据实际情况看,效果不是很明显,主要是这个东西不好测试和考核,没有日志功能一样跑啊。开发久了,总会遇到“这个问题生产环境上能重现,但是没有日志,业务很复杂,不知道哪一步出错了?” 这个时候,怎么办? 还能怎么办,发个版本,就是把所有地方加上日志,没有任何新功能,然后在让用户重现一遍,拿下日志来看,哦,原来是这个问题。有没有很熟悉的感觉?还有一种情况,我们系统有3*5=15个节点,出了问题找日志真是痛苦,一个