`
jaesonchen
  • 浏览: 309969 次
  • 来自: ...
社区版块
存档分类
最新评论

不管在什么时候,都要尽可能使用熟悉的惯用法和API

 
阅读更多
//不管在什么时候,都要尽可能使用熟悉的惯用法和API。
//一个 char 不是一个 String,而是更像一个 int。
//Random.nextInt(int)的规范描述道:“返回一个伪随机的、均等地分布在从0
//(包括)到指定的数值(不包括)之间的一个int 数值”[Java-API]。

//3个bug:分支2永远不会到达;没有break,总是最后的default为最后内容;
//StringBuffer没有char参数构造器,new StringBuffer('M'); 调用的是设置缓冲区初始容量的int型构造器。
Random rnd = new Random();
StringBuffer word = null;
switch(rnd.nextInt(2)) {
	case 1: word = new StringBuffer('P');
	case 2: word = new StringBuffer('G');
	default: word = new StringBuffer('M');
}
word.append("a");
word.append('i');
word.append('n');
System.out.println(word);	//输出总是ain
		
//正确和更优雅的解决办法:
System.out.println("PGM".charAt(rnd.nextInt(3)) + "ain");

 

//String.replaceAll 接受了一个正则表达式作为它的第一个参数,而并非接受了一个字符序列字面常量。
//正则表达式“.”可以匹配任何单个的字符,要想只匹配句点符号,在正则表达式中的句点必须在其前面添加
//一个反斜杠(\)进行转义。
System.out.println(Puzzlers.class.getName().replaceAll(".", "/") + ".class");
//输出为://///////////////////////////////////.class
System.out.println(Puzzlers.class.getName().replaceAll("\\.", "/") + ".class");
//输出为:com/jaeson/javastudy/puzzler/Puzzlers.class
		
//在替代字符串中出现的反斜杠会把紧随其后的字符进行转义,从而导致其被按字面含义而处理了。
//Exception:String index out of range
try {
	System.out.println(Puzzlers.class.getName().replaceAll("\\.", File.separator) + ".class");
} catch (StringIndexOutOfBoundsException ex) {
	System.out.println("StringIndexOutOfBoundsException: " + ex.getMessage());
}

//使用1.5新的replace方法:它将模式和替代物都当作字面含义的字符串处理。
System.out.println(Puzzlers.class.getName().replace(".", File.separator) + ".class");

 

分享到:
评论

相关推荐

    C++编程惯用法

    第2版相较于第1版在章节安排上作出了一些调整:新增了“对象的创建与使用”以及“C++中的C”两章,这两章的加入为读者提供了面向对象方法和编程方法的最新研究成果,同时也使得不熟悉C语言的读者能够更好地利用本书...

    C++编程惯用法 C++编程惯用法

    C++编程惯用法 C++编程惯用法 C++编程惯用法

    C++编程惯用法.高级程序员常用方法和技巧.pdf

    这些都是高级程序员在日常工作中不可避免会遇到的问题,书中可能提供了一些建议和方法来处理这些常见的挑战。 对于那些希望向财富500强公司提供软件解决方案的公司,书中也许提供了一些指导,帮助他们达到企业级...

    C++编程惯用法.pdf

    C++编程惯用法.C++编程惯用法.C++编程惯用法.

    C++编程惯用法(高级程序员常用方法和技巧)

    综上所述,《C++编程惯用法(高级程序员常用方法和技巧)》这份资源很可能会涵盖以上所述的多个方面,并可能提供深入的实践示例和最佳实践。通过学习和实践这些高级技巧,程序员可以编写出更高效、更可靠且更易于维护...

    C++ 编程惯用法 高级程序员常用方法和技巧

    本资料"**C++ 编程惯用法 高级程序员常用方法和技巧**"深入探讨了在C++编程中的一些最佳实践和高级技术,旨在帮助开发者提升代码质量和效率。 首先,C++的核心特性之一是面向对象编程(OOP),包括封装、继承和多态...

    c++编程惯用法

    一个重要的编程惯用法是防御性编程,即在设计和实现过程中考虑到程序可能遇到的异常情况,并采取措施加以预防。书中指出了这种编程方式的必要性,并给出了一些实现策略。 代码的可维护性和可读性也是书中强调的内容...

    C++编程惯用法.rar

    C++编程惯用法是开发者在长期实践中总结出的一系列最佳实践,它们能帮助程序员写出更高效、可读性更强、易于维护的代码。下面将详细探讨C++编程中的常见惯用法。 1. **面向对象编程**:C++是一种支持面向对象编程...

    C++ 编程惯用法+高级程序员常用方法和技巧

    在C++编程中,惯用法和高级程序员常用的方法与技巧是提升代码质量和效率的关键。以下是一些关于这些主题的详细说明: 1. **面向对象编程**:C++ 是一种支持面向对象编程(OOP)的语言,理解类、对象、继承、多态和...

    C++编程惯用法笔记.doc

    C++编程惯用法笔记主要涵盖抽象模型设计、类的构建以及相关成员函数的使用。以下是对这些知识点的详细阐述: **一、抽象** 1. 抽象是软件设计的基础,通过抽象,我们将复杂的问题转化为更易管理的模型和实现。在...

    C++编程惯用法--高级程序员常用方法和技巧

    在深入探讨"C++编程惯用法--高级程序员常用方法和技巧"这一主题之前,我们首先应当明确,C++作为一种强大的、灵活的、面向对象的编程语言,在软件开发领域占据着举足轻重的地位。它不仅提供了低级别的内存操作,还...

    NET设计规范:约定、惯用法与模式(第2版)

    书中会详细讲解类、方法、变量等的命名规则,如PascalCase用于类型名,camelCase用于成员变量和局部变量,匈牙利命名法的使用场景等,这些都有助于提高代码的可读性。 2. **代码结构**:书中会介绍如何组织代码,...

    C++编程惯用法——高级程序员常用方法和技巧

    C++编程惯用法——高级程序员常用方法和技巧! PDF 格式

    C++编程惯用法:高级程序员常用方法和技巧.part2.rar

    C++编程惯用法:高级程序员常用方法和技巧.part2.rar

Global site tag (gtag.js) - Google Analytics