java string 转date_Java学习 异常 字符串 String 基本数据类型包装类 日期对象

0283bed31a89fc9441fe6d08bb4e8798.png

异常

异常:程序生病了

异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。

在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出):throw : 制造异常

Throwable有两个重要的子类:Exception(异常)和 Error(错误)

异常和错误的区别是:异常能被程序本身可以处理,错误是无法处理。

Exception:异常

CheckedException检查时异常|编译时异常:是在编译时出现的,如果不处理,程序无法执行

RuntimeException运行时异常:是在程序运行的时候出现,简单的可以通过增强程序的健壮性来处理(if判断)

常见的运行时异常:

1.空指针 NullPointerException

2.数组索引越界 ArrayIndexOutOfBoundsException

3.类型转换异常 ClassCastException (引用数据类型父类|父接口引用强转为实现类|子类类型)

4.数学异常 ArithmeticException

5.负数异常 NegativeArraySizeException

6.数字格式异常 NumberFormatException

异常通常需要程序员进行处理,否则程序无法继续下去。

遇到异常,不同的异常见名知意,非常直观,方便调试

如果遇到异常不处理,程序无法继续向下执行

throw : 制造异常

异常处理方式:

throws : 抛出异常

try..catch 捕获异常

try{

可能会出现异常的代码;

}catch(StringIndexOutOfBoundsException e){

e....

如果出现这个类型的异常,就执行的代码

}catch(NullPointerException e){

...

}catch(FileNotFoundException e){

..

}catch(Exception e){

....

}finally{

无论是否出现异常,肯定会执行的代码

}

1.异常都可以使用异常处理的2种方式(throws try……catch)进行处理

编译时异常必须使用这两种方式处理,运行时异常可以使用这两种方式也可以使用增强程序的健壮性

2.抛出异常,当前不处理,异常抛出到上一层,方法的内部把异常抛出到方法上面,谁调用这个方法,谁处理

3.异常捕获,在遇到异常的时候当前位置就处理,捕获某个异常对象,使用异常的功能

4.如果try中遇到异常了,try中下面的代码不会执行,直接去执行对应catch中的内容,如果没有遇到异常,正常执行所有的try中代码

5.一个try后可以跟一到多个catch,捕获小范围的异常catch写在上面,否则下面的catch执行不到

6.finally中的内容无论当前trycatch结构是否遇到异常都会执行其中的代码,与前面的try..catch是一个结构

自定义异常

使用java内置的异常类可以描述在编程时出现的大部分异常情况,也可以通过自定义异常描述特定业务产生的异常类型。所谓自定义异常,就是定义一个类,去继承Throwable类作者它的子类


String

String : 不可变长的字符序列 *****

多字符换没有大小修改或拼接,灵活使用当前字符串对象String

StringBuilder : 可变长的字符序列,线程不安全,效率较高

单线程环境下,如果大量的对字符串做修改,推荐使用StringBuilder

StringBuffer : 可变长的字符序列,线程安全,效率较低

多线程环境下,需要保证线程安全的是哦户,如果大量的对字符串做修改,StringBuffer.

执行效率: StringBuilder > StringBuffer > String

String

String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。

字符串常量:字符串常量池中出现,使用时会先检查常量池中是否存在这个字符串常量对象,如果直接使用,不存在创建新的字符串常量对象

通过构造器创建对象:new-->对象在堆中,每执行new都是新的对象

常见的如下语法规则:

//如果想要比较字符串内容是否相等,就使用字符串的equals方法

System.out.println(str.equals(str2));

//String(char[] value) 分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。

char[] ch={'s','h','s','x','t'};

String str3=new String(ch);

System.out.println(str3);

//String(char[] value, int offset, int count) 分配一个新的 String,它包含取自字符数组参数一个子数组的字符。

String str5=new String(ch,2,3);

System.out.println(str5);

//String(byte[] bytes) 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。

String str4=new String(arr); //默认utf-8

System.out.println(str4);

//String(byte[] bytes, String charsetName) 自定字符编码格式

String str5=new String(arr,"gbk");

System.out.println(str5);

//String(byte[] bytes, int offset, int length) 通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。

//String(byte[] bytes, int offset, int length, String charsetName) 通过使用指定的字符集解码指定的 byte 子数组,构造一个新的 String。

String str6=new String(arr,2,4,"gbk");

System.out.println(str6);

//String(StringBuffer buffer) 分配一个新的字符串,它包含字符串缓冲区参数中当前包含的字符序列。

//String(StringBuilder builder) 分配一个新的字符串,它包含字符串生成器参数中当前包含的字符序列。


字符串

//char charAt(int index) 返回指定索引处的 char 值。 ***

// int codePointAt(int index) 返回指定索引处的字符(Unicode 代码点)。

// int compareTo(String anotherString) 按字典顺序比较两个字符串

// int compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写。

//String concat(String str) 将指定字符串连接到此字符串的结尾。 ***

// boolean contains(CharSequence s) 当且仅当此字符串包含指定的 char 值序列时,返回 true。 ***

static String copyValueOf(char[] data)

返回指定数组中表示该字符序列的 String。

static String copyValueOf(char[] data, int offset, int count)

返回指定数组中表示该字符序列的 String。

boolean startsWith(String prefix) 测试此字符串是否以指定的前缀开始。

boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结束

byte[] getBytes() 字符串转字节数组 ****

byte[] getBytes(String charsetName)

int indexOf(int ch) 根据字符找索引,第一次出现

int indexOf(String str) ***

返回指定子字符串在此字符串中第一次出现处的索引。

int indexOf(String str, int fromIndex)

返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。

int lastIndexOf(String str) 返回指定子字符串在此字符串中最右边出现处的索引。

// int length() 返回此字符串的长度。

//String replace(char oldChar, char newChar) 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。

//String[] split(String regex) 根据给定正则表达式的匹配拆分此字符串。 ****

String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。 ****

String substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。

结束索引endIndex不包含

//char[] toCharArray() 将此字符串转换为一个新的字符数组。 ***

String toUpperCase() 字符串转大写

String toLowerCase() 字符串转小写

// String trim() 去前后空格 ***

//static String valueOf(int i) 返回 int 参数的字符串表示形式。


自动拆装箱

自动装箱: 基本-->引用

自动拆箱: 引用-->基本


日期对象

Date 日期类

构造器:

Date() 当前本机时间

Date(long date) 分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

在java.util.Date日期类

boolean after(Date when)

测试此日期是否在指定日期之后。

boolean before(Date when)

测试此日期是否在指定日期之前。

int compareTo(Date anotherDate)

比较两个日期的顺序。

boolean equals(Object obj)

比较两个日期的相等性。

SimpleDateFormat 日期格式转换器

* 可以使用转换器的默认格式,指定转换格式

* 日期对象-->字符串

* 字符串-->日期对象

*

* y: 年

* M: 月

* d: 日

* H: 24小时制

* h: 12小时制

* m: 分

* s: 秒

* S: 毫秒

*

*

* format : 日期对象转为字符串

* parse : 字符串转为日期对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值