- final
- 什么是API
- 异常
- 包装类
- String类
final
final可以修饰类,属性,方法和局部变量,常命名为XXX_XX
用途:
- 类定义为final后,不能被继承,如包装类 Integer,String等都是final类
- 类的方法写为final后,不能被子类重写,如果类不是final类,但方法是final的,则该方法不能被重写,但可以被子类继承,final不能修饰构造器
- 类的属性值写为final后,不能被修改,此时必须赋初值,或在构造器中赋初值,或在代码块中赋初值,若这个属性是静态的,则只能赋初值,或在静态代码块中赋初值
- 局部变量被final修饰后,不能被修改
- final和static搭配使用,效率更高,调用这个静态方法或属性时不会导致类加载
什么是API
API是一组定义,允许软件应用程序之间进行通信和互操作的接口。
API的作用在于提供了一种标准的、封装的方式,使得不同软件组件之间可以互相调用和交互,而不必了解彼此的内部实现细节。
例子:
想象一家餐馆,你是顾客,厨房是餐馆的一部分,而服务员就是连接你和厨房之间的接口。在这个场景中,服务员就是一个API
- 服务员提供了一种标准的方式(接口),你只需要告诉服务员你想吃什么,而不需要亲自去厨房。
- 你不需要知道厨房的具体工作方式,只需要理解如何与服务员(API)进行交互。
- 服务员负责在你和厨房之间进行通信,确保你的需求得到满足。
在软件开发中,API就像是服务员一样,提供了一种标准的方式,让不同的软件组件能够互相通信和交互,而无需了解彼此的内部实现。API使得开发者能够轻松地集成其他系统的功能,实现更加灵活和可扩展的应用程序。
异常
用快捷键ctrl+alt+t可以套用try catch模板
程序有错分为错误和异常,
错误是严重的错误,若程序有错误,会直接崩溃
而异常则程度轻一点,异常分为编译时异常和运行时异常
编译时异常是在编写程序时会检测出的,必须修改,如语法错误
运行时异常是运行时候才会检测,不是必须修改,可以带着一些异常运行,这里的trycatch操作的异常就是运行时异常,也可以是编译时异常
五大异常:
exception是所有异常的父类
- 数组越界异常 ArrayIndexOutOfBoundsException
- 空指针异常,如cat=null;print(cat.name); 操作一个空对象 NullPointerException
- 算术异常,如分母为零 ArithmeticException
- 类型转换异常,如把一个类转成不相关的类, ClassCastException
如
Object obj=new Date();
Person person;
person=(Person) obj; - 数字格式不正确异常,如把String对象“韩顺平”转为int,此时报异常,不能转。
NumberFormatException
trycatch
- try中写可能有异常的代码,catch写操作异常的代码,finaly一般用于释放资源等,finally可有可无,但若有一定会执行。
- 如果发生了异常,try块中后面的语句不再执行
- 可有多个catch,但只能有一个成功捕获异常,并且必须子类在上,父类在下。
- 允许没有catch,即tryfinally,这样不会捕获异常,若有异常程序就会直接崩掉,但是finally还会执行,用于释放资源等。
throws
- 如果一个方法中可能生成某种异常,但是不确定如何处理这种异常,则此方法应该显式的抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理
- 对于编译异常,程序中必须处理,比如try-catch或者throws
- 对于运行时异常,程序中如果没用处理,默认就是throws的方式处理,最后抛到主函数,再抛到jvm中,jvm直接把异常信息打印出来。
自定义异常
- 自定义异常是一个类,继承RuntimeException,这样就是运行时异常,会默认以throws的方式抛出(也可继承自Exception,这样是编译时异常,需要手动抛出,不推荐)。
- 在自定义异常中写出构造函数,用来接收自定义的异常信息。
- 用throw的方式抛出异常,用new是来实例化对象
public class zdyexception {
public static void main(String[] args) {
String str="韩顺平";
if(str.length()<4)
{
throw new stringexception("名字小于四个字"); //抛出异常
}
System.out.println("名字字数符合规定");
}
}
class stringexception extends RuntimeException{
public stringexception(String message) { //构造函数
super(message);
}
}
包装类
- 有八大包装类Boolean,Character,Byte,Short,Interger,Long,Float,Double
- 封箱:普通数据类型转包装类,拆箱:包装类转普通数据类型
jdk5(包含jdk5)以后可以自动封箱和拆箱int i1=100; Integer integer1=i1;//自动封箱 Integer integer2=new Integer(50);//自动拆箱 int i2=integer2;
- String类可以和这些包装类互相转换
//Integer转String
String str1=integer1+"";
str1=integer1.toString();
str1=String.valueOf(integer1);
//String转Integer
Integer integer3=new Integer(str1);
integer3=Integer.parseInt(str1);
目前较为实用的是,包装类转String用String.valueof,,String转包装类用包装类.parseXX
String str2=new String("15353");
Float flo=Float.parseFloat(str2);
System.out.println(flo);
String str3=String.valueOf(flo);
System.out.println(str3);
String类
1.String有两种创建方式
方式一:String str1="hsp";
方式二:String str2=new String("hsp");
方式一:先从常量池中看是否有”hsp“,如果有,则直接指向他,如果没有就先创建再指向他,总之,方式一是指向常量池中的”hsp“。
方式二:先在堆中创建空间,里面维护了value属性,(这里的value是final的,所以这个final指向常量池,这里也是和StringBuffer的不同),value再指向常量池中的”hsp“空间,若有,直接指向,若无,就先创建再指向,总之,方式二中的str2是指向堆中,str2的value属性是指向常量池
//复习时请插入手机图片
string重写了equals方法,string的equals方法是比较字符内容,==
是比较内存地址。
new出来的指向堆,,调用一个方法时会创建一个新栈,方法结束后会销毁栈。
- final
- 什么是API
- 异常
- 包装类
- String类
final
final可以修饰类,属性,方法和局部变量,常命名为XXX_XX
用途:
- 类定义为final后,不能被继承,如包装类 Integer,String等都是final类
- 类的方法写为final后,不能被子类重写,如果类不是final类,但方法是final的,则该方法不能被重写,但可以被子类继承,final不能修饰构造器
- 类的属性值写为final后,不能被修改,此时必须赋初值,或在构造器中赋初值,或在代码块中赋初值,若这个属性是静态的,则只能赋初值,或在静态代码块中赋初值
- 局部变量被final修饰后,不能被修改
- final和static搭配使用,效率更高,调用这个静态方法或属性时不会导致类加载
什么是API
API是一组定义,允许软件应用程序之间进行通信和互操作的接口。
API的作用在于提供了一种标准的、封装的方式,使得不同软件组件之间可以互相调用和交互,而不必了解彼此的内部实现细节。
例子:
想象一家餐馆,你是顾客,厨房是餐馆的一部分,而服务员就是连接你和厨房之间的接口。在这个场景中,服务员就是一个API
- 服务员提供了一种标准的方式(接口),你只需要告诉服务员你想吃什么,而不需要亲自去厨房。
- 你不需要知道厨房的具体工作方式,只需要理解如何与服务员(API)进行交互。
- 服务员负责在你和厨房之间进行通信,确保你的需求得到满足。
在软件开发中,API就像是服务员一样,提供了一种标准的方式,让不同的软件组件能够互相通信和交互,而无需了解彼此的内部实现。API使得开发者能够轻松地集成其他系统的功能,实现更加灵活和可扩展的应用程序。
异常
用快捷键ctrl+alt+t可以套用try catch模板
程序有错分为错误和异常,
错误是严重的错误,若程序有错误,会直接崩溃
而异常则程度轻一点,异常分为编译时异常和运行时异常
编译时异常是在编写程序时会检测出的,必须修改,如语法错误
运行时异常是运行时候才会检测,不是必须修改,可以带着一些异常运行,这里的trycatch操作的异常就是运行时异常,也可以是编译时异常
五大异常:
exception是所有异常的父类
- 数组越界异常 ArrayIndexOutOfBoundsException
- 空指针异常,如cat=null;print(cat.name); 操作一个空对象 NullPointerException
- 算术异常,如分母为零 ArithmeticException
- 类型转换异常,如把一个类转成不相关的类, ClassCastException
如
Object obj=new Date();
Person person;
person=(Person) obj; - 数字格式不正确异常,如把String对象“韩顺平”转为int,此时报异常,不能转。
NumberFormatException
trycatch
- try中写可能有异常的代码,catch写操作异常的代码,finaly一般用于释放资源等,finally可有可无,但若有一定会执行。
- 如果发生了异常,try块中后面的语句不再执行
- 可有多个catch,但只能有一个成功捕获异常,并且必须子类在上,父类在下。
- 允许没有catch,即tryfinally,这样不会捕获异常,若有异常程序就会直接崩掉,但是finally还会执行,用于释放资源等。
throws
- 如果一个方法中可能生成某种异常,但是不确定如何处理这种异常,则此方法应该显式的抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理
- 对于编译异常,程序中必须处理,比如try-catch或者throws
- 对于运行时异常,程序中如果没用处理,默认就是throws的方式处理,最后抛到主函数,再抛到jvm中,jvm直接把异常信息打印出来。
自定义异常
- 自定义异常是一个类,继承RuntimeException,这样就是运行时异常,会默认以throws的方式抛出(也可继承自Exception,这样是编译时异常,需要手动抛出,不推荐)。
- 在自定义异常中写出构造函数,用来接收自定义的异常信息。
- 用throw的方式抛出异常,用new是来实例化对象
public class zdyexception {
public static void main(String[] args) {
String str="韩顺平";
if(str.length()<4)
{
throw new stringexception("名字小于四个字"); //抛出异常
}
System.out.println("名字字数符合规定");
}
}
class stringexception extends RuntimeException{
public stringexception(String message) { //构造函数
super(message);
}
}
包装类
- 有八大包装类Boolean,Character,Byte,Short,Interger,Long,Float,Double
- 封箱:普通数据类型转包装类,拆箱:包装类转普通数据类型
jdk5(包含jdk5)以后可以自动封箱和拆箱int i1=100; Integer integer1=i1;//自动封箱 Integer integer2=new Integer(50);//自动拆箱 int i2=integer2;
- String类可以和这些包装类互相转换
//Integer转String
String str1=integer1+"";
str1=integer1.toString();
str1=String.valueOf(integer1);
//String转Integer
Integer integer3=new Integer(str1);
integer3=Integer.parseInt(str1);
目前较为实用的是,包装类转String用String.valueof,,String转包装类用包装类.parseXX
String str2=new String("15353");
Float flo=Float.parseFloat(str2);
System.out.println(flo);
String str3=String.valueOf(flo);
System.out.println(str3);
String类
1.String有两种创建方式
方式一:String str1="hsp";
方式二:String str2=new String("hsp");
方式一:先从常量池中看是否有”hsp“,如果有,则直接指向他,如果没有就先创建再指向他,总之,方式一是指向常量池中的”hsp“。
方式二:先在堆中创建空间,里面维护了value属性,(这里的value是final的,所以这个final指向常量池,这里也是和StringBuffer的不同),value再指向常量池中的”hsp“空间,若有,直接指向,若无,就先创建再指向,总之,方式二中的str2是指向堆中,str2的value属性是指向常量池
//复习时请插入手机图片
string重写了equals方法,string的equals方法是比较字符内容,==
是比较内存地址。
new出来的指向堆,,调用一个方法时会创建一个新栈,方法结束后会销毁栈。