我本人一直以来犯的错误,在看了《Think In Java》后才抓了出来
也许你是只老鸟,也许你的程序编的很精,但是,在你的程序生活,你也许没有注意到一些“常识性”的问题,因为有些时候我们不需要去注意,我们的程序照样能够运行得飞快,但是如果那天有一个无聊的人问你一个像这样的问题,本来他是非常崇拜你的,可是因为你的一个疏忽就从他的心理掉价了。呵呵,开个玩笔,有一些东西我们还真的不得不注意,因为说不定我们那天就在这个小沟里翻了。我个人也是个CODER,一直被外界的一些花哨的东西所忽悠着,一直就没有心来看这些书,大致一翻,都懂,没有什么看的。但是,懂是懂的,可是有很多的所以然,还真的说不出来。
1、Java里面默认值的误解:
这是Eclipse下面的一张切图,我相信你是很熟悉的,JAVA里面不是说,当变量没有赋值不是有自动的默认值,为什么会在下面出错呢!?:
这个不是SUN公司的错,怪只怪我们没有仔细看文档,因为我们所看的书中都可能是这样的说“如果没有分配值,系统会为变量自动分配置默认值”,我们就信以为真了,有些地方也确实是行得通的,在有时编程的时候也遇到没有赋值就编译通示过的提示,也没有多去想。这个所说的默认值是指类成员变量在没有赋值的时候会赋以默认值,其它局部变量是不能够享受这种待遇的。这下懂了吧,为什么会出错了,这里一定要给以初使值才行。
2、很少使用接口
当然这不是说我有这处毛病,你们就有,我只是说我自己,以免在黑暗中被拍了砖头@。至少我相信有一大部朋友是这样的,拿到一个东西,就直接在类里面去实现,因为为什么呢?没有必要吗,为什么要去多写一个接口呢,这不是明摆着给自己找麻烦吗?
说实话,就在写这篇自我反省以前,我一直都是这样的,可以说是从来没有写过接口,也许您会说,“从来没有写过接口也算是学JAVA”,不过不管你怎么说,确实没有写过,所有写的都是直接在类中实现(注:我这里指的类表示非接口类)。如果有些小程序,确实不需要写,因为实现也很简单,也可能以后不需要继承,也不需要在以后的某年某月再次重新优化一下,当然没有必要了。
可是,这是一个习惯问题,当你走路习惯了左边,那你走路的时候就不会走右边,你就会在不知觉中去和车车亲个嘴。我们应该培养自己的这种思维,让我们不管在大小项目中,都会想到要这么做。有句古话叫“一屋不扫,何以扫天小”就是这个道理,而不是报以“大丈夫不拘小节”的态度。
你可能对这个为什么要写接口还是不明白,就像《Think In Java》这样说的,“如果你现在写了一个功能,以后发现这个功能执行起来速度不理想的时候,如果你去代码中改,那有可能会是增加BUG进去,如果我们使用了接口,就不用这么麻烦了,方法重写就很好办”,我想也是这样的,我就经常犯这样的错误,有些时候随着时间的推移,连自己写的程序,逻辑都还要慢慢去理。
3、让一个类去做特定的事情
在《Think In Java》提到,把每个对象都当成服务的提供者,为什么这样说呢?还是说现实的比喻吧,就像是一个人,我们如果希望他什么都会,结果也可能是他什么都会,但是没有一样东西是能够拿出手的,都是半懂。而如果把这些东西分给多个人去学习,只要他们每人学自己那一部份,结果是每个人懂得都不是那么多,也不会有那么大的心理负担去学习,最后都学得很精,结果综合的深度,每个人都能够独挡一面,就是这个道理。
我个人也是经常犯这样的错误,有些时候,一个类下来,什么乱七八糟的功能都有,结果后来多得连自己有时都分不清楚,那些方法在用,那些方法没有用了。
4、根本不注重合理使用访问控制:public, private, protected
我自己写程序的时候,想到什么样方便,就怎么样使用,特别是对于类变量,不管定义成PUBLIC还是PRIVATE,都可以在当前类中使用无阻,这也应该就是让我不注意的原因吧。如果完全是自己使用,可能出错的机率不会太大,因为个人对这个应该还是熟悉的,但是如果你的应用程序需要发布,用户来使用就会出错,因为他们调用一个不能够独立执行的方法或者是变量。又或者是一个本来不需要对外公开的方法,你对外公开了,外面的用户使用了,而在你后面的版本中,你又把这个方法更改了,那么使用者在调用这个方法的时候就会出错,至少你写的程序分健壮性就要打个问号了。
这是我现在发现的个人毛病,挑出来,希望以后不要再犯。最后见意,有经验的程序员,不要忘了看看《Think In Java》,因为你们更容易犯错,而在自己的错误中生存下去。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

