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?

  1. Integer类,类中提供很多功能,可以灵活操作数据
  2. 容器等内部只能存储引用数据类型的数据,自动装箱使用可以的非常灵活
  3. 从数据库中拿到的数据库

有了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]
星期天

String StringBuilder StringBuffer 包装类 Date 类 枚举类相关推荐

  1. String StringBuilder StringBuffer

    1,String 是不可变类 immutable 不可变类:所谓的不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值.如JDK内部自带的很多不可变类:八大包装类和String等.     ...

  2. String StringBuilder StringBuffer三者之间的区别~~~

    String StringBuilder  StringBuffer三者之间的区别~~~ String是字符串常量,它是典型的immutable类,被声明final class,所有的属性都是fina ...

  3. String ,StringBuilder,StringBuffer的区分

    String ,StringBuilder,StringBuffer的区分 一.区别 String是字符串常量,而StringBuffer和StringBuilder是字符串变量.由String创建的 ...

  4. Java 集合 --- String, StringBuilder, StringBuffer

    Java 集合 --- String, StringBuilder, StringBuffer String String的声明方式 String的不可变性 对比两个String StringBuil ...

  5. String,Stringbuilder,Stringbuffer及正则表达式

    掌握String StringBuilder StringBuffer类的区别 一.String String是不可变类,一旦String对象被创建之后,包含对象中的字符串序列都是不可改变的,直到类被 ...

  6. String , StringBuilder , StringBuffer

    String 首先从String底层看起 从底层代码被final修饰,我们能看出来,String是只读字符串,他的成员方法也都默认为final方法.所以String所引用的字符串内容不能被改变 Str ...

  7. stringbuffer常用方法_Java 处理字符串常用的类:String StringBuilder StringBuffer

    在Android/Java开发中,用来处理字符串常用的类有3种: String.StringBuilder.StringBuffer. 它们的异同点: 1) 都是 final 类, 都不允许被继承; ...

  8. String StringBuilder StringBuffer 对比 总结得非常好

    转自:http://www.iteye.com/topic/522167 作者:每次上网冲杯Java时,都能看到关于String无休无止的争论.还是觉得有必要让这个讨厌又很可爱的String美眉,赤裸 ...

  9. String Stringbuilder StringBuffer的区别和应用

    1.可变与不可变 1) String类中使用字符串数组来保存字符串.因为有final修饰,所以,String对象是不可变的 private final char vakue[]; 2) StringB ...

最新文章

  1. js 连接mysql_JS连接数据库
  2. php输入流php://input的使用分析
  3. Django处理MySQL事物的用法
  4. 软件架构设计——软件架构风格
  5. numpy - np.reshape:将二维数组转变三维数组
  6. 【并查集】亲戚(Relations)
  7. 软考资料(系统集成管理工程师)无偿分享
  8. 聊聊SEO与生意的关系,顺带说说百度快照功能下线原因及影响有哪些?
  9. Home Assistant 家庭助理安装
  10. 《GAMES203:三维重建和理解》1 三维视觉(3D Vision)介绍
  11. 面试题:深拷贝和浅拷贝(超级详细,有内存图)
  12. 他山之石 | 小米小爱Query识别
  13. 【Week 1】Preferences and Ratings
  14. shuipFCMS收集2
  15. XCode 报错Thread 2:signal SIGABRT
  16. 测试职业规划之知识点总结
  17. termux安装以及基本配置
  18. STM32F103C8T6引脚图及引脚功能说明
  19. 中国联通联合openGauss开源社区启动数据库自主创新
  20. 关掉Windows10的计划自动重启行之有效的方法

热门文章

  1. 小强说话---子曾经曰过的
  2. The type java.lang.String cannot be resolved. It is indirectly referenced from required .class files
  3. 数据分析1——系统认识数据分析
  4. 项目中Swagger2、lombok(小辣椒)、以及短信API的调用 简单介绍
  5. 使用透明数据加密(TDE)来保护数据库
  6. java 判断当前时间是月初还是月末 和 指定日期月初月末
  7. 《数据访问 - 第01章 文件 - 文件和流的概念》
  8. hdu5445 Food Problem(背包)
  9. 什么是懒惰的苏珊(Lazy Susan)
  10. win8全角/半角切换