java se-常用类

一、String

String类是不可变类,就是说String对象声明后,将不可修改

只要采用双引号赋值字符串,那么在编译期将会放在方法区中的字符串的常量池,如果是运行时对字符串相加或者相减会放在堆中。

String s1="abc"和String s2=new String("abc")

如果是采用双引号引起来的字符串常量,首先会到常量池中去查找,如果存在就不再分配,
如果不存在就分配,常量池中的数据是在编译期赋值的.
关于 s3 s3 采用的是 new 的方式,在 new 的时候存在双引号,所以他会到常量区中查找
abc ”,而常量区中存在“ abc ”,所以常量区中将不再放置字符串,而 new 关键子会在
堆中分配内存,所以在中会创建一个对象 abc s3 会指向 abc
面试题
String s1 = new String("hello") ;
String s2 = new String("hello") ;以上创建了几个对象?
大家会看到创建了 3 个对象,堆区中 2 个,常量池中 1 一个
String常用方法简介
String 已经重写了toString 方法输出的不是对象的内存地址,而是字符串本身
1. endsWith :判断字符串是否以指定的后缀结束
2. startsWith ,判断字符串是否以指定的前缀开始
3. equals ,字符串相等比较,不忽略大小写
4. equalsIgnoreCase ,字符串相等比较,忽略大小写
5. indexOf ,取得指定字符在字符串的位置
6. lastIndexOf ,返回最后一次字符串出现的位置
7. length ,取得字符串的长度
8. replaceAll ,替换字符串中指定的内容
9. split ,根据指定的表达式拆分字符串
10. substring ,截子串
11 . trim , 去前尾空格
12. valueOf ,将其他类型转换成字符串
13..charAt指定索引处的char值
14.getBytes将字符串对象转换成字节数组
15.replace(old,new)
16.toCharArray字符串转换为char数组
17.tolowerCase转换成小写/toUpperCase转换成大写
使用String的注意事项
因为 String 是不可变对象,如果多个字符串进行拼接,将会形成多个对象,这样可能会造成内
存溢出,会给垃圾回收带来工作量,如下面的应用最好不要用 String
正则表达式: 可以描述特定的字符模式
如: ”a{2}” 表示由两个字符“a”构成的字符串,等同于普通字符串“ aa ”,
”\d” 代表任意一个数字 0~9
\D 代表所有的非数字, \w 代表所有的英文字母, \W 代表所有的非英文字母。
二、StringBuffer和StringBuilder
StringBuffer 称为字符串缓冲区,它的工作原理是:预先申请一块内存,存放字符序列,如果
字符序列满了,会重新改变缓存区的大小,以容纳更多的字符序列。StringBuffer 是可变对象,
这个是 String 最大的不同
用法同 StringBuffer,StringBuilder 和 StringBuffer 的区别是 StringBuffer 中所有的方法都是同
步的,是线程安全的,但速度慢,StringBuilder 的速度快,但不是线程安全的

二、日期类

常用日期类:

java.util.Date
java.text.SimpleDateFormat
java.util.Calendar
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class DateTest01 {

public static void main(String[] args) throws Exception{
//获取系统当前时间(精确到毫秒的系统当前时间)
Date today = new Date();
//import java.util.Date类的toString方法已经被重写了
//输出的应该不是一个对象的内存地址,应该是一个日期的字符串
System.out.println(today);

//格式化日期SimpleDateFormat专门用来日期格式化的
//yyyy年
//MM月
//dd日
//HH时
//mm分
//ss秒
//SSS毫秒
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//format参数加日期就会返回一个字符串
System.out.println(sdf.format(today));


//取得 2000-10-01 为星期几
//parse将String转换成date
Date d = new SimpleDateFormat("yyyy-MM-dd").parse("2000-10-01");
c.setTime(d);
System.out.println(c.get(Calendar.DAY_OF_WEEK));
} 
}

三、数字类

常用数字类:

java.text.DecimalFormat java.math.BigDecimal
DecimalFormat我们经常要将数字进行格式化,比如取2位小数,这是最常见的。Java 提供DecimalFormat类,帮你用最快的速度将数字格式化为你需要的样子
import java.text.DecimalFormat;
public class DecimalTest01 {
public static void main(String[] args) throws Exception{
//加入千分位,保留两位小数
DecimalFormat df = new DecimalFormat("###,###.##");
System.out.println(df.format(1234.23452));
//加入千分位保留 4 位小数,不够补零
System.out.println(new DecimalFormat("###,###.0000").format(12345.12));
} 
}
BigDecimal 可以精确计算,特别是财务数据
import java.math.BigDecimal;

public class BigDecimalTest01 {
public static void main(String[] args) throws Exception{
BigDecimal v1 = new BigDecimal(10);
BigDecimal v2 = new BigDecimal(20);
//相加运算
BigDecimal v3 = v1.add(v2);
System.out.println(v3);
} 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值