Java的异常类和常用类、容器

  • 一、Java的异常类
    • 1.异常的概念
    • 2.异常的分类
    • 3.try-catch语句
    • 4.自定义异常类
  • 二、Java的常用类
    • 1.String类
    • 2.StringBuffer类
    • 3.Scanner类
    • 4.Date类
    • 5.Calendar类
    • 6.Math类、BigInteger类和Random类
  • 三、容器

一、Java的异常类

1.异常的概念

Java异常是Java提供的用于处理程序中错误的一种机制
所谓错误是指程序运行过程中发生的一些异常事件(如:除0溢出,数组下标越界,所要读取的文件不存在)
Java程序的执行过程中如出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息并将提交给Java运行时系统,该过程称为抛出(throw)异常
当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常

2.异常的分类

错误:Error类以及他的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代码处理,Error很少出现。因此,程序员应该关注Exception为父类的分支下的各种异常类。

异常:Exception以及他的子类,代表程序运行时发送的各种不期望发生的事件。可以被Java异常处理机制使用,是异常处理的核心。

3.try-catch语句

try {可能发生异常的语句
}
catch(ExceptionSubClass1 e) {...
}
catch(ExceptionSubClass2 e) {... //定义处理异常的代码
}

4.自定义异常类

在编写程序是可以扩展Exception类定义自己的异常类,然后根据程序的需要来规定哪些方法产生这样的异常。一个方法在声明时可以使用throws关键字声明要产生的若干个异常,并在该方法的方法体中具体给出产生异常的操作,即用相应的异常类创建对象,并使用throw关键字抛出该异常对象,导致该方法结束执行。

public void someMethod() throws SomeException { //声明该方法可能抛出的异常if(someCondition()) {throw new Exception("错误原因") //构造并抛出异常对象}
}

二、Java的常用类

1.String类

构造String对象

String str = “string”; //常量对象
String s = new String("we are students"); //String对象

String类的构造方法

//(1)String(char a[])用字符数组创建String对象
char a[] = (‘J’,‘a’,‘v’,‘a’);
String s = new String(a);
//上述过程相当于
String s = new String("Java");
//(2)String(char a[],int startIndex,int count)提取字符数组a中的一部分字符创建一个String对象
char a[] = {'零','壹','贰','叁','肆','伍','陆','染','捌','项');
String s = new String(a,2,4);
//上述过程相当于
String s = new String(“贰叁肆伍”);

引用String常量

String s1,s2;
s1 = “你好”;
s2 = “你好”; //s1==s2的值是true

字符串的并置

String you = "你";
String hi = "好";
String testOne;
testOne=you+hi;
Sytem.out.println (hello == testOwo); //输出结果是false
String hello = "你好";
String testTwo = "你"+"好";
Sytem.out.println (hello == testTwo); //输出结果是true
Sytem.out.println ("你好" == testTwo); //输出结果是true
Sytem.out.println ("你好" == testTwo); //输出结果是true
String testThree = you+hi;
Sytem.out.println (testThree == testOwo); //输出结果是false

String类的常用方法

public int length()//获取一个String对象的字符序列的长度
public boolean equals(String s)//比较当前String对象的字符序列是否与参数s指定的String对象的字符序列相同
public boolean startsWith/endsWith(String s)//判断当前String对象的字符序列前缀/后缀是否是参数指定的String对象s的字符序列
public int compareTo(String s)//按字典序与参数指定的String对象s的字符序列比较大小
public boolean contains(String s)//判断当前String对象的字符序列是否包含参数s的字符序列
public int indexOf/lastIndexOf(String s,int fromIndex)//从下标fromIndex处开始开始查找str在字符串中第一次/最后一次出现的位置
public String substring(int startpoint)//获得一个新的String对象,新的String对象的字符序列是复制当对象的字符序列中的startpoint 位置至最后位置上的字符所得到的字符序列。String对象调用substring(int start, int end)方法获得一个新的 Sting对象,新的Sring 对象的字符序列是复制当前Srinrg对象的字符序列中的un位置至end-1位置上的字物所得到的字符序列。

2.StringBuffer类

构造对象

