JAVA学习笔记28(常用类)

1.常用类

1.1 包装类

1.包装类的分类

​ 1.针对八中基本数据类型相应的引用类型–包装类

​ 2.有了类的特点,就可以调用类中的方法

在这里插入图片描述

2.包装类和基本数据类型的转换

​ *装箱:基本类型 --> 包装类型

//手动装箱
int n1 = 100;
Integer integer = new Integer(n1);
Integer integer1 = Integer.valueOf(n1);//自动装箱
//int -> Integer
int n2 = 200;
Integer integer2 = n2;

​ *拆箱:包装类型 --> 基本类型

//手动拆箱
//Integer -- > int
int i = integer.intValue();

3.包装类型和String类型的相互转换

//包装类(Integer) ->String
Integer i = 100;//自动装箱
//方式1
String str1 = i + "";//方式2
String str2 = i.toString();//方式3
String str3 = String.valueOf(i);//String -> 包装类(Integer)
//方式1
String str4 = "12345";
Integer i2 = Integer.parseInt(str4);//自动装箱//方式2
Integer integer = new Integer(str4);	//构造器

4.Integer和Character常用的方法

System.out.println(Integer.MIN_VALUE);//返回最小值
System.out.println(Integer.MAX_VALUE);//返回最大值System.out.println(Character.isDigit('a'));//判断是不是数字
System.out.println(Character.isLetter('a'));//判断是不是字母
System.out.println(Character.isUpperCase('a'));//判断是不是大写
System.out.println(Character.isLowerCase('a'));//判断是否为小写System.out.println(Character.isWhitespace('a'));//判断是不是空格
System.out.println(Character.toUpperCase('a'));//转成大写
System.out.println(Character.toLowerCase('A'));//转成小写

​ *valueOf范围为-128 —127,否则就会new Integer(xx);

​ *如果xx在IntegerCache.low(-128)~IntegerCache.high(127),就直接从数组返回

1.2 String类

​ *String 对象用于保存字符串

​ *字符串常量对象是用双引号括起来的字符序列

​ *字符串的字符使用Unicode字符编码,一个字符(不区分字母还是汉字)占两个字节

​ *String类常用构造器

String s1 = new String();
String s2 = new String(String original);
String s3 = new String(char[] a);
String s4 = new String(char[] a,int startIndex,int count)

1.创建String对象的两种方式

1.直接赋值
String s = "hspedu";
2.调用构造器
String s2 = new String("hspedu");

在这里插入图片描述

2.字符串的特性

​ 1.String是一个final类,代表不可变的字符序列

​ 2.字符串是不可变的,一个字符串对象一但被分配,其内容不可变。(如果想要改变就是直接更改指向地址)

在这里插入图片描述

3.String类的常见方法

​ *String类是保存字符串常量的,每次更新都需要重新开辟空间,效率较低,因此还提供了StringBuilder和StringBuffer来增强String的功能

1.equals

//区分大小写,判断内容是否相等

直接用==号的话,判断的是地址是否相同

str1.equals(str2);
2.equalsIgnoreCase

//忽略大小写的判断内容是否相等

str1.equalsIgnoreCase(str2);
3.length

//获取字符的个数,字符串的长度

str1.length();
4.indexOf

//获取字符在字符串中第一次出现的索引,索引从0开始,如果找不到,返回-1

str1.indexOf("@");	//@符号第一次出现的位置
5.lastIndexOf

//获取字符在字符串中最后一次出现的索引,索引从0开始,如找不到,返回-1,同时查找两个字符则返回第一个字符的位置

6.substring

//截取指定范围的字串

String name = "hello,wisth";
//下面name.substring(6) 从索引6开始截取后面所有的内容
System.out.println(name.substring(6));	//截取后面的字符
System.out.println(name.substring(0,5));	//表示从索引0开始截取,截取到索引 5-1=4的位置,5不包括
7.trim

//去前后空格

8.charAt

//获取某索引处的字符,注意不能使用Str[index]这种方式

str1.charAt(0);	//获取字符串0号位置的字符
9.toUpperCase

//转换成大写

String s = "hello";
System.out.println(s.toUpperCase());
10.toLowerCase

//转换成小写

11.concat

//拼接字符串

String s1 = "宝玉";
s1 = s1.concat("123").concat("456").concat("789");
12.replace

//替换字符串中的字符

s1 = s1.replace("123","789");	//把所有的123替换成789
//s1.replace() 方法执行后,返回的结果才是替换过的
//replace对s1没有任何影响
String s11 = s1.replace("123","789");
13.split

