-
。查看全部
-
=================
查看全部 -
throwable(error,Excepton)
Exception(非检查异常,检查异常)
非检查异常(NullPointerException 空指针异常,ArrayIndexOutOfBoundsException 数组下标越界异常,ClassCastException 类型转换异常,ArithmeticException 算术异常)
检查异常(文件异常,SQL异常)
查看全部 -
try-catch异常处理
try{
//一些会抛出异常的方法
} catch (Exception e){
//处理该异常的代码块
}
多个异常时,先子类后父类
查看全部 -
List、Queue:存储数据排列有序,可重复
Set:存储数据排列无序,不可重复
查看全部 -
包装类主要提供了两大类方法:
1. 将本类型和其他基本类型进行转换的方法
2. 将字符串和本类型及包装类互相转换的方法
查看全部 -
StringBulider>StringBuffer>String;
String确定字符串之后是固定的不可改变的;重新添加字符串就会成为一个新的对象,并非是原对象;
StringBulider确定字符串后可对字符串进行修改、增加内容,且指定的还是原对象,性能比string高;
StringBulider和StringBuffer比较,前者没有实现线程安全功能,后者是线程安全,所以前者比后者高;
查看全部 -
字符串有.length()方法,返回字符串长度,但没有.length属性
数组有.length属性,但没有.length()方法
获取字符串里面的字符要用.charAt(int),比较要用==
查看全部 -
String的常用方法:
1. 字符串 str 中字符的索引从0开始,范围为 0 到 str.length()-1
2. 使用 indexOf 进行字符或字符串查找时,如果匹配返回位置索引;如果没有匹配结果,返回 -1
3. 使用 substring(beginIndex , endIndex) 进行字符串截取时,包括 beginIndex 位置的字符,不包括 endIndex 位置的字符
查看全部 -
异常的分类:
查看全部 -
Math类的方法都是静态方法,所以调用时可以直接Math,方法();
查看全部 -
各基本类转化成包装类可以new,包装类转化成基本类可以基本类Value()方法转化
查看全部 -
一种 String str= new String("test");
和 String str="test";
从虚拟机角度来看,这两种方法均生成字符串对象,在内存中的存取机制不同。
后者等同于创建了一个String对象不过是在方法区(永久代)字符串常量池中调用intern()方法存放(如果已经有就直接返回) 效率高。
不过貌似jdk8的虚拟机移除了永久代,合并到native堆中,不过区别不大 原理一样。StringBuilder效率比String高,因为不用重复创建对象
查看全部 -
字符串有.length()方法,返回字符串长度,但没有.length属性
数组有.lenghth属性,但没有.length()方法
查看全部 -
package 异常;
import java.util.*;
//异常类
//输入命令错误
class InputError extends Exception{
InputError(String message){
super(message);
}
}
//图书不存在异常
class BookNotExist extends Exception{
BookNotExist(String message){
super(message);
}
}
//类
class Book{
int id;
String name;
Book(int id, String name){
this.id=id;
this.name=name;
}
//通过id检查有没有这本书
boolean check(int id) throws BookNotExist {
return this.id==id?true:false;
}
//通过名字检查有没有这本书
boolean check(String name) throws BookNotExist {
return this.name==name?true:false;
}
public String toString() {//重写父类的方法必须public 不能降低权限
return id+" "+name;
}
}
public class Throws {
public static void main(String[] args) {
Book[] array= {new Book(1,"a"),new Book(2,"b"),new Book(3,"c"),new Book(4,"d"),new Book(5,"e")};
Scanner reader = new Scanner(System.in);
System.out.println("1-按照名称查找图书;2-按照序号查找图书");
int n = reader.nextInt();
try {
if(n!=1&&n!=2) {
throw new InputError("命令错误!请根据提示输入数字命令");
}
}catch(InputError e) {
e.printStackTrace();
}
if(n==1) {
System.out.println("输入图书名称");
try {
int i;
String name = reader.next();
for(i = 0; i < array.length; i++) {
if(array[i].check(name)) {
System.out.println(array[i].toString());
break;
}
}
if(i == array.length) {
throw new BookNotExist("图书不存在");
}
}catch(BookNotExist e) {
e.printStackTrace();
}
}
}
}
查看全部
举报