StringBuilder();//以默认容量创建空的StringBuilder对象
StringBuilder(int capacity);//以指定容量创建空的StringBuilder对象
StringBuilder(String str);//以指定的字符串创建StringBuilder对象

常用方法

int capacity();//获取容量
int length();//获取长度
append(int value);//追加。可以追加多种类型
insert(int offset,String s);//在指定的位置插入指定数据
deleteCharAt(int index);//删除指定索引处的元素
delete(int start,int end);//删除[start,start-1]范围内的元素
replace(int start,int end,String s);//将[start,end-1]范围内的元素替换成指定字符串
reverse();//元素反转
String subString(int start);//截取指定位置一直到末尾
String subString(int start,int end);//截取[start,end-1]范围

String、StringBuilder和StringBuffer的区别?
String内容不可改变
StringBuilder和StringBuffer内容可变
StringBuilder是线程不安全的,不同步,效率高
StringBuffer是线程安全的,同步,效率低

3.Scanner类

构造对象

Scanner scanner = new Scanner(InputStream is);//构造一个文本扫描器,它生成的值是从指定的值输入流扫描的

成员方法

 boolean hasNext();//是否有下一个数,有true,没有falseString next();//获取下个数int nextInt();//获取下个int数据String nextLine();//获取一行数据

4.Date类

构造对象

Date();//以当前时间毫秒值创建Date对象
Date(long time);//以指定的毫秒值创建Date对象

成员方法

long getTime();//获取Date对象的毫秒值
setTime(long time);//设置Data对象的毫秒值

5.Calendar类

构造对象

Calendar calendar = Calendar.getInstance();// 使用Calendar类的static方法getInstance()可以初始化一个日历对象

成员方法

static Calender getInstance();//以默认时区和语言创建日历
int get(int field);//获取指定字段的日历值
set(int field,int value);//给指定的日历字段设置指定的值
set(int year,int month,int date);//设置年月日
Date getTime();//获取日历对象的日期
setTime(Date d);//设置日历对象的日期
add(int field,int amount);//对指定的日历字段添加指定的值

6.Math类、BigInteger类和Random类

Math类

abs(int a);//绝对值
ceil(double d);//向上取整
floor(double d);//向下取整
max(int a,int b);//最大值
pow(double a,double b);//a的b次幂
random();//随机数
round(float f);//四舍五入
sqrt(double d);//算术平方根

BigInteger类

add(BigInteger val):返回当前对象与val的和。
subtract(BigInteger val): 返回当前对象与val的差。
multiply(BigInteger val): 返回当前对象与val的积。
divide(BigInteger val):返回当前对象与val的商。
remainder(BigInteger val):返回当前对象与val的余。
int compareTo(BigInteger val):返回当前对象与val的比较结果,返回值是1,-1或0,分别表示当前对象大于、小于或等于val。
abs():返回当前整数对象的绝对值。
pow(int a);:返回当前对象的a次幂。
String toString():返回当前对象十进制的字符串表示。
String toString(int p):返回当前对象p进制的字符串表示。

Random类

//构建方法
Random();//以当前时间毫秒值作为种子,创建Random对象
Random(long seed);//以指定种子创建Random对象
//成员方法
nextInt();//生成1个int类型范围的随机数
nextInt(int n);//产生1个[0,n-1]范围内的随机数

三、容器

概念
Spring 提供容器功能,容器可以管理对象的生命周期、对象与对象之间的依赖关系,您可以使用一个配置文件(通常是XML),在上面定义好对象的名称、如何产生(Prototype 方式或Singleton 方式)、哪个对象产生之后必须设定成为某个对象的属性等,在启动容器之后,所有的对象都可以直接取用,不用编写任何一行程序代码来产生对象,或是建立对象与对象之间的依赖关系。
分类
Java容器类包含List、ArrayList、Vector及map、HashTable、HashMap