//分割字符串,对于某些分割字符,我们需要转义比如 | \\等,两个斜杠表示一个斜杠

String poem = "锄禾日当午,汗滴禾下土,谁知盘中餐,粒粒皆辛苦";
String[] split = poem.split(",");	//以,为标准对poem进行分割,返回一个数组
for(int i =0;i<split.length;i++)
{System.out.println(split[i]);
}
14.toCharArray

转成字符数组

s = "happy";
char[] chs = s.toCharArray();
for(int i =0;i < chs.length;i++)
{System.out.println(chs[i]);
}
15.compareTo

比较两个字符串的大小

//如果前者大,则返回正数,后者大,则返回负数,如果相等,则返回0

​ 1.如果长度相同,并且每个字符也相同,返回0

​ 2.如果长度相同或者不相同,但是比较时,可以区分大小

​ 就返回 if ( c1 != c2) {

​ return c1 - c2;

​ }

​ 3.如果前面的部分都相同,就返回 str1.len - str2.len

String a = "jcck";
String b = "jack";
System.out.println(a.compareTo(b));		//返回值是'c'-'a' = 2的值
16.format

格式字符串,用占位符填充

1.占位符%d,%s,%.2f,%c

2.这些变量由后面的变量来替换

3.%d 用整数替换

4.%s 表示由后面的字符串替换

5.%.2f 用小数来替换,替换后,保留两位小数,并进行四舍五入的处理

6.%c 用char类型数据替换

String str2 = String.format("我的姓名是%s 年龄是 %d,成绩是%.2f 性别是 %c,希望大家喜欢我", name,age,score,gender);//或者
String formatStr = "我的姓名是%s 年龄是 %d,成绩是%.2f 性别是 %c,希望大家喜欢我";String info2 = String.format(formatStr,name,age,score,gender)    

1.3 StringBuffer类

​ *StringBuffer代表可变字符序列,可以对字符串内容进行增删

​ *很多方法与String相同

​ *StringBuffer是一个容器

StringBuffer stringBuffer = new StringBuffer(“hello”);

1.StringBuffer构造器

//1.创建一个大小为16的char[],用于存放字符内容
StringBuffer stringBuffer = new StringBuffer();StringBuffer stringBuffer1 = new StringBuffer("123");//2.通过构造器指定char[]大小
StringBuffer stringBuffer2 = new StringBuffer(100);//3.通过给一个String创建一个StringBuffer,此时char[]大小就是hello.length()+16
StringBuffer hello = new StringBuffer("hello");

2.StringBuffer和String的转换

1.String —> StringBuffer

String str = "hello tom";
//1.使用构造器
//返回的才是StringBuffer对象,对str本身没有影响
StringBuffer stringBuffer = new StringBuffer(str);//2.使用append方法
StringBuffer stringBuffer1 = new StringBuffer();
StringBuffer1 = stringBuffer1.append(str);

2.StringBuffer —> String

StringBuffer stringBuffer3 = new StringBuffer("小吴");
//1.使用toString方法
String s= stringBuffer3.toString();//2.使用构造器来搞定
Stirng s1 = new String(stringBuffer3);

3.常用方法

1.append //增加

2.delete //删除

s.delete(11,14);
//删除11~14的字符 [11,14),不包括14号位置的字符

3.replace //替换

s.replace(9,11,"小树苗");
//使用小树苗替换索引9-11的字符,不包括11,如果9-10为两个字符,则用小树苗替换这两个字符

4.indexOf //查找

5.insert //插入

s.insert(9,"赵明");
//在索引为9的位置插入“赵明”,原来索引为9的位置内容自动后移

1.4 StringBuilder类

​ *一个可变的字符序列,此类提供一个与StringBuffer兼容的API,但不保证同步(StringBuilder不是线程安全),该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候,如果可能,建议优先采用该类,因为大多数实现中,它比StringBuffer快

​ *在StringBuilder上主要操作是appends和insert方法,可重载这些方法,以接受任意类型的数据

​ *String,StringBuffer,StringBuilder比较

在这里插入图片描述
在这里插入图片描述

1.5 Math类

​ *Math类包含用于执行基本数学运算的方法,如初等指数,对数,平方根和三角函数

1.abs

//绝对值

int a = Math.abs(-9);

2.pow

//求幂

double pow = Math.pow(2,4);//2的四次方

3.ceil

//向上取整(转成double)

double pow = Math.ceil(-3.0001);//返回-3

4.floor

//向下取整(转成double)

double pow = Math.floor(3.0001);//返回3

5.round

//四舍五入

long round = Math.round(-5.001);

6.sqrt

