华杉研发九学习日记15 java常用类库

华杉研发九学习日记15

java常用类库

一,String类总结

​ String是Java中的不可变字符串类。对象创建的时刻就确定了大小以及内容。在使用过程中,内容不可以修改。虽然String类提供了很多和修改相关的方法(求子串、替换、大小写等),但本质上都是新建了字符串,原来的字符串并未发生任何变化。

二,StringBuffer类

建议使用:一个字符串在短期内需要大量修改。

在建立对象时只能使用 new ,且默认容量为16。

stringBuffer是Java中的可变字符串类,可变指的是字符串的内容可变,即对

字符串进行增、删、改操作,字符串本身会受到影响。

StringBuffer除了内容可变之外,另外一个特点就是线程安全。在多线程环境

下,不同的线程对同一个字符串操作,结果不会紊乱。----多线程是后面的内容

因为StringBuffer类是java.lang包中的类,所以使用的时候无需导包。

String与stringBuffer在内存中的区别:

扩容(使用一次append()为一次扩容):

1.如果加入的致据比默认空间小,则不扩容

2.如果加入的数据超出瓯有空问,则默认扩容 len*2+2

3.如果扩容后空间依然小,则现有的空间是加入字符串后的最大长度即可

java 复制代码
//容量空间   扩容  2*原来容量+2
StringBuffer sb = new StringBuffer();       // 16
System.out.println(sb);
StringBuffer sb2 = new StringBuffer("abcde");// 16+abcde
System.out.println(sb2);
StringBuffer sb3 = new StringBuffer(10);//  10
System.out.println(sb3);
//  capacity()  容量
System.out.println("容量为:"+sb3.capacity());
//  append()    追加内容(同一字符串)
sb.append("11111111111111111");			//	34  2*16+2
System.out.println(sb);
System.out.println("容量为:"+sb.capacity());
java 复制代码
StringBuffer sb = new StringBuffer("helloworld!");
sb.append("!!");
System.out.println(sb);
sb.insert(5,"-");//指定位置插入
System.out.println(sb);
sb.delete(3,5);             // 删除范围数据
System.out.println(sb);
sb.deleteCharAt(5);     //  删除下标单个字符
System.out.println(sb);
sb.replace(5,8,"???");  //替换字符
System.out.println(sb);
sb.reverse();           //倒置
System.out.println(sb);
System.out.println(sb.toString());

三,StringBuilder类

​ StringBuilder是Java中的可变字符串类 ,对字符串进行增、删、改操作,字符串本身会受到影响。因为StringBuilder类是 java.lang包中的类,所以使用的时候无需导包,

StringBuilder的基本应用与StringBuffer完全一摸一样。|

​ 唯一区别:不能保证线程安全

面试题

String、StringBuffer、StringBuilder的区别:

String是不可变字符串。

StringBuilder是可变学符串。多线程下不安全,执行效率比StringBuffer高。

StringBuffer也是可变字符串。多线程下安全,但执行效率低.

四,Math类

​ Math类是Java中的数学类,这个类提供了各种数学相关的方法(三角函数,绝对

值,指数运算,开方,最值,角度弧度互转等等),这个类的方法和属性都是静态的.在

使用的时候通过类名访问方法.

​ Math类在java.lang包中,不用导包

java 复制代码
//  字段
System.out.println(Math.PI);
//  方法
System.out.println(Math.abs(-123.1));//     绝对值
System.out.println(Math.ceil(12.33));//     向上取整
System.out.println(Math.floor(12.33));//    向下取整
System.out.println(Math.sqrt(4));       //  开方
System.out.println(Math.pow(2,4));      //  幂运算
System.out.println(Math.round(24.4999));//  四舍五入
System.out.println(Math.random());      //  随机数  [0,1)
System.out.println(Math.max(12,23));    //  最大值
System.out.println(Math.min(111,2));    //  最小值

//  随机数
int n=(int)(Math.random()*100);
System.out.println(n);

五,Random类