Java的异常类和常用类、容器相关推荐

  1. 第二次预习——java异常类和常用类 容器

    文章目录 一.异常类 1.概念 2.异常类分类 2.1分类 2.2Error与Exception的区别 2.3Java中常见运行时异常 3.try-catch语句 3.1用法 3.2语句 3.3实例 ...

  2. 第二周预习:异常类,常用类,容器

    异常类 异常 异常:在程序的运行过程中,发生了不正常的现象,阻止了程序的运行,我们称之为发生异常. Java使用throw关键字抛出一个Exception子类的实例表示异常发生. try-catch语 ...

  3. 浅谈Java锁,与JUC的常用类,集合安全类,常用辅助类,读写锁,阻塞队列,线程池,ForkJoin,volatile,单例模式不安全,CAS,各种锁

    浅谈JUC的常用类 JUC就是java.util.concurrent-包下的类 回顾多线程 Java默认有几个线程? 2 个 mian.GC Java 真的可以开启线程吗? 开不了,点击源码得知:本 ...

  4. java常用class类_java常用类

    java常用类 内部类 1.成员内部类:在一个类的内部定义一个完整的类 例如:外部类public class Body{ 内部类class Header{ } } 内部类可以直接访问外部类的私有成员, ...

  5. Java部分集合以及部分常用类

    学习内容: 集合 1.1 Collection接口 1.2 List接口 1.3 Set接口 1.4 Map接口 常用类 2.1 Object 2.2 String 2.3 StringBuilder ...

  6. java中object类型_Java常用类object详解

    1.Object概述: 类Object是类层次结构的根类.每个类都使用Object作为超类.所有对象(包括数组)都实现这个类的方法. 2.构造方法详细信息: Object只有一个无参构造方法,因为ob ...

  7. java学习之路7——常用类

    一.Object类 超类.基类.左右类的直接或者间接父类,位于继承树的最顶层. 任何类,如果没有写extends显示继承某个类,默认都直接继承Object类.否则为间接继承. Object类中所定义的 ...

  8. 时间日期类JAVA包含地区属性_Java常用类 | 时间和日期类

    开发中经常涉及到时间与日期,记录下Java中与时间和日期相关的API JDK8之前与时间日期相关的类 java.lang.System类 System类提供了一个公共的静态方法currentTimes ...

  9. 【JDK源码】java.util.concurrent.atomic包常用类详解

    java.util.concurrent.atomic原子操作类包里面提供了一组原子变量类.其基本的特性就是在多线程环境下,当有多个线程同时执行这些类的实例包含的方法时,具有排他性,即当某个线程进入方 ...

最新文章

  1. 内核配置中 ramdisk 大小修改
  2. 软件测试的特殊字符包含什么,测试常见的特殊字符集及接口测试中的测试字符...
  3. What does SAP UI5 bindItem occurs
  4. [RK3399 Android7.1] 开启保存上一次重启前日志
  5. 解决mac管理员变成普通成员
  6. qpython3l使用手册_qpython3l怎么用
  7. for (var key in Obj)遍历JS对象/数组
  8. LeetCode 118. Pascal’s Triangle
  9. [洛谷P1501][国家集训队]Tree II(LCT)
  10. jsp页面时间戳转换为时间格式
  11. 英语学术论文写作常用词汇
  12. 虚拟机opnsense作为dhcp服务器,ESXI 与 OPNSense 配合
  13. 全志V853开发板硬件框图及各模块原理图【内附PDF版本】
  14. c语言打鱼晒网问题报告书,C语言渔夫打鱼晒网问题.docx
  15. Noi 十连测 Zbox loves meizi
  16. dof景深matlab,Shader学习(三):DOF(景深)
  17. Ubuntu下Android编译环境Build_evn的配置
  18. 微信小程序路线规划导航并唤醒第三方导航app
  19. git --暂存区存在的意义
  20. 7-4 房产税费计算2022 (12 分)

热门文章

  1. Swift中为什么多用strcut以及它与class的区别
  2. java的消息框_JAVA消息框
  3. 51单片机STC89C52控制LED闪烁(将延时程序写成子函数有形参)
  4. Latex模版以及经验汇总
  5. 8.14.4. jsonb Indexing
  6. 学校校园学生成绩管理系统 毕业设计毕设源码毕业论文开题报告参考(1)系统功能概要
  7. Java蓝桥杯 算法训练 复数归一化
  8. MATLAB多种函数
  9. 大V推荐!安卓放弃java
  10. FCPX插件 CineFlare Hand Held镜头移动对焦清晰效果