//求开方

double sqrt = Math.sqrt(9.0);

7.random

//求随机数


8.max

//求两个数的最大值

max(1,14);

9.min

//求两个数的最小值


1.6 Arrays类

1.toString

//1.toString 返回数组的字符串形式
Arrays.toString(arr);Integer[] integers = {1,20,90};
System.out.println(Arrays.toString(integers));

2.sort

//排序

Integer arr[] = {1,-1,7,0};
//进行排序
Arrays.sort(arr,new Comparator());	//comparator返回的值大于0则升序(冒泡排序),小于0则降序

//sort排序代码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.binarySearch

//通过二分搜索法进行查找,要求必须排好序

Integer[] arr = {1,2,90,123,567}//数组为有序的才可以使用
//如果数组中不存在该元素,就返回-1
int index = Arrays.binarySearch(arr, 3);

​ *key not found 返回 - (应该在的位置+1)

4.copyOf

​ *从arr数组中,拷贝arr.length个元素到newArr数组中

​ *如果拷贝的长度 > arr.length就在新数组的后面增加null

//数组元素的复制

Integer[] newArr = Arrays.copyOf(arr, arr.length);

5.fill

//数组元素的填充

//用99替换原来的元素

Integer[] num = new Integer[]{9,3,2};
Arrays.fill(num, 99);

6.equals

//比较两个数组元素内容是否完全一致

boolean equals = Arrays.equals(arr,arr2);

7.asList

//将一组值,转换成list

List<Integer> asList = Arrays.asList(2,3,4,5,6,1);System.out.println("asList=" + asList);

1.7 System类

1.exit

//退出当前程序

System.exit(0);
//0表示一个状态,正常状态

2.arrays.copy

//复制数组元素,适合底层调用,一般使用Arrays.copyOf完成复制数组

int[] src = {1,2,3};
int[] dest = new int[3];
System.arraycopy(src,0,dest,0,3);//src.length()

3.currentTimeMillens

//返回当前时间距离1970-1-1的毫秒数

System.out.println(System.currentTimeMillens());

4.gc

//运行垃圾回收机制

1.8 BigInteger和BigDecimal类

BigInteger bigInteger = new BigInteger("2379999999999999999999999");//转成字符串
BigInteger bigInteger = new BigInteger("100");//1.在对BigInteger进行加减乘除的时候,需要使用对应的方法,不能直接进行 + - * /
BigInteger add = bigInteger.add(bigInteger2);

​ *BigInteger 大整数(整型)

​ *BigDecimal 大精度(小数)

1.add

//加

2.subtract

//减

3.multiply

//乘

4.divide

//除

BigDecimal bigDecimal = new BigDecimal("19999.111111111111999999999");
BigDecimal bigDecimal2 = new BigDecimal("2");
//在调用divide方法时,指定精度即可,BigDecimal.ROUND_CEILING
//如果有无限循环小数,就会保留分子的精度
System.out.println(bigDecimal.divide(bigDecimal2,BigDecimal.ROUND_CEILING)

1.9 Date类

*java.util.Date包下

1.第一代日期类

1.Date:精确到毫秒,代表特定的瞬间

2.SimpleDateFormat:格式和解析日期的类

​ SimpleDateFormat 格式化和解析日期的具体类。它允许进行格式化(日期->文本)、解析(文本->日期)和规范化

Date d1 = new Date();	//获取当前系统时间
System.println("当前系统时间为:"+ d1);
//默认输出的日期格式是国外的方式,因此通常需要对格式进行转换Date d2 = new Dae(9234567);	//通过指定毫秒数得到时间
System.out.println(d1.getTime());	//获取某个时间对应的毫秒数//1.创建SimpleDateFormat对象,可以指定对应的格式
//2.这里的格式使用的字母是规定的,如下表
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");
String format = sdf.format(d1);//1.把一个格式化的String转成对应的Date
//2.在把String -> Date使用的sdf格式需要和你给的String格式一样,否则会抛出转换异常String s = "1996年01月01日 10:20:30 星期一";
Date parse = sdf.parse(s);

在这里插入图片描述

2.第二代日期类

​ *Calender(日历)

​ *Calender类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法

//1.Calender是一个抽象类,并且构造器是private
//2.可以通过getInstance()	来获取实例
//3.提供大量的方法和字段提供给程序员
Calender c = Calender.getInstance();//2.获取日历对象的某个日历字段
System.out.println("年:"+c.get(Calendar.YEAR));//月要+1,因为Calendar返回月时,是按照0开始编号
System.out.println("月:"+(c.get(Calendar.MONTH) + 1));
System.out.println("日:"+c.get(Calendar.DAY_OF_MONTH));
System.out.println("小时:"+c.get(Calendar.HOUR));//HOUR_OF_DAY	改为24小时制
System.out.println("分钟:"+c.get(Calendar.MINUTE));
System.out.println("秒:"c.get(Calendar.SECOND));//Calendar没有专门的格式化方法,所以需要自己来组合显示

3.第三代日期类

​ *可变性:像日期和时间这样的类应该是不可变的

​ *偏移性:Date中的年份是从1900开始的,而月份都从0开始

​ *格式化:格式化只对Date有用,Calender不行

​ *不是线程安全的;不能处理润秒(每隔2天,多出1s)

1.常见方法

1.LocalDate(日期、年月日)、LocalTime(时间、时分秒)、LocalDateTime(日期时间、年月日、时分秒)

//1.使用Now返回当前日期时间的对象
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt);ldt.getYear();
ldt.getMonthValue();	//数字的Month
ldt.getMonth();	//英文的Month
ldt.getDayOfMonth();
ldt.getHour();
ldt.getMinute();
ldt.getSecond();