我本人一直以来犯的错误,在看了 Think In Java 后才抓了出来相关推荐

  1. 我本人一直以来犯的错误,在看了《Think In Java》后才抓了出来

    我本人一直以来犯的错误,在看了<Think In Java>后才抓了出来 也许你是只老鸟,也许你的程序编的很精,但是,在你的程序生活,你也许没有注意到一些"常识性"的问 ...

  2. Discuz1.5 密码错误次数过多,请 15 分钟后重新登录

    Discuz1.5 密码错误次数过多,请 15 分钟后重新登录 Discuz X1.5修改方式: 打开 source/function/function_member.php文件, 修改第103行: ...

  3. java中常见的编译错误的是_编译时JAVA最常见的错误有哪些

    如果你正学习Java语言,你在编译和执行代码的时候遇到问题,一般来说问题将分为2类:无论你遇到的是编译时错误,这说明你的程序编译失败,还是你遇到运行时错误,这是指错误发生在你成功地编译了程序但不能运行 ...

  4. matlab用diag直接使用错误_精华液使用3大错误,过敏不能用,晒后不能用,第3点错得太常见!...

    身为一枚护肤爱好者,在日常的保养步骤当中,肯定少不了使用精华液的习惯,我们常常说浓缩就是精华,这个说法就可想而知,精华是比较厉害的,哈哈~ 大部分小姐姐都知道要使用精华液,但是很少人会去研究到底什么是 ...

  5. python目录名称无效_python目录名错误怎么解决?这几种方案才是你需要学会的

    [摘要]python可以用来做很多事情,如何统计python词频?如何用python统计目录名错误的事情?这是我每次面试的时候都会问的一个问题,那么python目录名错误怎么解决?这几种方案才是你需要 ...

  6. android gradle错误,更新到Android Studio 2.3后出现Gradle错误

    gradle构建失败并显示消息 Error:Could not create parent directory for lock file C:\Program Files\Android\Andro ...

  7. 【错误记录】NDK 报错 java.lang.UnsatisfiedLinkError 的一种处理方案 ( 主应用与依赖库 Module 的 CPU 架构配置不匹配导致 )

    文章目录 一.问题描述 二.问题排查 三.解决方案 一.问题描述 NDK 开发 , 在调用 JNI 对应 Java 类时 , 静态代码块中 System.loadLibrary 语句调用时 , 报如下 ...

  8. java date传输类型错误_转换日期格式:Java中的转换错误?

    我正在尝试将此日期转换为其他格式.不幸的是,他们成功地解析了日期并正确地保留了所有信息. 06-Dec-2017 07:14:56.656PM 至 2017-12-06 19:14:56.656 如果 ...

  9. python tab和空格混用_Python编程常见十大错误,看完你自己都笑了!

    关注并置顶[柠檬班]的小哥哥小姐姐 胸有成"猪" 使用python会出现各种各样的错误,以下是Python常见的错误以及解决方法.  01 ValueError ValueErro ...

最新文章

  1. 漫画:什么是计数排序?
  2. Openwrt中ppp拨号总结
  3. 谈谈无头电商 - headless commerce
  4. 一起谈.NET技术,.NET缓存机制探讨与比对
  5. C++ STL pair方法详解
  6. Android BufferQueue生产消费原理(八)
  7. 关于利用exchange server 2003搭建邮件服务器:小进步……
  8. VS2010打开就自动关闭问题解决
  9. 基于微信小程序外卖点餐系统 开题报告
  10. 风控模型——评分卡模型
  11. matlab推挽用的变压器,推挽逆变+全桥整流~~~~逆变器变压器设计
  12. mysql设置不区分大小写_更改MYSQL数据库不区分大小写表名
  13. c语言遍历算法的头文件,图优先遍历算法(C语言版).doc
  14. 项目经理如何处理中途接手的项目
  15. 视频怎么去水印和字幕
  16. PHP怎么发送邮件?
  17. 毛永胜计算机教师,做新时代智慧型阳光教师 ——记丁香路小学教师心理健康实训讲座...
  18. 全景视频拼接的关键技术与发展优势、作用、应用。
  19. 习题 3.3 购房从银行贷了一笔款d, 准备每月还款额为p, 月利率为r, 计算多少月能还清。设d为300000元,p为6000元,r为1%。对求得的月份取小数点后一位,对第2位按四舍五入处理。
  20. SpringBoot笔记通俗易懂版

热门文章

  1. “互联网+”大赛之AI创新应用赛题攻略:大胆脑洞,共绘智慧生活蓝图
  2. 想快速重构智慧园区5A系统,这份方案推荐给你
  3. 多元算力加持,华为云鲲鹏大数据服务公测上线
  4. vfp报表纸张设置_Excel表格美化十四招,让你的报表不再那么丑
  5. Spark之StructuredStreaming
  6. java传输对象_如何传输Java对象
  7. python基本语法 关于雷达模拟实践
  8. 艾宾浩斯记忆表格excel_考研干货 | 如何使用艾宾浩斯曲线帮助记忆知识
  9. python中的import详解_如何在python中import
  10. php 手机屏幕,90hz和60hz手机屏幕差别大吗