写点什么

Java 基础 15 Java 常用类,深入剖析

用户头像
极客good
关注
发布于: 刚刚

String 和 StringBuilder 的区别:


  • String 的字符串是不可修改,如果修改会创建新字符串,浪费内存。

  • StringBuilder 的字符串是可以修改的,不会创建新字符串。

[](

)创建方法


创建空值的对象


StringBuilder strb = new StringBuilder();


创建有默认值的对象


StringBuilder strb = new StringBuilder("默认值");

[](

)StringBuilder 常用方法


转换为 String


String toString()


追加


StringBuilder append(String str)


替换


StringBuilder replace(int start,int end,String newS)


插入


StringBuilder insert(int offset,String s)


删除


StringBuilder delete(int start,int end)


反转


StringBuilder reverse()


[](


)StringBuf


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


fer 类




StringBuffer 的特点和 StringBuilder 相似,都是在自身的数组上进行的修改,常用方法也一样。


不同点:


  1. StringBuffer 的方法是线程安全的,StringBuilder 是非线程安全的

  2. StringBuilder 的执行效率高于 StringBuffer


[](


)包装类


=================================================================


Java 中的 8 种基本数据类型不是引用类型,也不能创建对象,这就违背了 Java 是完全面向对象语言这一前提。Java 推出 8 个包装类,把基本类型包装成对象。


[](


)包装类是什么




包装类包装了 8 种基本数据类型,把基本数据类型看做对象进行处理


| 基本类型 | 包装类 |


| --- | --- |


| int | Integer |


| byte | Byte |


| short | Short |


| long | Long |


| float | Float |


| double | Double |


| char | Character |


| boolean | Boolean |


创建方法


Integer num1 = 1000;



Integer num2 = new Integer(1000);


面试题:下面代码的结果是:


Integer n1 = 100;


Integer n2 = 100;


System.out.println(n1 == n2); true


Integer n3 = 1000;


Integer n4 = 1000;


System.out.println(n3 == n4); false


分析:整数常量也可以保存到常量池中,取值范围是 byte 范围(-128~127),超过此范围不存常量池,在堆创建对象



[](


)装箱和拆箱




装箱与拆箱是基本数据类型和引用类型的相互转换。


  1. 装箱:基本数据类型转换为引用类型


如: Integer n = 200;


  1. 拆箱:引用类型转换为基本数据类型


如:Integer n = 200;


int m = n; //拆箱


[](


)字符串与基本类型的转换




字符串转换为 int 类型


String s = "1234";


int num = Integer.parseInt(s);


其他类型:


Float.parseFloat(字符串) 转换为 Float


Double.parseDouble(字符串) 转换为 Double


...


int 类型转换为字符串


String s = String.valueOf(num);



int num = 20;


String s = "" + num;


[](


)日期和时间处理


=====================================================================


java.util 包下面提供了一些时间处理相关的 API。


[](


)Date 类




处理日期时间


创建方法 1:


Date date = new Date(); 获得当前的时间


创建方法 2:


Date date = new Date(long); 指定时间的 1900-1-1 到现在的毫秒数


常用方法


int getYear() 获得年


int getMonth() 获得月


int getDate() 获得天


int getHours() 获得小时


int getMinutes() 获得分钟


int getSeconds() 获得分钟


void setYear(int year) 设置年


...


[](


)Calendar 类




日历类可以获得和修改日期的某个部分


创建 Calendar 对象


Calendar calendar = Calendar.getInstance();


常用方法:


get(日期类型) 获得日期的某个部分


Calendar.YEAR


Calendar.MONTH 月份从 0 开始


....


set(日期类型,数值) 设置日期的某个部分


add(日期类型,数值) 实现日期某个部分的追溯


[](


)SimpleDateFormat 类




对日期进行格式化


创建对象


SimpleDateFormat sdf = new SimpleDateFormat("日期格式字符串");


日期格式字符串,如:"yyyy-MM-dd hh:mm:ss"


yyyy 代表 4 位的年份


MM 代表 2 位的月份


dd 代表 2 位的日期


hh/HH 12 小时制/24 小时制


mm 代表分钟


ss 代表秒钟


a 代表 AM/PM


将日期进行格式化


String format(Date 对象);


将字符串转换为日期


Date parse(String 对象);


[](


)其他常用类


===================================================================


[](


)Math 类




数学运算


| 作用 | 用法 |


| --- | --- |


| 求绝对值 | Math.abs(-10) --> 10 |


| 四舍五入取整 | Math.round(2.6) --> 3 |


| 求两个数最大值 | Math.max(2,10) --> 10 |


| 求两个数最小值 | Math.min(2,10) --> 2 |


| 随机数 | Math.random() --> 0 ~ 1 之间任意小数 |


| 求平方根 | Math.sqrt(16) – > 4 |


| 求幂 | Math.pow(2,3) – > 8 |


[](


)Random 类




获得随机数


Random random = new Random();


random.nextInt(100); //0 ~ 100 间随机整数


[](


)Runtime 类




系统运行时,获得和系统有关的信息


Runtime rt = Runtime.getRuntime();


| 作用 | 用法 |


| --- | --- |


| freeMemory() | 获得系统空闲内存数 |


| totalMemory() | 获得总内存数 |


| availableProcessors() | 获得处理器个数 |


| gc() | 调用垃圾收集器 |


| exec(String cmd) | 调用系统程序 |


| exit(int status) | 退出系统 |


PS:GC(Garbege Collector)垃圾收集器,JVM 会单独开一线程,定时扫描内存中没有使用的对象。


GC 的启动没有特定的时间,如果想唤醒 GC,可以调用 gc 方法。


String s = new String("xxxx"); //新的 String 对象


s = null; //没有引用指向的 String 对象会被回收


[](


)System 类




| 作用 | 用法 |


| --- | --- |


| currentTimeMillis() | 获得当前系统时间的毫秒数 |


| gc() | 调用垃圾收集器 |


| exit(int status) | 退出系统 |


[](


)结束


================================================================


作业时间到:


  1. 简述 String 的主要方法有哪些

  2. 简述 String 和 StringBuilder 的区别

  3. 简述 StringBuilder 和 StringBuffer 的区别

  4. 输入邮箱和密码,进行登录验证:


1)判断邮箱和密码是否为空


2)判断密码不能小于 6 位


3)判断 @的位置在.之前


4)判断邮箱为 zhangsan@163.com,密码为 666666 就登录成功


5)截取 @前面的用户名,输出:欢迎, xxx


  1. 输入一个字符串,包含多个单词,单词之间以空格分隔;


要求将所有单词连接起来,并且首字母大写


如:输入 good good study

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
Java基础15 Java常用类,深入剖析