JAVA常用类:

文章详细介绍了Java中String、StringBuffer和StringBuilder的区别,包括它们的可变性、线程安全性和执行效率。String是不可变的,而StringBuffer和StringBuilder是可变的,后者在单线程环境下性能更优。此外,文章还提到了异常处理,区分了编译时异常和运行时异常,强调了如何处理和避免这些异常。
摘要由CSDN通过智能技术生成

Stringbuilder 与 StringBuffer

String:不可变的字符序列

StringBuffer:可变字符序列,线程安全|同步的。 单线程使用

StringBuilder:可变字符序列,线程不安全|不同步。

执行效率:stringbuilder>stringbuffer>string

使用频率:string>stringbuilder>stringbuffer

String:String类表示字符串,java程序中所有的字符串文字,例如“abc”。都是作为此类的实例实现的。

String底层结构:

来自于父类的AbstractStringBuilder

Jdk8及之前的版本:private final char[] value;

Jdk8之后:private final byte[] value;

注意 :


1.如果某个类型的底层结构涉及到数组的使用,需要关注数组的初始容量+扩容机制

2.扩容机制 : stringbuilder和stringbuffer每次扩容原容量的2倍+2    int newLength = oldLength + oldLength + 2

String的对象的表示方式 :
   1.字符串文字  "...." -->在字符串常量池中
       String s1 = "xxx";
   2.new 创建String类型对象-->在堆内存中
       String s2 = new String("xxx");

GBK:1个汉字2个字节  UTF-8:1个汉字3个字节

异常:    

Throwable(throwable类是java语言中所有错误和异常的超类)

/ \

ERROR    Exception

| / \

由虚拟机脱出 编译时异常(检查时)    运行时异常

1.编译时异常:需要使用Try-catch语句进行捕获和处理,或者在方法的声明中使用throws关键字将异常声明抛出。

2.运行时异常:运行时异常是指在运行时才能够被检测到的异常,他们不需要在代码中进行强制性的处理或声明抛出。运行时异常通常表示程序的逻辑错误或者是错误的使用方式。

(运行时异常可以被捕获和处理,也可以用if等健壮性代码避免运行时异常。但这不是强制要求。如果对运行时异常进行显示处理,程序会在排除异常后终止执行。)

注意:

多个catch,异常类型小的在上面,类型大的在下面。

Finally中一般定义资源的关闭等相关代码。

常见的5中运行时异常:

  1. 空指针异常:java.lang.NullPionterException
  2. 类型转换异常:.ClassCastException
  3. 数组索引越界异常:.ArrayIndexOutOfBoundsException
  4. 数学异常:ArthmeticException
  5. 数组长度负数异常:NegativeArraySizeException

Data:

基本数据类型与包装类之间相互转换 :
   jdk5新特性 : 自动拆装箱

基本数据类型与包装类数据比较问题 :

在数据值相等的前提下 :
    1.两个int类型比较,值相等就相等
    2.两个new Integer,只要是new就是新的地址,肯定不相等
    3.int与Integer比较,包装类会先发生自动拆箱,然后两个基本数据类型比较值相等就相等
    4.Integer与 new Integer比较,new参与肯定不相等
    5.两个Integer比较,如果值在[-128,127]之间,返回缓冲区对象相等,如果不再返回之内,返回new Integer不相等。

注意 : Short,Integer,Long类型的valueOf方法内部存在[-128,127]返回缓冲区对象。所以先判断是否返回缓冲区对象。

Date:时间日期类型:

SimpleDateFormat:允许格式化(日期->文本)、解析(文本->日期)

  1. 创建simpledateformat的对象:使用默认的模式|模板,指定模式|模板。
  2. 解析(文本->日期)

(data中大部分构造器弃用)-->可以使用LocalDate存放年月日信息。

Math:数学相关类型:

Math类包含用于执行基本数值运算的方法,例如初等指数、对数、平方根和三角函数。

static double random()   返回一个double带正号的值,大于或等于0.0且小于1.0

[min,max]  (int)(Math.random()*(max-min+1)+min)

枚举Enum:

枚举也是类。

一种事物的所有情况|所有可能,一个类的所有实例

枚举类的实例是由枚举类型内部提供,不允许外部构建
java中所有的枚举类型都默认隐式的继承自java.lang.Enum
枚举类中可以定义 : 字段,属性,功能,构造器....
枚举类中的字段,默认为当前枚举类型的实例 ,默认被public static  final修饰。


枚举类型的字段根据枚举类名.字段名获取使用
枚举类的构造器默认私有化。

File:

        文件和目录路径名的抽象表示。

注意:Java中路径分隔符可以使用 /  //  \\

Java中使用相对路径是,默认根路径是当前所在项目的根目录。

IO流:

读写文件内部的内容,上传下载、拷贝文件、拷贝文件夹。

流:就是管道,以先入先出的方式进行流动。管道中的数据时一次性读写。

流的分类:

流向:输入流、输出流;

操作单元:字节流 、字符流;

功能:节点流、处理(功能)流。

所有分类都是相辅相成。

字节输出流:outputstream这个抽象类是代表字节输出流的所有类的超类。

根据目的地选择节点流:

当目的地为字节数组:ByteArrayOutPutStream 字节数组输出流

目的地为文件:FileOutPutStream 文件字节输出流

注意:如果目的地文件不存在,系统会自动创建目的地文件,但是目的地文件所在路径(文件夹)不会自动创建。

Try-with-resources:对try中创建的资源在使用完毕之后进行关闭,要求资源的类型必须实现了AutoCloseable接口

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值