总结java学习(B站狂神说和动力节点老杜)——day08常用类

String类

String表示字符串,属于引用数据类型,

例如String a = "asdfasdf"这样的"asdfasdf"字符串,存放在方法区的字符串常量池当中
在这里插入图片描述

常用构造方法

String(byte[])
byte[] bytes = {97, 98, 99};
String s2 = new String(bytes);
System.out.println(s2);
/*输出结果:abc*/
String(byte[], int, int)
byte[] bytes = {97, 98, 99};
String s2 = new String(bytes,1, 2);
System.out.println(s2);
/*输出结果是:bc*/
String(char[])
char[] chars = {'我', '是', '中', '国', '人'};
String s2 = new String(chars);
System.out.println(s2);
/*输出结果:我是中国人*/
String(char[], int, int)
char[] chars = {'我', '是', '中', '国', '人'};
String s2 = new String(chars, 2, 3);
System.out.println(s2);
/*输出结果:中国人*/

常用方法

charAt(int)

索取字符串的指定下标,并返回该字符

char c = "中国人".charAt(1);
System.out.println(c);
/*输出结果:国*/
compareTo(String)

比较两个字符串是否相等,相等返回0,前小后大返回负数,前大后小返回正数

int result = "abc".compareTo("weg");
System.out.println(result);
/*结果是:-22*/
contains(CharSequence)

前面的字符串是否包含后面的字符串

boolean result = "abcasdfasdf".contains("abc");
System.out.println(result);
/*结果是:true*/
endsWith(String)

判断当前字符串是否以某个字符串结尾

boolean result = "abcasdfasdf.txt".endsWith("abc.java");
System.out.println(result);
/*结果是:false*/
equalsIgnoreCase(String)

判断两个字符串是否相等并且忽略大小写

boolean result = "abc".equalsIgnoreCase("ABC");
System.out.println(result);
/*输出结果是:true*/
getBytes()

将字符串对象转换成字节数组

byte[] bytes = "asdfa".getBytes();
for (byte aByte : bytes) {
    System.out.println(aByte);
}
/*输出结果是:
97
115
100
102
97*/
indexOf(String)

判断某个子字符串在当前字符串中第一次出现处的索引(下标),没找到就返回-1

System.out.println("akl;sjdfiaousdgbhajskldhg".indexOf("bha"));
/*输出结果是:15*/
isEmpty()

判断字符串是否为空

String s = "";
System.out.println(s.isEmpty());
/*输出结果是:true*/
length()

判断数组长度是length属性,判断字符串长度是length()方法。

System.out.println("asd".length());
/*输出结果是:3*/
replace(CharSequence,CharSequence)

CharSequence是String的父接口

String newString = "http://www.baidu.com".replace("http://","https://");
System.out.println(newString);
/*输出结果是:https://www.baidu.com*/
split(String)

拆分字符串

String[] newString = "1970-06-23".split("-");
System.out.println(Arrays.toString(newString));
/*输出结果是:[1970, 06, 23]*/
startsWith(String)

判断某个字符串是否以某个子字符串开始

System.out.println("1970-06-23".startsWith("1970"));
/*输出结果是:true*/
substring(int,int)

截取字符串,左闭右开

String string = "我是中国人".substring(2,5);
System.out.println(string);
/*输出结果是:中国人*/
toCharArray()
char[] newchar = "我是中国人".toCharArray();
System.out.println(Arrays.toString(newchar));
/*输出结果是:[我, 是, 中, 国, 人]*/
toLowerCase()

转换为小写

String newstring = "ASDPOH".toLowerCase();
System.out.println(newstring);
/*输出结果是:asdpoh*/
trim()

去除字符串前后空白

String newstring = "  ASDPOH  ".trim();
System.out.println(newstring);
/*输出结果是:asdpoh*/
valueOf()

将非字符串转换成字符串

String s1 = String.valueOf(12456);
System.out.println(s1);
/*输出结果是:12456*/

StringBuffer类

如果频繁的字符串拼接,会有什么问题

因为java中的字符串是不可变的,所每次拼接都会产生新字符串,这样会占用大量的方法区空间浪费

作用:Stringbuffer就是用来解决频繁使用字符串拼接的问题

StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("1970-");
stringBuffer.append("12-");
stringBuffer.append(15);
System.out.println(stringBuffer);
/*输出结果:1970-12-15*/

优化StringBuffer的性能

在创建StringBuffer的时候尽可能给定一个初始化容量

最好减少底层数组的扩容次数。预估一下,给一个大一些的容量

//指定初始化容量的StringBuff对象(字符串缓冲区对象)
StringBuffer sb = new StringBuffer(100);
stringBuffer.append("1970-");
stringBuffer.append("12-");
stringBuffer.append(15);
System.out.println(stringBuffer);
/*输出结果:1970-12-15*/

StringBuilder和StringBuffer的区别

StringBuffer中的方法都有:synchronized关键字修饰。表示StringBuffer在多线程环境下运行是安全的

StringBuilder中方法没有:synchronized关键字修饰。表示StringBuilder在多线程环境下运行是不安全的


八个包装类

基本数据类型包装数据类型父类
byteByteNumber
shortShortNumber
intIntegerNumber
longLongNumber
floatFloatNumber
doubleDoubleNumber
booleanBooleanObject
charCharacterObject

为何使用包装类

