【马士兵】笔记_Java常用类

有道云笔记 连接:

http://note.youdao.com/noteshare?id=5b60f7ffd91d654c731a19a3621d0318


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

以下可忽略:




Java常用类》

 

日常编程中经常用到的类。遇到不常用的类,查API文档是一种能力。包括:字符串相关的类(StringStringBuffer)、基本类型的包装类(Integer)、Math类、File类、枚举类。

  1.  String

表示不可变的字符串。

构造方法:无参有参的都有(见API文档)。注意的是,字符串跟charset(编码集)有关,可在初始化时候定义;可把字节流Bytes[]初始化为Stringeg:一个重载构造方法为public StringBytes[] bytes , String charSetName;即将字节流以某编码方式初始化为String字符串。

两个例子:

 

 

常用方法(第一组):

 

eg

 

第二组:

 

第三组:

 

:重载方法static String valueOf(Object o),使用的是该Object(具体的类,如Date等)的toString()方法。利用的是Java 动态绑定(父类引用指向子类对象)功能,实现的多态。

例子_1给定整数,求有多少位? (不必除10取余除100取余之类)

给定日期,求具体年份? 或者,去掉年月日之间的逗号。

 

例子_2:给定一个长字符串,求里面大写英文字母、小写字母和非英文字母各自的数量?

方法1charAt()方法用for循环取单个字符,ASCII码判断。

 

方法2,定义字符串所有引文字母,indexOf(c)返回非-1(或者>=0)。

 

方法3,利用包装类的static方法isUpperCase()isLowerCse()来判断大小写。

 

例子_3:求某字符串"java"在给定长字符串中出现的次数?

方法: int indexOf(String s)方法可以得出出现的第一次;

然后String subString(int i)方法,截取后面的字符串,替换原长字符串;

再用第一步方法,计数器再加1,

直到int indexOf(String s)返回-1

 

 

 

  2.  StringBuffer

可变字符串,与String类似。区别体现,在当一个字符串被改变(拼接、删除一个字符、另赋值)时,StringBufferString节省内存和cpu。这是由它们不同的存储方式决定的。

 

例子String s1 = "Hello";

String s2 = "World";

s1 += s2;

上例,当s1s2拼接时,如图,步骤是:新new一个容纳拼接后长度的空间,s1s2指向的内容"Hello""World"复制进去,然后把s1的指向改为新的内存地址。

这个操作用String需要一个new、两个copy和一个改引用。而若是StringBuffer,则直接将"World"拼接到"Hello"的后面。

常用方法(第一组)

 

第二组:

 

第三组:跟String同名同功能的方法。

 

 eg

 

 

 

  3.  基础类型包装类

IntegerLongFloatDoubleCharacterBoolean

基本类型,如int的值是存于栈中的,若想把值存于堆中,就需要用相应的包装类。基本类型的包装类还有一些实用的方法和功能。

常用方法:

aMAXVALUE ,MINVALUE ,最大最小值。

bstaic int parseIntString str,将字符串转为int。注意到Integer的构造方法public Integer(String str,初始化时直接将字符串str转为相应的数字。

ctoString(),将数字转为字符串,用于打印输出。

dInteger valueOf(int i),int数据转为Integer型。

    注意:各种valueOfparseXxx?

    将字符串转intint Integer.parseInt(String s);

    将int转字符串:String String.valueOf(int i)

    在jdk1.5后,Integerint自动拆装箱(除了作为参数时是区分的),所以:

    a.原来的Integer Integer.valueOf(int i)基本没用了;

    b.Integer a= Integer.parseInt("325");是成立的,可以这么用;但要注意其本质是int Integer.parseInt(String s)加自动拆装箱,而不是真的有Integer Integer.parseInt(String s)写个方法。

 

eg

 

 

例子_2主要考的是二维数组,再就是类型转换。尤其注意二维数组初始化方式,不要落了[]

 

 

 

 

  4.  Math

平时基本不用。编程小游戏的时候用的多。

有两个静态常量:PIE

 

 

  5.  File

java.io.File类代表系统文件名(路径和文件名)。

常用方法:aboolean isDirectory(),判断是否是目录。

boolean isFile():是否是文件。

boolean canRead():判断是否可读。

bolean exists():判断该文件名是否存在

    bFile[] listFiles(File fileName)列出路径下的子目录。

 

例子_1:经常用到,判断文件是否存在,不存在创建文件。里面有许多细节上的事,比如:File.separator是当前系统的分隔符,也可/,但不建议\\; f.getParentFile().mkdirs()不要忘了,先创建目录(再创建文件),这里得到的是包的上层路径(即,若bjsxt.TestFile.java,则bjsxt的上层路径);mkdirs()而不用mkdir()是由于例子中是mydir1mydir2两个; f.createNewFile()时不要忘了捕获IOException

 

 

  6. 枚举enum

java.lang.Enum类下的enum类型,Java1.5后新引进的类型。

特点:把能够选的值列出来,使用时只能是其中一个。

场景:小游戏中,定义一个变量存炮弹走的方向,只能是东南西北四个之一,非常适合用枚举类型。

既是一个新类型,定义、初始化、使用的方式跟平常不一样。如:

 

 

 

猜你喜欢

转载自blog.csdn.net/na_simon2900086/article/details/53167384