`

java解惑

阅读更多
1理解%取余的真正含义
2并不是所有的小树都可以用二进制浮点数精确表示,需要精确答案的地方,要避免使用float和double。对于货币计算,要使用int、long或者BigDecimal
3操作很大的数字式,千万要堤防溢出,比如long后加L就可以解决
4在long类型字面常量中,一定要用大写的L,千万不要写小写的l
5要避免混合类型的计算。比如long和int
6char转int不希望有符号扩展 int i=c&0xffff;
byte转char不希望有符号扩展 char c=(char)(b&0xff);
7丑陋的单行互换值法:y=(x^=(y^=x))^y 不加括号在java下使用错误
8最好是在条件表达式中使用类型相同的第二和第三操作数
9请不要将符合赋值操作符作用于byte/short/char类型的变量,虽然编译不会出错,但换成意义相同的简单赋值表达式就会报错,
  x=x+i;(1) x+=i(2) int i 在x为String类型时(1)对(2)错,在x为char时(1)错(2)对
(这里的对指编译不出错)
11.当且仅当+操作符的操作数中至少有一个是String类型时,才会执行字符串连接操作
12.+操作符不论是用作加法还是字符串连接操作,它都比==操作符的优先级高。在使用字符串连接操作符时,总是将不平凡的操作数用括号括起来
13.比较对象引用时,应该优先使用equals方法而不是==操作符
14.windows的文件名路径民更不要出现在java源文件的注释中
15.除非确实有必需,否则不要使用Unicode转义字符
16.将byte数组转成String时,可以且通常该显式地指定字符集
17.块注释不能可靠地注释掉代码
18.注意String.replaceAll接收正则表达式为第一个参数 String.replaceAll(".","/")有问题
19.java保留了标号,但是希望仔细写注释,跟上时代
20.new StringBuffer('M')指的是开辟初始容量77的空字符串缓冲区
21.避免混合类型比较,因为它们内在地容易引起混乱
22.无论你在何时使用了一个整数类型,都要意识到其边界条件,比如int i达到Integer.MAX_VALUE后,再执行增量操作回到Integer.MIN_VALUE
23.用一个double或者float数值来表示无穷大是可以的,二进制浮点算术只是对实际算术的一种近似
24.不要在short/byte、char类型的变量上使用复合赋值操作符
25.数值比较操作符和判等操作符的差异:数值比较操作符执行的是值比较。判等操作符执行的引用标识的比较
26.不要使用浮点数作为循环索引
27.Sytem.exit方法将停止当前线程和所有其他当场死亡的线程,即不会执行finally语句
28.实例变量的初始化操作将先于构造器的程序题而运行
29.对于任何在finally语句块中可能跑出的受检查异常都要进行处理
   比如 in.close();out.close()
30.不要使用异常控制循环,应该置为异常条件而使用异常
31.尽量多使用JDK5.0所用的for(int item:items)的用法
32.&和&& |和||的不同 ^的含义
33.关于类的引用声明,尽量在try语句前声明,这样catch才会按照自己定义来,否则直接跑出异常。非得在里面定义,建议Object m=Class.forName("Missing").newInstance();
34.出现构造函数的实参为null的,若要起那个值要求编译器选择一个精确的重载版本,需要将实参转型为形参所声明的类型。
35.每一个静态域在声明他的类极其所有子类中共享一份单一的备份
36.静态方法的引用看前面的修饰符的类名而定,千万 不要隐藏静态方法
37.final类型的静态域被初始化值iqan,存在着读取其值的可能,比如先实例化对象的构造函数中调用。
38.instanceof操作符被定义为在其左操作数为null时返回false
   instanceof如果两个操作数的类型都是类,其中一个必须是另一个的子类
39.父类方法被子类方法重写后,将执行子类的重写后的方法而不是自己原来定义的方法
   所以千万不要再构造器中调用可复写的方法
40.考虑类初始化的顺序:static-》variable-》constructor,特别是党初始化显得很重要时更是如此。
41.静态方法调用的限定表达式是可以计算的,但是它的值将被忽略
42.一个本地变量声明作为一条语句只能直接出现在一个语句中
43.不要被误导,认为不可变类型是可变的,比如add、subtract、negate不一定修改原实例
44.只要你复写了equals方法,你就必须同时复写hashCode方法
45.同一类产生实例必须具有相同的散列值才能让散列集合能够将它们识别为相等
46.以0开头的整型字面常量将被解释成为八进制数值
47.Date将1月表示为0,而Calendar延续了这个错误
48.Math.abs不能保证一定会返回非负的结果
49.当一个变量和一个类型具有相同的名字,并且他们位于相同的作用域,变量名具有优先权。因为最好给变量和类型起不同名字
50.final修饰符对方法和域而言意味不同,对于方法,final意味着该方法不能被复写(对于实例方法而言)或者掩藏(对于静态方法而言),而对于域,final意味着该域不能被赋值超过一次(指在子类或父类中,但可以掩藏)。
51.复写:一个实例方法可以复写(override),VM将基于实例的运行期类型来选择要调用的复写方法
   隐藏:一个域/静态方法或成员类型可以分别掩藏(hide)在其超类中科访问到的具有相同名字(对方法而言就是相同的方法签名)的所有域、静态方法或成员类型

public final class Api extends ApiBase{
public   void f(){
System.out.println("sun");
}
public static void main(String[] args){
Api B=new Api();
B.pri();
}
}

class ApiBase
{
public   void f(){
System.out.println("father");
}

public void pri(){
f();
}
};
若该f()函数为private私有类型,则输出“father”,因为私有类型方法不能被另外一个方法直接复写
    重载:在某个类中的方法可以重载(overload)另个一个方法。只要他们具有相同的名字和不同的签名
    遮蔽:一个变量、方法或类型可以分别遮蔽在一个闭合的文本范围内的具有相同名字的所有变量、方法或类型
52.访问位于其他包中的非公共类型的成员是不合法的
   映射访问:
   Method m=o.getClass.getMethod("hasNext");
   m.invoke(o);
53.避免使用反射来实例化内部类,一定要使用请将内部类静态
54.

1
2
分享到:
评论

相关推荐

    Java解惑(中文版)_java_java解惑_solve65p_

    《Java解惑(中文版)》是一本专为Java初学者设计的学习资料,旨在帮助读者解答在学习Java过程中遇到的各种困惑。"solve65p"可能代表这本书包含65个问题或主题,每个都深入浅出地进行了讲解,旨在解决初学者在编程...

    java解惑java解惑java解惑

    "Java解惑"这个主题,显然旨在帮助开发者解决他们在学习和实践中遇到的问题。在Java的世界里,疑惑可能涵盖语法、类库、框架、并发、内存管理等多个方面。下面,我们将深入探讨一些常见的Java解惑知识点。 1. **...

    Java解惑 中文版

    《Java解惑中文版》是一本专为Java程序员设计的指南,旨在帮助读者解决在编程过程中遇到的各种问题,提升程序的健壮性。本书深入浅出地探讨了Java语言的核心概念、常见疑惑以及最佳实践,旨在使开发者能够编写出更...

    java解惑 PDF版

    文档《java解惑 PDF版》中列举了95个这样的谜题,每个谜题都旨在帮助开发者理解并纠正一些常见的错误理解。以下是根据提供的部分内容解析的几个相关知识点。 ### 表达式谜题与取余操作符(%)的行为 在Java中,...

    JAVA 解惑 java经典

    "JAVA解惑"的主题针对的是Java学习过程中遇到的一些常见问题和难点,旨在帮助开发者深入理解和解决这些问题。以下是基于这个主题和描述可能涵盖的一些关键知识点: 1. **Java基础**:这可能包括变量、数据类型、...

    JAVA解惑.pdf

    《JAVA解惑》这本书主要针对Java编程中遇到的各种常见问题和困惑进行了解答,旨在帮助开发者深入理解Java语言,提高编程技巧。以下是一些关键的知识点解析: 1. **异常处理**:Java中的异常处理是通过try-catch-...

    Java解惑.pdf

    这份“Java解惑.pdf”文档很可能包含了解决Java开发者在编程过程中遇到的常见问题和困惑的详细解答。以下是可能涵盖的一些Java相关知识点: 1. **基础语法**:Java的基础语法包括变量、数据类型、运算符、流程控制...

    4,JAVA解惑 高清PDF 下载

    《JAVA解惑》是Java开发者领域的一本经典著作,它被广大编程爱好者称为Java四大名著之一,旨在解决初学者及有一定经验的开发者在学习和使用Java过程中遇到的各种困惑。这本书深入浅出地讲解了Java语言的核心概念和...

    Java解惑 布洛克 著;陈昊鹏 译

    《Java解惑》 布洛克 著;陈昊鹏 译 扫描清晰带目录,仅供参阅,请支持正版

    java解惑(包括pdf和答案)

    "java解惑"这个主题旨在帮助初学者理解和解决在学习Java过程中遇到的问题,通过实例来深入浅出地讲解Java的基础知识,同时也强调了实用技巧和注意事项。 "Java解惑"的资料可能包含了两部分:`.chm`和`.pdf`格式的...

    java 解惑 java 解惑 java 解惑

    java 解惑 java 解惑 java 解惑 java 解惑 java 解惑 java 解惑

    Java解惑(中文).pdf

    《Java解惑(中文)》是一本专门为Java开发者编写的指南书籍,旨在解决在实际编程过程中遇到的各种疑惑和难题。本书以中文语言呈现,使得国内的Java程序员能够更轻松地理解并应用其中的知识。通过阅读这本书,读者...

    "java解惑" PDF版本

    "java解惑" PDF版本

    JAVA解惑(JAVA谜题) 中文版(PDF)

    ### JAVA解惑中的关键知识点解析 #### 谜题1:奇数性的判断 在《JAVA解惑》一书中,作者通过一系列实例介绍了Java编程语言中的一些不易掌握的知识点。其中一个例子是关于如何正确判断一个整数是否为奇数。 **原始...

    Java解惑(中文).pdf

    "Java解惑(中文).pdf"这份文档很显然是为了帮助Java开发者解决他们在编程过程中遇到的一些常见困惑和误解。这份高清版、文字版的资料很可能包含了深入浅出的解释和实例分析,以中文的形式呈现,使得国内开发者更容易...

    java 解惑

    3. **java解惑.pdf**:这很可能与博客主题相呼应,详细解答了Java编程中的疑惑,比如异常处理、多线程、集合框架、内存管理等复杂话题。 4. **网络安全防护措施百分百.ppt**:网络安全是任何应用开发都不可忽视的...

Global site tag (gtag.js) - Google Analytics