开发中可能会遇到传入方法的参数要求是一个对象级别的数据,而8种基本数据类型不是对象级别的数据,无法当做参数传入

此时,SUN公司就为我们准备了8种数据类型的8个包装类,可以把8种基本数据类型转换成为对象级别的数据。

使用包装类

装箱

基本数据类型 ——(转换为)——>引用数据类型

Integer i = new Integer(100);//JDK9之后就已经过时,不推荐这样写
自动装箱
Integer i = 100;
拆箱

引用数据类型——(转换为)——>基本数据类型 (可以拆成多种类型)

float f = i.floatValue();
自动拆箱
int y = x;
获取包装类的最大最小值
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
/*输出结果是:
2147483647
-2147483648
*/

String,int ,Integer相互转换

在这里插入图片描述


日期类

获取系统当前时间

Date类;

Date nowtime = new Date();
System.out.println(nowtime);
/*输出结果是:Sat May 22 22:55:37 CST 2021*/
格式化日期

SimpleDateFormat类,使用format()方法

yyyy:年

MM:月

dd;日

HH:小时

mm:分

ss:秒

SSS:毫秒

Date nowtime = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
System.out.println(sdf.format(nowtime));
/*输出结果是:2021-05-22 23:03:54 510*/
String类型换成Date类型

使用parse()方法

String nowtime = "2021-05-22 23:03:54 510";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
System.out.println(sdf.parse(nowtime));
/*输出结果是:Sat May 22 23:03:54 CST 2021*/

数字类

数字格式化

DecimalFormat类负责数字格式化

#代表任意数字

,代表千分位

.代表小数点

0代表不够时补0,一般用于保留几位小数

//表示:加入千分位,保留两位小数
DecimalFormat df = new DecimalFormat("###,###.##");
String s = df.format(12363541156.6556);
System.out.println(s);
/*输出结果是:12,363,541,156.66*/

大数据

BigDecimal,精度极高,专门使用在财务软件中

BigDecimal b1 = new BigDecimal(100);
BigDecimal b2 = new BigDecimal(200);
BigDecimal b3 = b1.add(b2);
System.out.println(b3);
/*输出结果是:300*/

随机数

Random类

产生任意范围内的随机数
Random r1 = new Random();
int num1 = r1.nextInt();
System.out.println(num1);
/*输出结果是(一个随机数,每一次执行代码都会得到一个不一样的值):836899164*/
产生指定范围内的随机数
//产生[0~99]之间的随机数
Random r1 = new Random();
int num1 = r1.nextInt(100);
System.out.println(num1);
/*输出结果是(0~99之间的随机数):70*/

枚举

类似于C语言中的枚举类型

public class Hello{
    public class void main(String[] args){
        System.out.println(Fruit.APPLE);
    }
}
enum Fruit{
    APPLE,BANANA,ORANGE
}
/*输出结果是:APPLE*/

`

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: B站上有一位用户称为"狂神",他分享了很多关于Spring Boot的网盘资料。Spring Boot是一种用于开发Java应用程序的框架,具有简化配置和快速开发的特点。狂神通过分享这些资料,帮助了很多对Spring Boot感兴趣的开发者。 这些资料中包含了许多有用的教程、示例代码和项目实战,涵盖了Spring Boot的各个方面。开发者们可以根据自己的需求和兴趣选择合适的资料进行学习和实践。这些资料不仅能够帮助开发者快速入门Spring Boot,还能够提高他们的开发能力和解决实际项目中的问题。 此外,狂神还经常更新和分享最新的Spring Boot资讯和技术文章,使开发者们能够跟上最新的开发趋势和技术进展。他的分享得到了广大开发者的赞赏和支持,在B站上积累了很高的人气和观看量。 总而言之,狂神B站上分享的Spring Boot网盘资料为开发者们提供了学习和实践的机会,帮助他们提升技术水平和解决问题能力。感谢狂神的分享,希望他能继续分享更多有价值的资料,为开发者们带来更多的帮助。 ### 回答2: B站狂神SpringBoot网盘资料是一份非常有价值的学习资源。SpringBoot是一种基于Spring框架的轻量级开发框架,它极大地简化了Java应用程序的开发和部署过程。狂神B站上非常受欢迎的编程博主,他的视频课程非常系统和深入,非常适合想要学习SpringBoot的开发者。 在狂神的SpringBoot网盘资料中,我们可以找到很多有关SpringBoot的学习资源。首先,他会提供一些关于SpringBoot框架的介绍和基本概念的视频教程,这些教程可以帮助初学者快速入门,并理解SpringBoot的设计理念和核心功能。 其次,在资料中还包括了一些实战项目的视频课程,这些课程会教我们如何使用SpringBoot来开发不同型的应用程序,如Web应用、RESTful API等。通过跟随实际项目的开发过程,我们可以更好地理解SpringBoot的使用方法和技巧。 此外,狂神的网盘资料中还会包含一些与SpringBoot相关的常用工具、插件和框架的介绍和使用方法。这些工具和框架能够提供更便捷和高效的开发体验,如MyBatis、Spring Data JPA、Spring Security等。 综上所述,B站狂神SpringBoot网盘资料是一份非常有价值的学习资源,通过学习和实践,我们可以快速掌握SpringBoot的开发技术,并在实际项目中运用它。无论是初学者还是有一定经验的开发者,这份资料都是非常值得一看的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值