String StringBuilder StringBuffer 包装类 Date 类 枚举类
String,StringBuilder,StringBuffer直接的区别:
String 不可变长的字符序列
StringBuilder 可变长的字符序列,线程不安全的,效率较高
StringBuffer 可变长的字符序列,线程安全的,相对效率较低
执行效率: StringBuilder>StringBuffer>String
推荐使用:
- String: 单线程,对字符串没有大量改变内容,灵活操作字符串推荐使用
- StringBuilder:单线程,对字符串进行大量的改动操作,推荐使用StringBuilder
- StringBuffer: 多线程,对字符串进行大量的改动操作,推荐使用StringBuffer
String
String s=new String(); System.out.println(s);//字符串可以被直接打印,对象和数组是不可以直接打印的 System.out.println(s.length()); //字符串中字符的个数
String(char [ ] value) 参数字符串数组的内容创建字符串
char[] arr={'a','b','c','d','e'};
String(char [ ] value, int offset, int count)获取参数字符数组中的某一部分创建字符串对象
String s2=new String(arr,1,3);
字节数组转为字符->字符编码格式问题(字符集合)
System.out.println("国".getBytes("UTF-8").length); byte[] bytes="火影忍者".getBytes();
String(byte[] bytes, String charsetName) 指定字符编码格式进行转换
System.out.println(new String(bytes,"GBK"));
String(byte[] bytes, int offset, int lengthe)
System.out.println(new String(bytes,6,6));
String常用的常用方法
public static void main(String[] args) { String s="heikoverygood"; String s1="Heikotverygood"; //索引 System.out.println(s.charAt(8)); //首位比较大小 System.out.println(s.compareTo(s1)); //字符串拼接 System.out.println(s.concat(s1)); //指定字符串是否是 System.out.println(s.contains("heik")); //是否指定后缀结束 System.out.println(s.endsWith("good1")); //是否指定前缀开始 System.out.println(s.startsWith("he")); System.out.println("---------------"); char []arr=new char[4]; s.getChars(5, 9, arr, 0);//从第5个字符到第9个字符抽取到char这个数组上 System.out.println(arr); // int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引 System.out.println(s.indexOf("eiko",1)); System.out.println(s.lastIndexOf("v")); //将e换成其他字母 System.out.println(s.replace("e", "E")); System.out.println(s); //根据指定分隔符分隔字符串 System.out.println(Arrays.toString(s.split("i"))); //截取第3-6个字符 System.out.println(s.substring(3,6)); //字符串变字符数组 System.out.println(Arrays.toString(s.toCharArray())); //转成大写 System.out.println(s.toUpperCase()); //去除前后空格 System.out.println(" 哈哈哈哈哈 ".trim()); //参数转换成字符串 System.out.println(String.valueOf(123)); }
StringBuilder 常用方法
public static void main(String[] args) { //StringBuilder() 默认构建初始容量为16个大小 StringBuilder sb=new StringBuilder(); //容量大小 System.out.println(sb.capacity()); //sb.append(false) 追加 StringBuilder sb2=sb.append(false); System.out.println(sb==sb2); sb.append("abcd"); System.out.println(sb); //删除5-8位的字符 sb.delete(5, 8); System.out.println(sb); //第5位插入"Yes" sb.insert(5, "Yes"); System.out.println(sb); //前后字符反转,顺序颠倒 sb.reverse(); System.out.println(sb); //返回一个字符串,表示这个序列中的数据。 System.out.println(sb.toString()); }
包装类
int 的包装类是 Integer
char 的包装类是 Character
转换问题: 自动拆装箱
自动装箱: 从基本类型—>包装类型
自动拆箱: 从包装类型—>基本类型
有了int为什么包装类型Integer?
- Integer类,类中提供很多功能,可以灵活操作数据
- 容器等内部只能存储引用数据类型的数据,自动装箱使用可以的非常灵活
- 从数据库中拿到的数据库
有了Integer为什么还要int??
引用数据类型存储对象类型数据,new的数据在堆中,对象数据比较消耗资源,考虑效率问题使用基本数据类型更合适
Date 类
类Date代表一个特定的瞬间,毫秒精度; java.util.Date 包下的日期类
public static void main(String[] args) throws ParseException { Date date=new Date(); System.out.println(date); //获得毫秒 long l=date.getTime(); System.out.println(l); Date date2=new Date(1578643898755L); System.out.println(date2); System.out.println(date.before(date2)); System.out.println(date.toString()); System.out.println("-------------------------------"); //日期格式转换 SimpleDateFormat Simple=new SimpleDateFormat(); SimpleDateFormat simple2=new SimpleDateFormat("yyyy年MM月dd日 E a hh:mm:ss"); Date date3=new Date(); //format(Date) 日期对象转为字符串 System.out.println(simple2.format(date3)); //parse(String) 字符串转为日期对象 Date s=simple2.parse("2020年01月10日 星期五 下午 04:35:29"); System.out.println(s); }
控制台: Fri Jan 10 20:25:57 CST 2020 1578659157249 Fri Jan 10 16:11:38 CST 2020 false Fri Jan 10 20:25:57 CST 2020 ------------------------------- 2020年01月10日 星期五 下午 08:25:57 Fri Jan 10 16:35:29 CST 2020
其中H代表24小时制的小时, M代表月份, S代表毫秒
枚举类
枚举类: 定义一种事物的所有可能
java所有中的枚举类都隐式的继承自java.lang.Enum
定义枚举类,不适用class,使用enum关键字定义
枚举类中的字段,相当于当前枚举类型的一个实例
枚举类中的字段,相当于class类中被 public static final修饰
import java.util.Arrays; public class EnumDemo001 { public static void main(String[] args) { Week w=Week.SUNDAY; System.out.println(w.name());//获取枚举类型引用存储的枚举字段值 System.out.println(w.ordinal());//枚举类中的字段索引位置 //获取枚举中所有的字段值,返回一个数组 Week [] arr=w.values(); System.out.println(Arrays.toString(arr));//需要导包 switch(w){//switch可以使用枚举 case MONDAY: System.out.println("星期一"); break; case TUESDAY: System.out.println("星期二"); break; case SUNDAY: System.out.println("星期天"); break; } } } enum Week{ MONDAY,TUESDAY,SUNDAY;//也可以竖着写 }
控制台: SUNDAY 2 [MONDAY, TUESDAY, SUNDAY] 星期天
- 点赞 1
- 收藏
- 分享
- 文章举报
- Java包装类、File类、枚举类举例
- 基本数据类型的包装,Date,枚举类以及String类
- 黑马程序员_JAVA学习日记_JAVA中API中数据类型包装类(Integer),System,Runtime,Date
- Java API(Math类和Random类 包装类 Date类、Calendar类和DateFormat类)
- JAVA的String、StringBuilder、StringBuffer、包装类、日期Date类、枚举类(Enumeration)
- String 类、包装类,Date日期类
- Java学习--(十一)包装类,Date,SimpleDateFormat,Calendar类的使用
- Java的Object、Date、System、StringBuilder、包装类详解
- Java基础——常用类(Date、File)以及包装类
- 正则表达式,Date,StringBuilder,StringTest,包装类
- 10、匿名内部类、枚举类、日期、Math、Random、String、equals、StringBuffer、包装类、对象数组、克隆,标准输出1
- 基础笔记4(包装类,时间date. calendar
- 大数据学习--day15(常用类:Date--DateFormat--SimpleDateFormat--File--包装类)
- java中API中数据类型包装类(Integer),System,Runtime,Date
- 第十二章Object、Date、System、包装类
- 10、匿名内部类、枚举类、日期、Math、Random、String、equals、StringBuffer、包装类、对象数组、克隆,标准输出2
- 10、匿名内部类、枚举类、日期、Math、Random、String、equals、StringBuffer、包装类、对象数组、克隆,标准输出3
- Java常用类|数据类型包装类、Date、SimpleDateFormat 、Calendar 、Math
- javaSE(包装类,日期设置(date,Calendar))
- 【Date、DateFormat、Calendar、Math、System、包装类、正则表达式】常用API