Java教程

Javase学习笔记string、异常

本文主要是介绍Javase学习笔记string、异常,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

string

字符串放在字符串常量池中,双引号括起来的字符串是不可变的
int i=100 i变量保存的是100这个值
string s =“abc”s变量中保存的是字符串对象的内存地址
输出引用会自动输出对象的内存地址吗?不,会自动调用tostring方法
在这里插入图片描述

创建了三个对象,字符串常量池中有一个hello,堆内存中有两个string对象
byte数组转换为字符串
在这里插入图片描述

char数组转换为字符串
在这里插入图片描述
string类的方法
char charAt(int index)
返回的是下标
compareTo 比较字符串 如果两个相等返回0
如果不想等返回-1代表前小后大 返回1代表前大后小,按照字典顺序比较
contains方法判断前面的字符串中是否包含后面的子字符串
endswith判断当前字符串是否已某个字符串结尾
equalsignorecase方法,忽略大小写的判断是否相等
getbytes将字符串对象转换成字节数组
indexof,判断子字符串在当前字符串中第一次出现的索引,lastindexof
isempty判断是否为空
replace方法,target,replacement
substring 截取字符串,参数是起始下标,结束下标之前
startwith
字符串转换为char数组,将字符串转换为char数组
tolowercase转换为小写touppercase大写
valueof,静态方法,作用将非字符串换为字符串,如果是对象,输出的是字符串地址
trim去除字符串前后空白
stringbuffer
字符串频繁拼接,会导致空间大量浪费,拼接用append,如果stringbuffer满了,会自动扩容
stringbuffer底层实际上是一个byte数组,向stringbuffer中存实际存在byte数组里面了,stringbuffer初始化容量为16
不会产生新对象,里面有数组拷贝方法,原数组会被垃圾回收器回收

如何优化stringbuffer性能
创建的时候尽可能给定一个初始化容量,最好减少底层容量的扩容次数,给一个大一些的初始化容量
stringbuilder也可以完成字符串的拼接
区别
sb中的方法都有synchronized关键字修饰,表示sb在多线程环境下的运行是安全的

基本类型对应的8个包装类

8种包装类属于引用数据类型,父类为object
为什么提供包装类

在这里插入图片描述
装箱和拆箱操作
在这里插入图片描述
获取最大值和最小值
在这里插入图片描述
自动拆箱和装箱
在这里插入图片描述
双等号不会触发自动拆箱装箱机制
缓存优点缺点:效率高,耗费内存

在这里插入图片描述
parse方法,把字符串转换为基本类型。
integer方法,转换为二进制、十进制、八进制、十六进制

java对日期的处理

date日期转换为字符串
在这里插入图片描述

把字符串转换成date类型
在这里插入图片描述
可以计算一个方法的执行时间

在这里插入图片描述
在这里插入图片描述

数字格式化

decimalformat专门负责数字格式化
在这里插入图片描述
0代表不够时补0
bigdecimal
大数据,精度极高,属于java对象,专门用在财务软件当中
随机数
在这里插入图片描述
枚举类型
枚举:一枚一枚可以列举出来的,才建议使用枚举类型
枚举中的每一个值可以看做是常量
在这里插入图片描述
结果只有两种,用bool类型即可,如果超过两种,使用枚举

异常

异常以类的形式存在,每一个异常类都可以创建异常对象
编译时异常:受检异常,受控异常
运行时异常:非受检异常,非受控异常
处理方式
第一种,在方法声明的位置上,使用throws关键字,向上抛
第二种,使用try…catch语句进行异常的捕捉
java 异常中如果一直向上抛给main方法,会终止程序的执行
只要异常没有捕捉,而是采用上报的方式,此方法的后续代码不会执行
try语句某一行出现异常,后续的代码不会执行
catch可以写多个,可以根据不同的异常精确地处理
catch写多个的时候,异常的顺序必须是从小到大
jdk8新特性里面,catch里面可以将异常类型用或的关系写起来
如果希望调用者处理,使用throws,其余使用trycatch

异常的常用方法
getmessage方法获取异常简单的描述信息
printstacktrace方法打印异常追踪的堆栈信息 采用异步线程的方式打印
finally子句,一定会执行,假如try里面有异常,也会执行
try和finally直接连用,没有catch是可以的
在这里插入图片描述
但是退出java虚拟机之后,finally里面的代码就不执行了
exit可以
finally 的题
在这里插入图片描述
final finalize finally的区别
final关键字,表示最终的,不变的
finally关键字,和try联用,使用在异常处理当中
finalize 是一个object类方法的名字,作为方法名出现,是标识符
垃圾回收器gc负责调用的
java中自定义异常

在这里插入图片描述

先自定义异常,之后可以在程序中通过throw new的方式手动抛出异常
方法重写的时候,重写之后的方法不能比之前的方法抛出更多或者更宽泛的异常(编译时异常)
运行时异常可以抛

异常的例子
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
作业思路:先定义父类,武器类,定义两个接口moveable和shootable,创建五个武器子类继承武器类,并根据武器类型实现不同的接口
定义军队类,动态初始化创建军队,实现addweapon方法(for循环,数组为空的时候就可以添加),还有攻击和移动的方法(for循环,如果数组中的元素instanceof 是攻击或者移动,就向下转型,调用接口方法)
编写测试程序类test,构建军队,创建武器对象,添加武器,调用攻击和移动方法

这篇关于Javase学习笔记string、异常的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!