java基础语法-4

  • final
  • 什么是API
  • 异常
  • 包装类
  • String类

final

final可以修饰类,属性,方法和局部变量,常命名为XXX_XX
用途:

  1. 类定义为final后,不能被继承,如包装类 Integer,String等都是final类
  2. 类的方法写为final后,不能被子类重写,如果类不是final类,但方法是final的,则该方法不能被重写,但可以被子类继承,final不能修饰构造器
  3. 类的属性值写为final后,不能被修改,此时必须赋初值,或在构造器中赋初值,或在代码块中赋初值,若这个属性是静态的,则只能赋初值,或在静态代码块中赋初值
  4. 局部变量被final修饰后,不能被修改
  5. final和static搭配使用,效率更高,调用这个静态方法或属性时不会导致类加载

什么是API

API是一组定义,允许软件应用程序之间进行通信和互操作的接口。

API的作用在于提供了一种标准的、封装的方式,使得不同软件组件之间可以互相调用和交互,而不必了解彼此的内部实现细节。

例子:
想象一家餐馆,你是顾客,厨房是餐馆的一部分,而服务员就是连接你和厨房之间的接口。在这个场景中,服务员就是一个API

  • 服务员提供了一种标准的方式(接口),你只需要告诉服务员你想吃什么,而不需要亲自去厨房。
  • 你不需要知道厨房的具体工作方式,只需要理解如何与服务员(API)进行交互。
  • 服务员负责在你和厨房之间进行通信,确保你的需求得到满足。

在软件开发中,API就像是服务员一样,提供了一种标准的方式,让不同的软件组件能够互相通信和交互,而无需了解彼此的内部实现。API使得开发者能够轻松地集成其他系统的功能,实现更加灵活和可扩展的应用程序。

异常

用快捷键ctrl+alt+t可以套用try catch模板

程序有错分为错误和异常,
错误是严重的错误,若程序有错误,会直接崩溃
而异常则程度轻一点,异常分为编译时异常和运行时异常
编译时异常是在编写程序时会检测出的,必须修改,如语法错误
运行时异常是运行时候才会检测,不是必须修改,可以带着一些异常运行,这里的trycatch操作的异常就是运行时异常,也可以是编译时异常

五大异常:
exception是所有异常的父类

  1. 数组越界异常 ArrayIndexOutOfBoundsException
  2. 空指针异常,如cat=null;print(cat.name); 操作一个空对象 NullPointerException
  3. 算术异常,如分母为零 ArithmeticException
  4. 类型转换异常,如把一个类转成不相关的类, ClassCastException

    Object obj=new Date();
    Person person;
    person=(Person) obj;
  5. 数字格式不正确异常,如把String对象“韩顺平”转为int,此时报异常,不能转。
    NumberFormatException

trycatch

  1. try中写可能有异常的代码,catch写操作异常的代码,finaly一般用于释放资源等,finally可有可无,但若有一定会执行。
  2. 如果发生了异常,try块中后面的语句不再执行
  3. 可有多个catch,但只能有一个成功捕获异常,并且必须子类在上,父类在下。
  4. 允许没有catch,即tryfinally,这样不会捕获异常,若有异常程序就会直接崩掉,但是finally还会执行,用于释放资源等。

throws

  1. 如果一个方法中可能生成某种异常,但是不确定如何处理这种异常,则此方法应该显式的抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理
  2. 对于编译异常,程序中必须处理,比如try-catch或者throws
  3. 对于运行时异常,程序中如果没用处理,默认就是throws的方式处理,最后抛到主函数,再抛到jvm中,jvm直接把异常信息打印出来。

自定义异常

  1. 自定义异常是一个类,继承RuntimeException,这样就是运行时异常,会默认以throws的方式抛出(也可继承自Exception,这样是编译时异常,需要手动抛出,不推荐)。
  2. 在自定义异常中写出构造函数,用来接收自定义的异常信息。
  3. 用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);  
    }  
}

包装类

  1. 有八大包装类Boolean,Character,Byte,Short,Interger,Long,Float,Double
  2. 封箱:普通数据类型转包装类,拆箱:包装类转普通数据类型
    jdk5(包含jdk5)以后可以自动封箱和拆箱
    int i1=100;  
    Integer integer1=i1;//自动封箱  
      
    Integer integer2=new Integer(50);//自动拆箱  
    int i2=integer2;
    
  3. 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
