java笔记14|实用类

时间:2021-6-19 作者:qvyue

1. 包装类:

(1) 在JAVA当中,JDK为基本数据类型设计了相应的包装类,把基本数据类型变为了一个引用数据类型,那么他就是包装类型

(2) 学习包装类型的过程当中,要观察其规律

① 命名规律:首字母由基本数据类型的小写变为大写,除了Integer和Character之外

② 对于数值,包装类型的构造和方法当中,如果用了不属于数值的书写方式,会报NumberFormatException异常

③ 包装类型的字符串参数构造,不可以把数值类型,例如L,D,F加入字符串

④ 字符的包装类型,只有其本身类型参数的构造,没有字符串类型参数的构造

⑤ 布尔类型的包装类,只有一种情况下才会返回true,就是不区分大小写的true字符串;否则,输入任意其他类型,或null类型,那么结果都为false;

⑥ 包装类型的方法:

1) XxxValue:包装类变为基本数据类型,这是一个普通的方法,即该方法必须通过包装类型的对象来进行调用,每一种包装类型,都有自己各自对应的方法

2) 转字符串的三种方式

3) 字符串变为基本数据类型,调用包装类的静态方法:例如parseInt(Str)、parseLong(Str)……

4) Xxx.valueOf(xxx):把基本数据类型或者字符串变为包装类型

5) 自动装箱和自动拆箱

6) 在某些框架中,会去针对自己的框架设计相应的包装类型,比如hadoop当中TextIntWriteable……

7) 在web工程当中的实体类,其中作为参数的数值类型,通常都是定义为包装类,因为包装类型,有null值

2. 字符串:对该源码感兴趣的同学可以参考openJDK

(1) 字符串直接已双引号赋值,那么该字符串即相当于一个static常量(内存唯一),常量之间是相等的;那么new出来的String对象是存在于堆内存当中的,所以他不可以直接和常量比较

(2) intern():是将当前字符串对象,到常量池当中寻找是否有相同的常量,如果有,则返回该常量,如果没有,则新建一个常量

(3) string的方法:

① 获取字符串长度

② 必须使用equals判断字符串是否相等:

1) 长度相等

2) 字符串的本质其实是一个char类型的数组

3) 依次比较两个字符串的char元素是否相等,只要有一个不等,则返回false

4) 如果存在字符串常量,建议把常量作为方法调用者

③ 操作字符串元素

1) 判断元素位置

2) 截取字符串

3) 清除两端空格

4) 替换元素:replaceAll的匹配规则,可以是正则表达式

5) 切割字符串:“点”“”需要转义

6) 字符串的编码集转换

7) 字符串的本质是数组,那么字符串的拼接效率,请参考ArrayList

8) StringBuffer/StringBuilder:是一种高效扩展string的对象

a. StringBuffer的append是有同步锁的synchronized,在多线程使用的情况下,他是安全的,但是效率相对低

b. StringBuilder是没有同步锁的,所以在多线程使用的情况下,StringBuilder是不安全的

c. 在单线程的情况下,用哪个都一样,在实际的WEB开发当中,我们的应用,通常是被分配到某一个单独的线程里;除非他们处于常量状态,或者单例当中,必须要使用stringBuffer。

3. 时间

(1) 使用java.util.Date对象获取当前系统时间

(2) 定义时间格式

(3) 字符串和时间的转换

(4) GetTime():1970-01-01 00:00:00:000到当前系统时间的毫秒数

(5) 获取年月日

(6) 使用Calendar的原因:

① 因为程序当中,程序的执行,是存在时间消耗的

② 如果用Date,那么在不断new的过程或在对象的传递当中,是会造成同一个对象的时间误差的

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。