常用API&异常

常用API&异常

一、常用API

API (Application Programming Interface) :应用程序编程接口

Java中的API :

指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。

1、字符串

1.String类
  • 不可变性 final
    • 操作量较少
  • 效果上相当于char[],但底层原理是byte[]

JDK8及以前是字符数组,JDK9及以后是字节数组

构造方法:

public String()

public String(char[] chs)

public String(byte[] bys)

String s = “abc” //推荐使用直接赋值的方式

	public class StringDemo01 {
    public static void main(String[] args) {
        String s1 ="abc";
        System.out.println("s1:"+s1);

        char[] chr ={'a','b','c'};
        String s2 =new String(chr);
        System.out.println("s2:"+s2);

        byte[] byt ={97,98,99};
        String s3 =new String(byt);
        System.out.println("s3:"+s3);
    }
}

运行结果:

image-20210122195645427

==&equals比较:之后补充

基本类型:比较的是数据值是否相同

引用类型:比较的是地址值是否相同

equals()

将此字符串与指定对象进行比较。

2.StringBuilder
  • 可变长

  • 单线程,数据量较大

    • 效率高,不安全
  • 方法

    • length() 长度
    • append() 拼接
    • reverse() 反转
    • toString() //StringBuilder转换为String
    • …通过帮助文档
  • 链式编程:

    • s.append( “Hello\t”).append(“World\t”).append(“你好,”).append(“世界”);
  • StringBuilder和String相互转换

    • StringBuilder转换为String:toString()
    • String转换为StringBuilder:构造方法:StringBuilder(String s)
3.StringBuffer类
  • 可变长

  • 多线程,数据量较大

    • 效率低,安全
  • 方法

    • append()
  • …通过帮助文档

例子

  • String str =“a”+1+2

  • a12

  • String str =‘a’+1+2

  • 100

  • String str = String.valueOf(‘a’+1+2)

  • String str =1+2+“a”

  • 3a

2、常用API

Math类
  • 常见的数学运算:类Math包含用于执行基本数字运算的方法,例如基本指数,对数,平方根和三角函数。

  • 方法:(通过类名直接调用)

    • abs() 绝对值
    • ceil() 向上取整(返回double类型
    • floor() 向下取整(返回double类型)
    • round() 四舍五入(返回int)
    • max 取较大值
    • min 取较小值
    • pow(int a,int b) 返回a的b次幂的值
    • random 生成随机数
      • UUID
  • …通过帮助文档

System类
  • System类包含几个有用的类字段和方法。 它无法实例化。
  • 常用方法:
    • exit() 终止当前Java虚拟机,非零表示异常终止
    • currentTimeMillis() 返回当前时间(以毫秒为单位)
    • nanoTime 返回时间源的当前值,以纳秒为单位
Object类
  • 所有类都直接或间接继承自Object
  • 构造方法 Object()
  • 方法

    • equals()

    equeals() & == 的比较

    • toString()

    建议所有子类重写此方法,Alt+Insert 默认生成equals、toString

    • hashcode()
    • clone
    • getClass()
    • notify() 通知
    • wait()

3、包装类

  • 自动装箱和拆箱(面试可能问)
    • 装箱:把基本数据类型转换为对应的包装类类型
    • 拆箱:把包装类类型转换为对应的基本数据类型

基本类型包装类:

byte Byte

short Short

int integer

long Long

float Float

double Double

char Character

boolean Boolean

具体之后补充…

1.Integer

Integer是int的包装类,默认值是null,new Integer()实际上是生成一个指针指向此对象,属于引用类型;

构造方法(已过时): new Integer(100) new Integer(“100”)

推荐方式 Integer.valueOf(100) Integer.valueOf(“100”)

int与String相互转换:

int=>String:

int number=100;

1.""+number

2.String.valueOf(number)//推荐这种

String=>int:

String s =“100”;

1.Integer i =Integer.valueOf(s) ; int x=i.intValue();//String—Integer—int

2.Integer.paraseInt();

延伸:关于Integer和int的比较 //…更多的会在之后学习补充

具体之后补充…

4、Date类

Date:精确到毫秒

  • Date类表示特定的时刻,精度为毫秒。
  • 构造方法:

    • Date()
    • Date(long date) (基准时间+data:1970年起的指定毫秒数)
  • 常用方法:

    • getTime() :获取的是日期对象从1970年1月1日00:00:00到现在的毫秒
    • setTime(long time) :设置时间给的是毫秒值 //与Date(long date)效果类似

SimpleDateFormat

  • 构造方法
    • SimpleDateFormat()
    • SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”)
  • 格式化和解析日期:
    • Date到String: format(Date date) 将日期格式化成日期/时间字符串
    • String到Date: parse(String source) 从给定字符串的开始解析文本以生成日期
