教学视频:https://edu.51cto.com/course/5667.html?source=so
目录
基础类库
日期操作类
数字操作类
比较器
基础类
StringBuffer、StringBuilder、String类
String类由哪些特点?
字符串常量就是String类的匿名对象,一旦字符串定义则不可改变;
String类对象可以使用字节复制或者是构造方法实例化,前者可以自动入池,不产生垃圾;
在实际的开发之中,肯定都要求使用到String类,可是String类有一个天生的短板,不可改变,如果要经常修改的环境下只能够使用StringBuffer;
,String不适合循环修改,肯定改用StringBuffer。
范例:利用StringBuffer修改字符串
下面的代码示使用StringBuffer连接用append(),可以改变内容,说明StringBuffer可以改变你内容;
要是String连接用+,但是不能循环修改。否则用StringBuffer
都是CharSequence接口的子类,所以String或StringBuffer向上转型,例如
输出:
String或StringBuffer能互相转换吗?这两类对象可以用以下原则完成
String->StringBuffer
1.利用StringBuffer 的构造方法:
2.StringBuffer的apeend()方法接收
StringBuffer-> String
1.所以类都有存在toString()方法,利用此方法可以将StringBuffer变为
2.没有类的时候,利用+实现实现所以数据类型向String转换
StringBuffer有的方法很简便,String中没有的方法,如下例子:
这个中间追加在String不能的,还有
StringBuffer最大特点,String不好实现,记住,例如
StringBuffer在JDK1.0提供,在JSK1.5置提供StringBuilder类,这两个类在文档里面都一样,就是仔细看文字解释是有差别的,
看StringBuffer的源码和StringBuilder源码的区别:StringBuffer属于线程安全操作,但性能不高。StringBuilder反之,属于非线程安全操作,性能高。
面试StringBuffer、StringBuilder、String区别:https://mp.csdn.net/postedit/81668301
多个线程访问一个资源时使用StringBuffer。
Runtime类(不是重点,但会面试)
范例:取得内存空间大小
面试题:java如何调正可用内存的大小?
所有的进程启用的时候内存都是分配好的,如果内存不够,找虚拟内存去。
调内存大小比较麻烦,看看java内存分配,
java中的内存划分主要有两个组成部分:
堆内存:保存实例化对象的内容,在每个JVM进程中,对象的堆内存空间都会有垃圾收集器自动回收。
非堆内存(Eden+FrontSpace+To Space):主要产生新的对象。
如果要想调整内存空间的大小就是堆内存空间,它的调整有如下三个参数:
范例:设置参数(在执行的时候输入参数,记事本编写的方式)
用eclipse方式,代码右键:
在执行下代码:
System类
堆这个类并不陌生,这个会想到System.out.print()\System.in
范例:利用此方法实现操作花费的时间统计
对象克隆
范例:实现克隆的操作
只有写上接口Cloneable才表示此类对象可以克隆
或者:
运行,值都改变了:
日期操作类
数字操作类
Math类
实现四舍五入
范例:实现四舍五入:
执行:
四舍五入,但是整个代码过程里会发现一个小数位统一没有了,此时程序代码不可能被现实开发所使用
范例:pow()的使用
有效的梳理操作
范例:实现准确的数学操作()
Random类(随机数)
范例:观察
多次与输出都是随机(没有超过100):
在看看
执行():
范例:设置种子数:就是随机生成有种子的数字
这个执行会生成有5、6、7的数字
多执行几遍看看:看不啥变化,就是含有
执行:不能超过37
运行结果:
比较器
数组操作类:Arrays(面试笔试最多)
二分查找必须有序
前提也是排序
若是的123换位置了,就成
直接对数组进行排序的操作;
比较器Comparable(核心)
没有语法错误,但是运行就报错
有可能出现以下的错误信息