[读书笔记]Effective Java 第一章

  1. 需要了解JAVA最近每个版本新增的特性,并善用这些新特性为自己的程序实现高效简洁的代码。
  2. 其中提到的编程原则包括:
    • 模块要尽可能的小
    • 代码应该要被重用,而不是被拷贝
    • 模块之间的依赖性应该尽可能降到最小
    • 错误应该尽早被检测,最好是在编译期
时间: 2024-08-10 21:18:12

[读书笔记]Effective Java 第一章的相关文章

[读书笔记]Effective Java 第二章

考虑用静态工厂方法代替构造器 静态工厂方法第一大优势是可以用特有的名称.常见的类创建实例需要用构造函数,而当需要两个构造函数时,我们需要在参数列表做区分才能写出两个构造方法.使用静态工厂模式,可以规避方法名=类名的限制,使用更易读的方法呈现. 静态工厂方法第二大优势是不必在每次调用的时候创建一个新的实例.这点和单例设计模式有些类似,在使用不可变类的时候可以预先构建实例并缓存,之后可以重复利用,避免创建不必要的重复对象,也可以用静态工厂保证这是一个单例.可以确保不会存在两个相等的实例,即当且仅当a

[读书笔记]Effective Java 第四章

使类和成员的可访问性最小化 规则很简单:尽可能地使每个类或者成员不被外界访问.实例域(非final)决不能是公有的.当需要暴露出不可变的实例时通常会把这个实例做成不可变或者是把这个实例变成私有,同时提供该实例的备份. 在公有类中使用访问方法而非公有域 这就是常说的getter和setter方法,提供给包外访问时提供必要的方法,限制客户端的行为,以便于将来可以在内部改变表示方法. 使可变性最小化 不可变的类比可变类更加易于设计.实现和使用.它们不容易出错,且更加安全.为了使类成为不可变,要遵循下面

[读书笔记]Effective Java 第三章

覆盖equals方法时请遵守通用约定 这种说法的大意是要说明,Object类中定义的很多默认准则是被许多工具类或是第三方框架共同遵守的标准,一旦改动这样的标准机制,会在后续的使用中产生不稳定因素.equals方法常见用来做以下用途时,不建议对equals方法进行覆盖: 1.判断实例的唯一性 2.提供某种程度的逻辑相等 equals方法满足自反性,对称性,传递性,一致性,非空性.当需要覆盖equals方法时,需要注意以下三点: 1.覆盖equals时总要覆盖hashCode 2.不要企图让equa

编程珠玑(续) 读书笔记 -(前言+第一章性能监视工具)

<ACM通讯> 一次一章,仔细地读 ANSI American National Standards Institute  美国国家标准学会 1.1计算素数 #include<stdio.h> int prime(int n ) { int i; for(i =2;i<n;i++){ 999 if(n%i==0) 78022 return 0; 831 return 1; 168 } } main() { int i ,n; n=1000; 1 for(i=2;i<=n

【读书笔记 - Effective Java】02. 遇到多个构造器参数时要考虑用构建器

类有多个可选参数的解决方案:1. 重叠构造器模式可行,但是当有许多参数的时候,客户端代码会很难编写,并且仍然较难以阅读.2. JavaBeans模式,调用一个无参构造器来创造对象,然后调用setter方法来设置每个必要的参数,以及每个相关的可选参数. 缺点:构造过程被分到了几个调用中,在构造过程中JavaBean可能处于不一致的状态.阻止了把类做成不可变的可能,需要程序员确保线程安全.3. Builder模式,模拟了具名的可选参数. 模式 优 劣 重叠构造器 写法最简单 多参数时候难读.难写.难

[读书笔记]计算机组成原理-第一章系统概论

1.1 计算机么有软硬件构成,软件就程序之类的,硬件就看得见的之类的,硬盘等. 计算机系统是多层次的.大概就是 M4(高级语言翻译机) ↓ M3(汇编翻译机) ↓ M2(操作系统把) ↓ M1(机器语言机,就是2进制的东西在这个上运行) ↓ M0(微机,把M1中的一条指令拿过来,解释执行,好了再下一条.如此反复.看成是对M1的分解把) M4翻译高级语言,如C,js这些为汇编再到机器语言,要么直接翻译为机器语言.M4翻译成机器语言的程序有2种,编译程序和解释程序,编译么一次编译好,再执行机器语言,

【读书笔记 - Effective Java】01. 考虑用静态工厂方法代替构造器

获取类的实例有两种方法: 1. 提供一个公有的构造器(最常用). 2. 提供一个公有的静态工厂方法(static factory method). // 静态工厂方法示例 public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 静态工厂方法的优势: 1. 有名称.当一个类需要多个带有相同签名(方法签名 = 方法名 + 参数列表)的构造器时,就用静态工厂方法代替构造器,并且慎重选择名

代理模式 + Effective C++ 第一章笔记

代理模式(Proxy):为其他对象提供一种代理以控制这个对象的访问. 应用: (1):远程代理,为一个对象在不同的地址空间提供局部代表.这样可以隐藏一个对象存在于不同地址空间的事实 (2):虚拟代理,根据需要创建开销大的对象.通过虚拟代理存放实例化需要很长时间的真是对象. (3):安全代理,用来控制真是对象访问时的权限. (4):智能指针,当调用真实的对象时,代理处理另外一些事. Effective C++: 1:确定对象被使用前已经被初始化 (1),为内置类型进行手工初始化,因为C++不保证初

读书笔记:计算机网络8章:应用层

最近一个问题很困扰我,今天则得到了答案,也意味着我该选择了. 不知道大家有没有遇到过这样的情况,我是上年刚毕业,大四时进行过java培训,12年9月-13年4月,在这之前已经自学过java.7月份时进入一家公司工作,今年3月份辞职,4月份找到工作,来上班了.一开始就不太喜欢公司氛围,前台,hr,态度什么的都不太好,工作环境也极像客服部,整天电话不断,讨论声不断,第一个星期真是煎熬,去了两三天之后有辞职的想法,但是后面想想还是算了,公司待遇还可以. 但是进入到公司后leader让学PHP,学PHP