第五章 核心类
java.lang.Object中的方法:
clone(创建并返回该对象的一个副本。实现这个方法的一个类,将支持对象的复制)
equals(将该对象和传入的对象进行比较。必须实现这个算法,才能提供一个比较实例的方法)
finalize(当一个对象和传入的对象进行比较。类必须实现这个方法,才能提供一种方法比较其实例的内容)
getclass(返回该对象的一个java.lang.Class对象)
hashcode(返回该对象的一个哈希码值)
toString(返回该对象的说明)
java.lang.String
String对象表示一个字符串
String s = "Java is cool";
String message = new String("Java is cool");
使用字符串字面值时,会得到一个相同的String对象,如果字符串之前已经创建了,该对象可能来自于一个池?
使用new 关键字时,JVM会创建一个新的String对象。
"Java".equals(s1)来代替s1 != null && s1.equals."Java"
比较两个字符串。==比较的是两个对象的地址。equals比较的是两个对象的值。
字符串字面值:String s="hello world!"如果连接一个对象和一个String,将会调用前者的tostring方法。
转译特定字符:String s="John "The Great" Monroe"
字符串上的switch:java支持对字符串使用case
String类的构造方法,java类提供了多个构造方法,允许创建空字符串、另外字符串的一个副本、以及通过char或byte的一个数组来创建字符串。
String类的方法:
charAt(int index):返回指定索引的字符。
concat(String s):将指定的字符串连接到这个String的末尾,并且返回结果。
equals(string s):比较两个字符串的值
endswith(String suff):测试是否以suff作为结尾。
IndexOf(String s) :返回指定的子字符串第一次出现的索引位置。
lastIndexOf(String s):返回指定的子字符串最后一次出现的索引位置。
subString(int num):返回从指定的索引开始的、当前字符串的一个子字符串。
java.lang.StringBuffer和java.lang.StringBuilder:sufferbutter类是为了可变的字符串而单独使用的。StringButter中的方法是同步的,这使得StringButter适合在多线程中使用。
基本类型包装器。
java并非所有的内容都是类,还有一些基本类型,例如,int,long,float,double.可以使用java。util.connection对象来存储类。
java.lang.class
每次JVM创建一个对象时,也可以创建一个java。lang.class对象来描述该对象的类型。
java.lang.System.system
是一个final类,它能帮助你完成常见任务的那些有用的静态字段和静态方法暴露了出来。System三个字段包括out, in, err。
字段表示标准的输出流,他默认的和控制台相同,而控制台是用来运行java应用程序的.
字段也表示一个printfsteram对象,输出也会从当前调用Java程序的地方通向控制台,其目的是显示那些应该立即引起用户主义的错误消息。
public static String getProperty(String key) 该方法返回指定的属性的值。指定的属性分为系统属性和用户属性。
java.lang.scanner
用对象来扫描一段文本,主要用于接收键盘输入,传递System.in来实例化Scanner类。
第六章
使用增强的for语句,不需要遍历就可以遍历一个数组或一个集合。
Arrays类提供了操作数组的静态方法。
asList返回数组所支持的固定大小的List。
binarySearch根据特定的键查找数组。
copyOfRange 根据最初数组的指定范围,创建一个新的数组。
copyOf创建具有指定长度的一个新的数组。
fill将指定的值赋给指定数组的每一个元素。
sort排序指定的数组的元素。
toString返回指定的数组的字符串表示。
一旦创建数组,不能修改其大小。如果想要修改其大小,,必须创建一个新的数组,并且使用旧的数组的值填充它。做到这一点的方式是,使用java.util.Arrays的copyof方法。
给main方法传入一个字符串数组,可以将参数当作java程序的参数输入,从而给main方法传递参数。
二分查找实例:
第八章
捕获异常。有两种类型的错误,编译错误和运行时错误。
捕获多个异常,如果捕获的异常都要由相同的代码来处理的话,java 7及其以后的版本允许在一个单个的catch语句块捕获多个异常。
try-with-resouece。很多java操作设计在使用完某种资源之后必须关闭它。在jdk之前,我们使用finally来确保一定会调用一个close方法。
java.lang.exception类,引发错误的代码可能会抛出任何类型的异常。
从方法中抛出一个异常。当捕获方法中的一个异常的时候,要处理方法之中所发生的错误。有两个选择,可以在该方法之中处理错误,从而安静地捕获异常而不需要通知调用者,或者,可以把异常抛回给调用者,让调用者来处理它。
用户定义地异常:可以通过子类化java.lang.Exception来创建用户定义地异常。
异常处理的注意事项,try语句强制带来一些性能损失。
第九章
装箱和拆箱:将基本类型装换为对应的包装器对象,或者进行相反的操作,这是可以自动发生的。
数字解析。一个java程序可能需要用户输入一个数字,这个数字将要进行处理或者作为一个方法的参数。
数字格式化,数字格式化使得数字更加具有可读性。
使用java。text.NumberFoemat进行数字解析。可以使用NumberFormat的parse方法来解析数字。
java.lang.Math.Math类是一个工具类,它提供了进行数学计算的静态方法。还有两个进行数学计算的静态字段:E和PI。
生成随机数。java.lang.Math类的random方法更容易使用一些。