程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。
异常的作用?程序发生异常事件之后,为我们输出详细的信息,
程序员通过这个信息,可以对程序进行一些处理
异常和错误区别 异常的使用分为两种
一种是负责任的表现try catch finally
另一种是throw抛出给上级
自定义异常 基础类基础类就是八大基本数据类型
在基础库部分,Sun公司提供了极其丰富的功能类,为了便于区分,根据类的功能大致把这些类放在了不同的包内,例如.lang包、.util包、.io包、.sql包、.text包等等。
对于初学者来说,最为常用的工具类有封装类、String、StringBuffer、Random、Date、Calendar、SimpleDateFormat及Math静态类等等
包装类包装类把基本数据类型的数据封装为引用类型的对象,而且提供了很多有用的方法
对于基本数据类型,Sun公司均提供了对应的包装类
所有的包装类均位于.lang包下,而这个包会由JVM编译器在编译时自动导入我们的程序,可以不用手工导入该包下的类而直接使用
包装类的方法
包装类主要是两种方法
一种是本类型和其它类型之间进行转换,另一种是字符串和本类型以及基本类型之间的转换
拆箱一种是自动拆箱,自动拆箱就是将包装类对象直接赋值给其对应的基本数据类型,另一种是手动拆箱,手动拆箱就是使用包装类中的方法
拿Integer类举例,如果想要把Integer类型的对象转换为int类型的数据,那么就可以使用intValue方法
装箱装箱分为自动装箱和手动装箱,自动装箱就是直接将基本数据类型赋值给包装类的对象引用,手动装箱就是使用包装类的构造方法,让基本数据类型作为构造方法的参数
Integer整数类,Character字符类,等等包装类
这些包装类都提供了很多种种方法,详细可以看jdk教程
Java String类String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。
String类位于java.lang包下,是Java语言的核心类,提供了字符串的比较、查找、截取、大小写转换等 *** 作;Java语言为“+”连接符(字符串连接符)以及对象转换为字符串提供了特殊的支持,字符串对象可以使用“+”连接其他对象。
字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。
String 中常用的方法字符串大量用于我们的程序中,所以程序专门提供了字符串类,内有大量实用的方法
创建字符串对象两种方式的区别 直接赋值方式创建对象直接赋值方式创建对象是在方法区的常量池
String str="hello";//直接赋值的方式通过构造方法创建字符串对象
通过构造方法创建字符串对象是在堆内存
String str=new String("hello");//实例化的方式String 为什么不可变
String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了
String 类源码中有一个char数组,并且这个 char 数组是被final修饰的。因为数组一旦创建长度不可变。并且被final修饰的引用一旦指向某个对象之后,不可在指向其它对象,所以String是不可变的!
源码开头如下:
public final class String implements java.io.Serializable, Comparable, CharSequence { private final char value[];
三种有关字符串的类引用:面试题:String为什么不可变?StringBuffer/StringBuilder为什么是可变的?
java.lang.String:一般作为简单字符串类型
java.lang.StringBuffer:字符串缓冲区
java.lang.StringBuider:字符串缓存区
StringBuffer 字符串缓冲类在实际应用中,经常会遇到对字符串进行动态修改。这时候,String类的功能受到限制,而StringBuffer类可以完成字符串的动态添加、插入和替换等 *** 作
对StringBuffer的修改,是直接的,不会创建多余的对象
1、这三个类的区别有两个方法,运行速度和线程安全。
首先说运行速度也就是执行速度,在这方面的快慢为 StringBuilder > StringBuffer >String.
String 最慢的原因是:String 为字符串的常量而 StringBuilder 和 StringBuffer 是字符串的变量,String 一旦创建之后是不可更改的,而 StringBuilder 和 StringBuffer 是变量是可以更改的。
Java中对String对象进行的 *** 作实际上是一个不断创建新的对象并且将旧的对象回收的一个过程,所以执行速度很慢。
而StringBuilder和StringBuffer的对象是变量,对变量进行 *** 作就是直接对该对象进行更改,而不进行创建和回收的 *** 作,所以速度要比String快很多。
参考:Java常用类(二)String类详解
Random随机类相关推荐阅读:
- Java—String,StringBuffer,StringBuilde区别和 *** 作
此类用来产生随机数,位于.util包中,所以需要手工导包
Date时间类日期类中封装了有关日期和时间的信息,类 Date 表示特定的瞬间,精确到毫秒。用户可以通过调用相应的方法来获取系统时间或设置日期和时间
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)