六,UUID

  • UUID:通用唯一识别;:Universally Unique ldentifier;在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。形式一般如下:50bdf2d0-87ab-4110-802c-20bfe1454da4

  • UUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成UUID,由于UUID总有一个长度限制,所以理论是UUID是可能会发生冲突的,但是只要重复率满足一定条件我们就可以认为UUID是唯一的。

  • 我们一般用来表示:随机的唯一的字符串

UUID在java.util包中,使用时需要导包。

七,Date类

java 复制代码
//使用无参构造器构造对象   --  系统当前时间
Date da1 = new Date();
System.out.println(da1);
//  基准时间;1970-01-01 00:00:00    格林尼治时间  中国东八区-->
//  有参的构造器  --  时间是从基准时间过了多少毫秒后的时间
Date da2 = new Date(1000);  //  毫秒数
System.out.println(da2);
//  getTime()
//  从基准时间到当前时间所过的毫秒数
long time = da1.getTime();
System.out.println(time);
System.out.println(da2.getTime());
System.out.println("==============了解即可");
//
int year = da1.getYear()+1900;  //得到年,需要加1900
System.out.println(year);
int month = da1.getMonth()+1;   //得到月,需要加1
System.out.println(month);
System.out.println("=============");
Date now = new Date();
Date back = new Date(124,6,24);//   退货最终时间
System.out.println(back);
if(now.before(back)){		  //before方法,判断是否在莫一天之前
    System.out.println("您可以退货");
}else System.out.println("您不可以退换货");

八,Calendar类

日历类(Calendar):是抽象类,表示日历.比Date更强大

Calendar在java.util包中,需要导包

Calendar是一个抽象类,无法通过直接实例化得到对象.因此, Calendar提供了一个方法getInstance,来获得一个Calendar对象,得到的Calendar由当前时间初始化.

创建对象,使用静态方法进行实例化

获取时间相关信息,使用get方法和Calendar中的字段

java 复制代码
//  创建对象 -- 使用静态方法进行实例化
Calendar calendar = Calendar.getInstance();
//  使用get方法根据不同字段来获取不同的时间相关信息
int year = calendar.get(Calendar.YEAR);
System.out.println(year);
System.out.println(calendar.get(Calendar.MONTH)+1);
System.out.println(calendar.get(Calendar.DATE));
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
System.out.println(calendar.get(Calendar.HOUR));
System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
System.out.println(calendar.get(Calendar.MINUTE));
System.out.println(calendar.get(Calendar.SECOND));
System.out.println(calendar.get(Calendar.MILLISECOND));
System.out.println(calendar.get(Calendar.DAY_OF_WEEK)+1);
System.out.println(calendar.get(Calendar.DAY_OF_YEAR));
相关推荐
东阳马生架构3 分钟前
商品中心—1.B端建品和C端缓存的技术文档
java
Chan166 分钟前
【 SpringCloud | 微服务 MQ基础 】
java·spring·spring cloud·微服务·云原生·rabbitmq
恰薯条的屑海鸥6 分钟前
零基础在实践中学习网络安全-皮卡丘靶场(第十五期-URL重定向模块)
学习·安全·web安全·渗透测试·网络安全学习
LucianaiB9 分钟前
如何做好一份优秀的技术文档:专业指南与最佳实践
android·java·数据库
面朝大海,春不暖,花不开33 分钟前
自定义Spring Boot Starter的全面指南
java·spring boot·后端
得过且过的勇者y33 分钟前
Java安全点safepoint
java
夜晚回家1 小时前
「Java基本语法」代码格式与注释规范
java·开发语言
斯普信云原生组1 小时前
Docker构建自定义的镜像
java·spring cloud·docker
wangjinjin1801 小时前
使用 IntelliJ IDEA 安装通义灵码(TONGYI Lingma)插件,进行后端 Java Spring Boot 项目的用户用例生成及常见问题处理
java·spring boot·intellij-idea
wtg44521 小时前
使用 Rest-Assured 和 TestNG 进行购物车功能的 API 自动化测试
java