2.DateTimeFormatter格式日期类

类似于SimpleDateFormat

DateTimeFormat dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH小时mm分钟ss秒");
String str = dtf.format(日期对象);

3.Instant //时间戳

//提供了一系列和Date类转换的方式
//Instant--->Date
Date date = Date.from(instant);//Date--->Instant
Instant instant = date.toInstant();//1.通过静态方法Now()获取表示当前时间戳的对象
Instant now = Instant.now();

​ *其它方法可以自己上网查

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/1654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言__函数栈帧的创建和销毁__复习篇9】

目录 前言 一、知识补充 二、分析创建和销毁的过程 三、前言问题回答 前言 本篇主要讨论以下问题&#xff1a; 1. 编译器什么时候为局部变量分配的空间 2. 为什么局部变量的值是随机的 3. 函数是怎么传参的&#xff0c;传参的顺序是怎样的 4. 形参和实参是什么关系 5. 函数…

电商平台业务及架构演变史

不少人认为电商系统很简单&#xff0c;因为现在做电商的太多了&#xff0c;看到的电商产品也多。看来看去产品都差不多&#xff0c;没什么特别。 其实中国电商发展已有20多年历史&#xff0c;电商以销售为核心连接着研、产、供、销、服整套的信息系统体系。其中的设计并没有那…

企业公众号数量怎么申请

一般可以申请多少个公众号&#xff1f;许多用户在申请公众号时可能会遇到“公众号显示主体已达上限”的问题。这是因为在2018年11月16日对公众号申请数量进行了调整&#xff0c;具体调整如下&#xff1a;1、个人主体申请公众号数量上限从2个调整为1个。2、企业主体申请公众号数…

vue---计算属性

姓名案例 1.使用插值语法实现 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>姓名案例_插值语法实现</title><!-- 引入Vue --><script type"text/javascript" src"../js/vue.js"&g…

从源码选择到国际化运营:打造成功的跨境电商网站必备指南

跨境电商网站的成功离不开经过精心策划和执行的全面计划。从源码选择到国际化运营&#xff0c;每一步都至关重要。作为跨境电商领域的专家&#xff0c;我将为您提供打造成功跨境电商网站的必备指南&#xff0c;帮助您开拓全球市场&#xff0c;提升边际收入。 选择优质的跨境电…

云服务器ECS选型知多少

云服务器ECS选型知多少 ECS产品规格如何选择实例规格变配 说到云服务器ECS选型&#xff0c;那可以说太重要了。因为对于一个项目来说&#xff0c;从项目到开始到最后的部署上线&#xff0c;每一步都需要付出&#xff0c;这些对于企业或者个人来说都是一笔投入&#xff0c;那么如…

会议预告 | 易基因与您相约2024中国衰老科学大会(附日程) 新品首发

由中国细胞生物学学会衰老细胞生物学分会等单位联合主办&#xff0c;瓯江实验室、温州医科大学老年研究院等共同承办的2024中国衰老科学大会暨国际衰老生物学大会将于2024年4月26日-28日在温州召开。本次大会以“解码衰老”为主题&#xff0c;旨在汇聚全球科研精英&#xff0c;…

全开源商城源码后台php全端uniapp 全开源可二开 功能强大 商城系统源码

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 内置8中搭配主色(可自行扩展更多配色)、自由快捷切换适应各大行业需求 已支持小程序&#xff08;微信、QQ、百度、支付宝、头条&抖音、快手&#xff09; H5 APP App.vue中修改 r…