public class SimpleDateFormatDemo {
    public static void main(String[] args) throws ParseException {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat();
        //解析日期1:Date to String
        String s = sdf.format(date);//日期 格式化为 字符串
        System.out.println(s);

        //解析日期2:String to Date
        String d ="2021-01-25 11:19:00";
        SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date x=sdf1.parse(d);
        System.out.println(x);
    }
}

输出结果

image-20210125112956085

日期工具类

1.dateToString

2.stringToDate

public class DateUtils {
    private DateUtils() {}
    
    public static String DateToString(Date date, String format){
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        //解析日期1:Date to String
        return sdf.format(date);
    }

    public static Date StringToData(String s, String format) throws ParseException {

        SimpleDateFormat sdf =new SimpleDateFormat(format);
        //解析日期2:String to Date
        return sdf.parse(s);
    }
}

Calendar日历类(建议使用)

  • Calendar(抽象类)为在某一特定时刻和一组日历字段之间的转换方法

  • 提供了类方法getInstance用于获取Calendar对象,其日历字段已使用当前日期和时间初始化

  • Calendar rightNow=Calendar.getInstance ();//多态形式 获取对象

    public class CalendarDemo {
        public static void main(String[] args) {
            Calendar c=Calendar.getInstance ();
            int year = c.get(Calendar.YEAR);
            int month = c.get(Calendar.MONTH)+1;
            int date = c.get(Calendar.DATE);
            int hour = c.get(Calendar.HOUR);
            int minute = c.get(Calendar.MINUTE);
            int second = c.get(Calendar.SECOND);
            System.out.println(year+"年"+month+"月"+date+"日"+hour+"时"+minute+"分"+second+"秒");
        }
    }
    
    
    输出:20211253388
  • 方法

    • get(int field) :返回给定日历字段的值
    • add(int field,int amount) 根据日历规则,将指定的时间量添加或减去给定的日历时间字段
        c.add(Calendar.DATE,-3);
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH)+1;
        int date = c.get(Calendar.DATE);
        System.out.println(year+"年"+month+"月"+date+"日");
    输出:2021122
    • set(int year,int month,int date) :设置当前日历的年月日
        c.set(2028,1,25);//2028年2月25日
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH)+1;
        int date = c.get(Calendar.DATE);
        System.out.println(year+"年"+month+"月"+date+"日");
    输出:2028225

注:

Calendar(日历类)中月份是从0开始(范围0~11),故要+1,,如下:

int month = c.get(Calendar.MONTH)+1;

0 代表1月,1代表2月,以此类推;

5、File类

  • 创建文件
  • 查看文件
  • 修改文件
  • 删除文件

属于IO流与文件部分内容,之后补充

二、异常

Java异常处理与日志

程序调试和单元测试:Debug+Junit

1、异常体系结构

image-20210121001431209
Throwable
1.Exception
  • 运行时异常(RuntimeException) ~~~主要处理

    • 1/0

    • ClassnNotFound

    • NullPoint

    • UnKownType

    • ArrayIndexoutofBounds(数组下标越界)

  • 检查型异常(CheckedException)~~~ 一般不管

    • 非Runtime Exception(非运行时异常)
    • 一般属于用户错误或问题引起的异常
2.Error(错误)
  • AWT错误(AWTError) ~~~ 一般不管

    • 前端绘制界面错误
  • JVM错误(VirtulMachineError)

    • StackOverFlow(面试可能问)

    • OutofMemory(面试可能问):内存溢出

拓展:

Thorwable成员方法:(常用方法)

  • getMessage() 返回此 throwable 的详细消息字符串
  • toString() 返回此可抛出的简短描述
  • printStackTrace() 把异常的错误信息输出在控制台]

Error 与 Exception 的区别

  • Error:通常是灾难性的致命错误,是程序无法控制和处理的

  • Exception:通常情况下是可以被程序处理的,并再程序中尽可能的去处理这些异常。

2、异常关键字(五个)

1.try、catch、finally
try { 
    可能出现异常的代码; 
} 

catch(想要捕获的异常类名 变量名) { 
    异常的处理代码; 
}

finally{
    无论是否发现异常都执行;
}
  • try()
    • 判断可能出现异常的代码;
  • catch(){}
    • 异常的处理代码; 捕获异常
    • 像if-else一样可以写多个:异常先小后大
  • finally():
    • 无论是否发现异常都执行;用于善后工作,释放资源。
    • 可以选择不要finally ==》 try{}catch(){}

捕获异常快捷键:Ctrl+Alt+T,包裹代码块

2.thow和thows

thow和thows用于抛出异常

  • thow

    • 主动抛出异常
    • 用在方法体内,跟的是异常对象名
  • thows

    • 方法抛出
    • public void 方法() throws 异常类名 { }

自定义异常

  • 继承Exception

后期学习补充:。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值