Java常用基本类库汇总
Throwable类
Throwable中的方法:
public String getMessage():返回的是异常的消息字符串。 public void printStackTrace():把错误信息显示在控制台。
e.printStackTrace()并不是正确的处理异常的方式,要合理的识别异常 类型,并且给出合适的处理,e.printStackTrace() 只能让程序员知道“ 出错了”。 也不用
多个异常的处理
try { int a = 10; int b = 0; System.out.println(a / b);
int[] arr = { 1, 2, 3 };
System.out.println(arr[3]); } catch (ArithmeticException ae) { System.out.println("除数不能为0"); } catch (ArrayIndexOutOfBoundsException ae) {
Calendar
根据DateTime得到各个部分:通过int get(int field)获得年月日小时分秒等 部分,可选值Calendar的常量YEAR、MONTH、DAY_OF_MONTH(在月 中的天数)、DAY_OF_WEEK( 周中的天数,即周几)、DAY_OF_YEAR( 一 年中的第几天 ) 、 HOUR(12 小时制 ) 、 HOUR_OF_DAY(24 小时制 ) 、 MINUTE(分钟)、SECOND(秒)。也可以void set(int field, int value)方法进 行修改。 Calendar cal = Calendar.getInstance(); cal.setTime(new Date());
String成员方法
int length():获取字符串的长度 char charAt(int index):返回字符串中给定索引处的字符 int indexOf(int ch):返回指定字符在此字符串中第一次出现的索引 int indexOf(String str):返回指定字符串在此字符串中第一次出现的索引 lastIndexOf:最后一次出现的位置。 String substring(int start):截取字符串。返回从指定位置开始截取后的字符串。 String substring(int start,int end)截取字符串。返回从指定位置开始到指定位置 结束截取后的字符串。 案例获取一个文件名的名称和扩展名部分(备注)
练习:获取番号
String成员方法
String toLowerCase():把字符串变成小写 String toUpperCase():把字符串变成大写
String replace(char oldChar,char newChar):用新的字符去 替换指定的旧字符
String replace(String oldStr,String newStr):用新的字符串 去替换指定的旧字符串 (*)String[] split(String regex):切割功能,注意正则表达式 (以后讲)。把字符串用“,”分割
异常概念
Integer i1=null; int b = i1;
异常发生在程序发生的不正常情况下。异常以一个异常类 对象的形式抛出,异常类描述异常信息、发生的位置等。 异常的根类为 ng.Throwable ,有两个直接子类 ng.Error、ng.Exception。Error:程序本身无 法恢复的严重错误,比如内存不足等,一般不需要对Error 进行处理;Exception:可以被程序捕获并处理的异常错误 ,比如文件找不到。编程中需要处理的异常一般都继承自 Exception,***Exception类。
最后使用String s = sb.toString()一次性生成拼接结果字符串即可
JDK1.5 增加了一个StringBuilder,用法和StringBuffer一样。StringBuffer是线程 安全(*)的,效率略低;StringBuilder线程不安全,效率高,在大部分单线程环 境使用StringBuilder会更好。
String trim():去除字符串两端空格
String 是不可变的,因此上面的操作都是生成新的字符串 对象,要用返回值去取新的字符串。
这么多方法怎么记得住?
StringBuffer
使用jd-gui反编译发现
String s7="111"+"222"+"333"+"444"+"555" 会被优化为 String s7 = "111222333444555";
DateFormat
DateFormat用来把Date按照格式转换为 String,它是抽象 类,一般使用其子类SimpleDateFormat,使用 SimpleDateFormat(String pattern)这个构造函数,传递一 个格式字符串进去。 y年;M月;d天;H小时;m分钟;s秒。Year、Month、 Day、Hour、Minute、Second“月”比“分钟”大,所以 月M大写,分钟m小写。 测试“ yyyy 年 MM 月 dd 日 HH:mm:ss ”、“ yyyy-MMdd”。 使用String format(Date date),把Date格式化为字符串; public Date parse(String source)把字符串解析为Date。
int 等是基本数据类型,不能为 null( 没有指向任何对象 ) ; 类变量可以是 null 。有时想表达“不知道数字是多少”的 时候,用int任何值表示都不合适。Integer是类,因此可以 为null,这样用null的Integer表示“没有赋值的整数、未知 的整数”。
自动装箱拆箱(box/unbox)
JDK 1.5之后int和Integer之间转换不需要new Integer/i.intValue()。如下即可:
Integer i = 123;//自动装箱 int i1= i;/的代码生成的class,得知是编 译器帮着完成的装箱拆箱。 注意Integer 为null的情况:
int day = cal.get(Calendar.DAY_OF_MONTH);
根据设置各个部分,得到DateTime: void set(int year, int month, int date) void set(int year, int month, int date, int hourOfDay, int minute) DateTime date = cal.getTime(); 注意:Calendar的月份是从0开始。
System.out.println("数组越界异常");
} JDK 1.7之后还新增了一种简化多异常处理的语法: try { // 操作代码
} catch (ArrayIndexOutOfBoundsException | ArithmeticException e) {
System.out.println("这里出问题了"); } 里面有一个问题,就是异常处理的方法不好写了,因为得到的异常不明确了。
基本数据类型包装类
Java 中内置提供了“包装类” (Wrapper) :byte→Byte; short→Short;int→Integer;long→Long;float→Float; double→Double;char→Character;boolean→Boolean。 使用方法:
int包装成Integer(装箱):Integer i=new Integer(18); int从包装中出来(拆箱):int i1 = i.intValue();
boolean startsWith(String str):判断字符串对象是否以给定 的字符串开始。
boolean endsWith(String str):判断字符串对象是否以给定 的字符串结束。 案例:判断输入的是否是admin(不区分大小写);判断是否 是网址:以http://开头、以.com或者.cn结尾。
基本数据类型不“面向对象”
面向对象语言中应该“一切都是对象”,方法、int、double等应该都 是类的对象。但是由于历史原因,java中的int、double 、boolean 等 基本数据类型不是类。有的场合需要使用对象(JDBC中就会用到),怎 么办?
class IntClass { private int value; public IntClass(int value) { this.value = value; } public int getInt() { return this.value; } } int age=18; IntClass iAge = new IntClass(age); 使用instanceof判断变量指向的对象类型。
Java这么学不枯燥 基础篇 Java常用基本类库
如鹏网
String成员方法(常用)
boolean equals(Object obj):判断字符串的内容是否相同, 区分大小写。 boolean equalsIgnoreCase(String str):判断字符串的内容是 否相同,不区分大小写。 boolean contains(String str):判断字符串对象是否包含给定 的字符串。
异常的捕捉
try{ //可能发生问题的代码 }catch(异常类型 异常变量){ //异常处理代码 }finally{ //其他代码 }
比如:
try { Integer i1=null; int b = i1;
} catch (NullPointerException e) { System.out.println("i1不能为null"); } e就是发生异常的异常类对象,变量名只要不冲突就任意。 在异常处理中,一旦try里面有问题了。放弃try代码块中之后的代码,直接跳到catch 里面执行。如果try代码后还有代码,则处理完catch后还会继续执行。