EasyMR6.2 全面解读:四大功能深度优化,解锁全新大数据处理和计算体验

在刚刚过去的2024春季发布会上&#xff0c;袋鼠云带来了数栈产品V6.2版本的全新发布。其中&#xff0c;EasyMR 作为数栈V6.2中的一项关键能力&#xff0c;代表了袋鼠云对大数据生态的深入理解和持续创新。 EasyMR&#xff08;后文统称EMR&#xff09;是袋鼠云基于 Hadoop、Hiv…

CH341A/B USB转USART/I2C/SPI介绍

CH341A/B USB转USART/I2C/SPI介绍 &#x1f4cd;CH341官方文档&#xff1a;https://www.wch.cn/downloads/CH341DS2_PDF.html CH341A/B是一个USB总线的转接芯片&#xff0c;通过USB总线提供异步串口、打印口、并口以及常用的2线和4线等同步串行接口。 &#x1f341;芯片封装&a…

前端表单input的简单使用

1.代码结构介绍 2.实战效果

The layered MVP architecture in Acise

Acise是一款CAx软件开发平台&#xff0c;本文给出Acise中的MVP架构模式的实现思路。 注1&#xff1a;文章内容会不定期更新。 MVP Data Model View Model 参考文献 Erich Gamma. Design Patterns:elements of reusable object-oriented software. Addison Wesley, 1994.Josep…

查询服务器上所有SQL SERVER数据库中是否包含某个字段,且该字段是否包含某个值

公司有一堆相同类别的客户&#xff0c;每个客户都部署了相同的一套系统&#xff0c;每套系统对应一个相同结构的数据库&#xff0c;昨天老板让查一下手机号码177xxxxx248是属于哪个客户的客户。 我要查的这个号码来自于oa_member表中的phone字段&#xff0c;我需要对所有的数据…

实测52.4MB/s!全志T3+FPGA的CSI通信案例分享!

CSI总线介绍与优势 CSI&#xff08;CMOS sensor parallel interfaces&#xff09;总线是一种用于连接图像传感器和处理器的并行通信接口&#xff0c;应用于工业自动化、能源电力、智慧医疗等领域&#xff0c;CSI总线接口示意图如下所示&#xff08;以全志科技T3处理器的CSI0为…

2024年51cto视频如何提取

2024年&#xff0c;对于如何提取51cto网站上的视频&#xff0c;许多人都选择在该平台购买自己所需的学习视频。然而&#xff0c;在51cto网页上观看视频将消耗用户的流量。为了解决这一问题&#xff0c;我开发了名为小白51cto工具的软件&#xff0c;使用户能够轻松将视频下载到本…

如何增强Java GCExcel API 的导入和导出性能

前言 GrapeCity Documents for Excel (以下简称GcExcel) 是葡萄城公司的一款服务端表格组件&#xff0c;它提供了一组全面的 API 以编程方式生成 Excel (XLSX) 电子表格文档的功能&#xff0c;支持为多个平台创建、操作、转换和共享与 Microsoft Excel 兼容的电子表格&#xf…

web前端(简洁版)

0. 开发环境 && 安装插件 这里我使用的是vscode开发环境 Auto Rename Tag是语法自动补齐view-in-browser是快速在浏览器中打开live server实时网页刷新 1. HTML 文件基本结构 <html><head><title>第一个页面</title></head><body&g…

开源事件通知库libevent及网络连接管理模块bufferevent详解

目录 1、libevent介绍 1.1、什么是libevent&#xff1f; 1.2、libevent特点 1.3、网络连接管理模块bufferevent 2、bufferevent有什么用&#xff1f; 3、bufferevent的整体设计与实现细节 3.1、整体概况 3.2、evbuffer与bufferevent 3.3、defer callback 4、bufferev…

python爬虫之爬取微博评论(4)

一、获取单页评论 随机选取一个微博&#xff0c;例如下面这个 【#出操死亡女生家属... - 冷暖视频的微博 - 微博 (weibo.com) 1、fnf12&#xff0c;然后点击网络&#xff0c;搜索评论内容&#xff0c;然后预览&#xff0c;就可以查看到网页内容里面还有评论内容 2、编写代码…

【C#】rdlc报表答应报错:未能加载文件或程序集“Microsoft.SqlServer.Types

文章目录 一、报错信息二、解决方式 一、报错信息 Microsoft.Reporting.WinForms.LocalProcessingException: An error occurred during local report processing. —> Microsoft.Reporting.DefinitionInvalidException: The definition of the report ‘’ is invalid. —&…