Java 基础 15 Java 常用类,深入剖析
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
fer 类
StringBuffer 的特点和 StringBuilder 相似,都是在自身的数组上进行的修改,常用方法也一样。
不同点:
StringBuffer 的方法是线程安全的,StringBuilder 是非线程安全的
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),超过此范围不存常量池,在堆创建对象
[](
)装箱和拆箱
装箱与拆箱是基本数据类型和引用类型的相互转换。
装箱:基本数据类型转换为引用类型
如: Integer n = 200;
拆箱:引用类型转换为基本数据类型
如: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) | 退出系统 |
[](
)结束
================================================================
作业时间到:
简述 String 的主要方法有哪些
简述 String 和 StringBuilder 的区别
简述 StringBuilder 和 StringBuffer 的区别
输入邮箱和密码,进行登录验证:
1)判断邮箱和密码是否为空
2)判断密码不能小于 6 位
3)判断 @的位置在.之前
4)判断邮箱为 zhangsan@163.com,密码为 666666 就登录成功
5)截取 @前面的用户名,输出:欢迎, xxx
输入一个字符串,包含多个单词,单词之间以空格分隔;
要求将所有单词连接起来,并且首字母大写
如:输入 good good study
评论