用途:

  1. 类定义为final后,不能被继承,如包装类 Integer,String等都是final类
  2. 类的方法写为final后,不能被子类重写,如果类不是final类,但方法是final的,则该方法不能被重写,但可以被子类继承,final不能修饰构造器
  3. 类的属性值写为final后,不能被修改,此时必须赋初值,或在构造器中赋初值,或在代码块中赋初值,若这个属性是静态的,则只能赋初值,或在静态代码块中赋初值
  4. 局部变量被final修饰后,不能被修改
  5. final和static搭配使用,效率更高,调用这个静态方法或属性时不会导致类加载

什么是API

API是一组定义,允许软件应用程序之间进行通信和互操作的接口。

API的作用在于提供了一种标准的、封装的方式,使得不同软件组件之间可以互相调用和交互,而不必了解彼此的内部实现细节。

例子:
想象一家餐馆,你是顾客,厨房是餐馆的一部分,而服务员就是连接你和厨房之间的接口。在这个场景中,服务员就是一个API

  • 服务员提供了一种标准的方式(接口),你只需要告诉服务员你想吃什么,而不需要亲自去厨房。
  • 你不需要知道厨房的具体工作方式,只需要理解如何与服务员(API)进行交互。
  • 服务员负责在你和厨房之间进行通信,确保你的需求得到满足。

在软件开发中,API就像是服务员一样,提供了一种标准的方式,让不同的软件组件能够互相通信和交互,而无需了解彼此的内部实现。API使得开发者能够轻松地集成其他系统的功能,实现更加灵活和可扩展的应用程序。

异常

用快捷键ctrl+alt+t可以套用try catch模板

程序有错分为错误和异常,
错误是严重的错误,若程序有错误,会直接崩溃
而异常则程度轻一点,异常分为编译时异常和运行时异常
编译时异常是在编写程序时会检测出的,必须修改,如语法错误
运行时异常是运行时候才会检测,不是必须修改,可以带着一些异常运行,这里的trycatch操作的异常就是运行时异常,也可以是编译时异常

五大异常:
exception是所有异常的父类

  1. 数组越界异常 ArrayIndexOutOfBoundsException
  2. 空指针异常,如cat=null;print(cat.name); 操作一个空对象 NullPointerException
  3. 算术异常,如分母为零 ArithmeticException
  4. 类型转换异常,如把一个类转成不相关的类, ClassCastException

    Object obj=new Date();
    Person person;
    person=(Person) obj;
  5. 数字格式不正确异常,如把String对象“韩顺平”转为int,此时报异常,不能转。
    NumberFormatException

trycatch

  1. try中写可能有异常的代码,catch写操作异常的代码,finaly一般用于释放资源等,finally可有可无,但若有一定会执行。
  2. 如果发生了异常,try块中后面的语句不再执行
  3. 可有多个catch,但只能有一个成功捕获异常,并且必须子类在上,父类在下。
  4. 允许没有catch,即tryfinally,这样不会捕获异常,若有异常程序就会直接崩掉,但是finally还会执行,用于释放资源等。

throws

  1. 如果一个方法中可能生成某种异常,但是不确定如何处理这种异常,则此方法应该显式的抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理
  2. 对于编译异常,程序中必须处理,比如try-catch或者throws
  3. 对于运行时异常,程序中如果没用处理,默认就是throws的方式处理,最后抛到主函数,再抛到jvm中,jvm直接把异常信息打印出来。

自定义异常

  1. 自定义异常是一个类,继承RuntimeException,这样就是运行时异常,会默认以throws的方式抛出(也可继承自Exception,这样是编译时异常,需要手动抛出,不推荐)。
  2. 在自定义异常中写出构造函数,用来接收自定义的异常信息。
  3. 用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);  
    }  
}

包装类

  1. 有八大包装类Boolean,Character,Byte,Short,Interger,Long,Float,Double
  2. 封箱:普通数据类型转包装类,拆箱:包装类转普通数据类型
    jdk5(包含jdk5)以后可以自动封箱和拆箱
    int i1=100;  
    Integer integer1=i1;//自动封箱  
      
    Integer integer2=new Integer(50);//自动拆箱  
    int i2=integer2;
    
  3. 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出来的指向堆,,调用一个方法时会创建一个新栈,方法结束后会销毁栈。
 

IMG_20240204_202128.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值