个人认为本章比较重要的有下面几个Item: Item 30:  使用enum代替int Item 32: 使用EnumSet 代替bit field Item 35: 注解优先于命名模式 其他几个Item可能学习不是那么深刻,并没深入记录。 本文原创, 原文地址:http://www.flyml.net/2017/03/09/effective-java-ch6-enum-annotation   Item 30: 使用enum代替int (Enum初步介绍) 虽然直译过来是"使用enum代替int", …

2017年03月09日 0条评论 9810点热度 0人点赞 阅读全文

大家都知道,不同的platform的换行符都不太一样, 特别是经常在Mac/Windows上面进行开发, 在Linux上面进行部署。 那么如何正确的答应换行符呢?   使用System.out.println 这应该是最常用的方式了 使用Sytem.out.printf的时候, 使用 %n 而不是 \n

2017年03月03日 0条评论 16207点热度 1人点赞 阅读全文

Zepplin 前段时间发布了0.7.0新版本, 在尝鲜的同时, 也在尝试将Zeppelin + Cassandra组合起来使用。 根据官方文档, Cassandra Interpreter 还是做了不少事情的, 说不定比windows版本自带的DevCenter更加好用。 但是在使用之前, 首先得解决Guava冲突的问题。 因为尝试了很多,具体哪一步起作用也不记得了, 下面三部最好都做: 将$ZEPPELIN_HOME/lib 里面的guava-15.0.jar 替换成guava-16.0.1.jar 如果$ZE…

2017年03月02日 0条评论 12609点热度 1人点赞 阅读全文

Item 13: 使类及其成员的可访问性最小 除非真的有必要, 否则不要让外界能访问这个类或者成员变量。 因此, 再复习一下Java之中几种访问级别: 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × package √ √ × × private √ × × × 没有修饰符的时候, 默认为package级别。 当我们覆盖了父类的某个方法的时候, 不能使其访问级别提高。 比如原来是protected, 不能升级成为public。 一种不…

2017年02月16日 0条评论 9981点热度 0人点赞 阅读全文

引言 虽然JDK8出来蛮久了, 但是很多JDK8的新特性并不了解。 比如在JDK8的接口之中, 新增了今天的主角default methods 要是您已经知道了这个东西, 还请轻喷! 比如下面的示例代码: [crayon-663341dadefd9005370667/] 注意上面Math 之中的 default int multiply 。在这个方法之中, 已经有了一个默认的实现 为什么搞了这个东西出来? 起因是JDK8之中引入了Lambda表达式。 在很多接口之中, 需要新增一些方法。 但是, 如果这些通用接口里…

2017年02月10日 0条评论 11206点热度 1人点赞 阅读全文

在《[读书笔记]《Effective Java》第二章》[http://www.flyml.net/2017/02/05/effective-java-chapter-1/] 的Item2 提到: 使用builder替代多个参数的constructor 正好, 我要基于Selenium WebDriver 写一个爬虫。因为实际情况不一样, 有的时候需要使用不同的userAgent, 比如模拟移动浏览器, 有的时候需要挂不同的代理。 而且, 未来还很有可能通过更多的参数构建不同的WebDriver实例。其中,最重要的…

2017年02月09日 0条评论 10974点热度 0人点赞 阅读全文

本章概括 本章包括以下几个Item: Item 8: 覆盖equals请遵守通用规定 Item 9: 覆盖equals时一定要覆盖hashCode Item 10: 始终要覆盖toString() Item 11: 谨慎的覆盖clone Item 12: 考虑实现Comparable接口 由于个人的工作原因, 在实际工作之中, 仅仅接触过#3与#5, 从未考虑过覆盖equals() 与 clone(), 因此这一章只读了 #3与#5 Item 10 : 始终要覆盖toString() 忽然发现, 这真的是一个非常方…

2017年02月06日 0条评论 9409点热度 2人点赞 阅读全文

Item 1: 使用静态工厂方法而不是构造函数 优势: 有名字 比如BigInteger.probablePrime() 一看就知道是返回一个BigInteger素数. 比较不好的做法是构造函数的重载, 通过修改参数的顺序达到不同的功能 不需要每次都创建新的对象. 比如如下代码: [crayon-663341dadf58d356525510/]   如果创建类的开销比较大, 那么对性能的提升就更明显了 能返回的类型选择更多, 不一定是当前类的类型 这一点非常好理解~ 在创建参数化类型实例的时候, 代码会更…

2017年02月05日 1条评论 9799点热度 2人点赞 阅读全文

追求大而全是创业者最常见的误区之一,做多不如做少,做全不如做专,会减法才是真懂产品,这是今天分享给各位的创业心得。 编者按:本文作者曹政,资深 IT 人。技术大牛、数据控、历史控、考证控。曾参与创建一统统计、cnzz 站长统计,曾主持搭建百度商业分析支撑平台。文章首发于其微信公众号“caoz 的梦呓”(微信号:caozsay) 翻知乎的时候,发现有个旧帖,是关于百度贴吧俱乐部和百度空间app相关的讨论,有个人整段引用了我百度空间的旧文,然后,我发现我都忘了写过这样的文章。再然后,我发现我当时的判断居然又是正确的。 …

2017年01月20日 0条评论 9308点热度 0人点赞 阅读全文

原图:http://photo.weibo.com/2687299131/wbphotos/large/mid/4062958860341438/pid/a02cee3bjw1fbndhoa4obj20ckbduu0x

2017年01月12日 0条评论 10494点热度 3人点赞 阅读全文
167891015