Java内容

1.String
基本数据类型(四类八种):不属于Object类型的继承体系之下
引用数据类型(字符串,数组,自定义类型):属于对象类型的继承体系之下。
String 字符串,引用数据类型 Object
什么是String
字符串,引用类型。(基本类型的变量存储的是数据,引用类型的变量存储的是数据的地址)
字符串对象。
String的特点:

  • 字符串不可变

  • 每一个字符串都是String类的实例对象

  • 正是因为字符串是不可变的,所以字符串是共享的。

  • 字符串的效果上相当于一个char[]数组,但是它的底层原理是byte[]字节数组。
    创建字符串的2种常用方式

  • 最常用的直接创建String str = “www”;
    注意:直接使用双引号的就是字符串对象,没有new。

  • 通过构造方法创建
    String str = new String(“www”);
    字符串常用方法
    在这里插入图片描述

*
*@author:hzk
 */
public class Test3 {
    public static void main(String[] args) {
        String s = "王者荣耀里鲁班的峡谷中的被小兵打死的鲁班";
        //获取字符串的长度
        String s1 = "  123  452";
        //拼接字符串
        String s2 = s.concat(s1);
        //System.out.println(s.length());
        //System.out.println(s2);
        //返回某位置的单个字符
        //System.out.println(s.charAt(5));
        //查找参数字符串首次出现的位置
        //System.out.println(s.indexOf("小兵"));
        //从后面查找参数字符串首次出现的位置
        //System.out.println(s.lastIndexOf("鲁班"));
        //从参数中截取一段
        //System.out.println(s.substring(1,4));
        //判断是否以某字符串结尾
        //System.out.println(s.endsWith("鲁班"));
        //判断是否以某字符串结尾
        //System.out.println(s.startsWith("鲁班"));
        //清楚左右两端空格
        //System.out.println(s1.length());
        //System.out.println(s1.trim().length());
        //字符串以旧换新
        System.out.println(s.replace("小兵","乐百"));
        //按照参数的规则将字符串拆分成若干个,返回一个数组
        String s3 = "123 456 789";
        String[] s3Ary = s3.split(" ");
        System.out.println(s3Ary[0]);
    }
}

小结:
栈中存变量,new的对象在堆中,常量保存在常量池中。
String str1 = “123”,先去常量池中找"123"是否存在,如果存在则直接引用,不存在就创建。
“==”:用法
1.如果是基本数据类型:= =比较值(变量中的值)
2.如果是引用数据类型: = =比较变量中存储的数据的地址。如果比较内容则用equals方法
StringBuilder和StringBuffer
在java中字符串就是常量。就算对一个字符串进行操作,原来的字符串还是不会改变,只不过又生成了新的字符串。
我们做的对字符串的任何操作,都不会改变原有的字符串,但是会创建新的字符串对象。
stringBuilder是一个可变的字符序列。此类提供一个与stringBuffer兼容的API,但不保证同步。该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候。如果可能,建议优先采用该类,因为在大多数实现中,它比StringBuffer要快。

/*
*author:hzk
 */
public class Test4 {
    public static void main(String[] args) {
        StringBuilder s  = new StringBuilder("abc");
        StringBuilder s1 = s.append("def");
        System.out.println(s1);
        s1.insert(1,"555");
        System.out.println(s1);
        StringBuffer s2 = new StringBuffer();
        s2.append("xxxx");
        s2.append("2222");
        System.out.println(s2);
    }
}

日期及格式化
y:代表年
M:代表月
d:代表日
E:代表星期
H:代表24进制的小时
h:代表12进制的小时
m:代表分钟
s:代表秒
S:代表毫秒
SimpleDateFormat类
功能:格式化和解析日期
1.将Date类型的日期格式化成我们需要的日期类型,一般是字符串类型
2.将字符串类的日期在转回来。
在这里插入图片描述

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

public class Test5 {
    public static void main(String[] args) throws ParseException {
        String startDate = "2018-9-15";
        String endDate = "2022-1-20";

        SimpleDateFormat zhuhua = new SimpleDateFormat("yyyy-MM-dd");
        Date d1 = zhuhua.parse(startDate);
        Date d2 = zhuhua.parse(endDate);
        long day = (d2.getTime()-d1.getTime())/1000/60/60/24;
        System.out.println(day);
    }
}

jdk1.8之后的新增日期时间相关类
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值