JAVA基础05-数据包装类,JAVA常用类 介绍

目录

基本数据类型的包装类

定义

String是字符串类型

创建String类型的对象 

返回指定索引处的 char 值

返回某字符在字符串中出现的索引

替换

返回此字符串的长度

测试此字符串是否以指定的前缀开始

返回一个新的字符串

大小写转换

拆分字符串

字符串的创建及比较

字符串增强类

StringBuilder 和StringBuffer区别

StringBuilder

StringBuffer

三种类型的使用场景

练习

JAVA常用类

Math的方法

绝对值

返回最大/小值

随机数

正平方根

次幂

日期类型

日期格式化

Calendar类

定义

方法

设置当前时间

获取年/月/日/秒

练习

BigDecimal类


基本数据类型的包装类

定义

是基本数据类型的引用类型,提供基本数据类型的数据转换和数据操作的方法。

--byte Byte

--short Short

--int Integer

--long Long

--boolean Boolean

--float Float

--double Double

--char Character

实现基本数据类型和引用类型之间的转换

		// 1、包装类中的方法 "100"+120 数据转换int res = Integer.parseInt("100");int res1 = Integer.valueOf("11");System.out.println(res+200);System.out.println(res1+200);// 比较方法System.out.println(Integer.compare(10, 10));// 进制转换System.out.println(Integer.toBinaryString(10));System.out.println(Integer.toHexString(10));System.out.println(Integer.toOctalString(10));

自动装箱 将基本数据类型的数据封装为基本数据类型的包装类

自动拆箱 将基本数据类型的包装类拆封为基本数据类型的数据

		//2、自动装箱、自动拆箱int res2 = Integer.valueOf("110");//把包装类型的拆箱成为基本数据类型Integer res3 = res2;//把基本数据类型封装为包装类型

字符串String

String是字符串类型,是不可变类,并且是一个引用类型

创建String类型的对象 

String item = "hello";//方法一
String item = new String("hello");//方法二

返回指定索引处的 char 值

charAt(int index) ;

String str = "it is my hourse is!";
// 返回str中特定位置的字符
System.out.println(str.charAt(1));

返回某字符在字符串中出现的索引

返回指定字符在此字符串中第一次出现处的索引:

indexOf(int ch) ;

返回指定字符在此字符串中最后一次出现处的索引:

lastIndexOf(int ch) ;

		String str = "it is my hourse is!";// 返回某个字符的所在位置System.out.println(str.indexOf('i'));//从前面开始,返回第一个的索引System.out.println(str.indexOf("is"));//从前面开始,返回第一个的索引System.out.println(str.lastIndexOf('i'));//从后面开始,返回第一个的索引

替换

通过用 newChar 替换此字符串中出现的所有oldChar 得到的:

replace(char oldChar, char newChar);

		//替换str = str.replace('i', 'I');System.out.println(str);str = str.replaceAll("is", "IS");//全部is都替换为ISSystem.out.println(str);

返回此字符串的长度

length() ;


测试此字符串是否以指定的前缀开始

startsWith(String prefix);

	//判断是否以某个字符串作为开头System.out.println(str.startsWith("it"));

返回一个新的字符串

该字符串是此字符串的一个子字符串:

substring(int beginIndex);


将此字符串转换为一个新的字符数组

toCharArray();

		//获取当前的字符串的字符数组System.out.println(Arrays.toString(str.toCharArray()));

大小写转换

--使用默认语言环境的规则将此 String 中的所有字符都转换为小写:

toLowerCase();

--使用默认语言环境的规则将此 String 中的所有字符都转换为大写:

toUpperCase();

//大小写转换System.out.println(str.toUpperCase());System.out.println(str.toLowerCase());

拆分字符串

根据给定正则表达式的匹配拆分此字符串:

split(String regex);

	//分隔字符串String[] arr = str.split(" ");for (String string : arr) {System.out.println(string);}

字符串的创建及比较

public static void main(String[] args) throws UnsupportedEncodingException {//了解即可String str4 = new String("你好".getBytes(), "GBK");System.out.println(str4);// 1、如何创建字符串的对象String str = "hello";//直接给字面值String str1 = new String("hello");//通过构造器来创建字符串对象String str2 = "hello";//直接给字面值String str3 = new String("hello");//通过构造器来创建字符串对象//2、判断字符串是否一致? //==是判断两个数值是否相等【基本数据类型】  //==在引用类型中是判断对象是否一致System.out.println(str==str1);System.out.println(str.equals(str1));//判断两个字符串数值是否相等使用equals方法System.out.println("---------");System.out.println(str==str2);//true \\常量池System.out.println(str1==str3);//false \\因为new出来的对象肯定是不相等的//两个字面值拼接,会创建一个新的字符串对象String str5 = "hel";String str6 = "lo";String str7 = str5+str6;System.out.println(str7==str);//false}

字符串增强类

//字符串的增强类的方法
public class StringUpperDemo {public static void main(String[] args) {// StringBuilder【线程不安全】 StringBuffer【线程安全】 操作方法是一致的StringBuilder sb = new StringBuilder("it is my hourse is!");1.获取(与string相同,这不做描述)
//		 *   char charAt(index)
//		 *   indexOfString substring(start,end)//格式2.删除
//		 *   StringBuffer delete(begin,end)   包含头,不包含尾b =sb.delete(0, 3);System.out.println(sb);//		 *   StringBuffer deleteCharAt(index)sb =sb.deleteCharAt(0);System.out.println(sb);3.存储
//		 *   StringBuffer append() 追加未尾sb =sb.append(" me");System.out.println(sb);//		 *   StringBuffer insert()sb =sb.insert(3, "me");System.out.println(sb);4.修改(与string相同,这不做描述)
//		 *   replace()5. 反转
//		 *   reverse()sb = sb.reverse();System.out.println(sb);}

StringBuilder 和StringBuffer区别

StringBuilder

定义:线程不安全的String增强类,StringBuilder 和 StringBuffer都是容器, 定义的api(方法)都相同

StringBuffer

定义

线程安全的String增强类。StringBuffer  是一个容器,称为字符串缓冲区,该字符串缓冲区可扩展final类  

特点

长度可变化; 可以操作多个数据类型;通过toString()转成String

注意:如果对字符串进行修改时,无需创建新对象!性能相对String较好

两者区别

1.StringBuilder没有线程安全(机制),而 StringBuffer有线程安全机制所以,StringBuilder性能较佳

2.StringBuilder版本较新


三种类型的使用场景

使用场景区别:

  1. 对于普通的操作,操作量不大时使用String;对于大量的更新操作,使用字符串的增强类
  2. --单线程:StringBuilder;--多线程:StringBuffer
  3. 速度性能上:String<StringBuffer <StringBuilder

练习

public class StringDemo1 {// 练习1:"hello world"字符串,逐个单词拆分,然后以大写输出(每次一个单词换行输出)public static void main(String[] args) {String str =  "hello world";//String[] strs =str.split(" ");//for (String string : strs) {System.out.println(string.toUpperCase());}}// 练习2:使用StringBuffer 往一个数值每隔三位(千位)插入一个','public static void main(String[] args) {StringBuffer sb =  new StringBuffer("388123456789");// 从低位开始插入,低三位开始,i大于0【避免个数能整数时在数值前面加上逗号】for (int i=sb.length()-3;i>0;i-=3) {sb.insert(i, ",");}System.out.println(sb);}
}

JAVA常用类

Math的方法

绝对值

--abs(a):返回 int 值的绝对值。

	//--绝对值System.out.println(Math.abs(-6));

返回最大/小值

--max(a,b):返回两个 int 值中较大的一个。

--min(a,b):返回两个int 值中较小的一个。

		//--最大值max、最小值minSystem.out.println(Math.max(6.5, 6));

随机数

--random() :返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。

		//--随机数 greaterthan or equal to 0.0 and less than 1.0. 默认给随机数的是浮点类型for(int i=0;i<=1000;i++) {System.out.println((int)(Math.random()*10)+1);//*10的范围也只是0~9,只有加1才能将范围扩大到:1~10System.out.println((int)(Math.random()*11));//0~10}//随机类Random ran = new Random();for(int i=0;i<=1000;i++) {System.out.println(ran.nextInt(10)+1);//提供种子值,该10即为种子值

正平方根

--sqrt(a) :返回正确舍入的 double 值的正平方根。

		//正平方根System.out.println(Math.sqrt(3));

次幂

--pow(a,b);返回a 的b次方

		public static void main(String[] args) {//pow方法,乘方System.out.println(Math.pow(2, 3));//2^3}}

日期类型

获取当前日期

<1>--Date date = new Date();

<2>--long item = System.currentTimeMillis();

Date date = new Date(item);

		// <1>创建时间对象,并且获取当前的系统时间Date date = new Date();System.out.println(date);// <2>-时间戳就是1970年1月1日到现今的总毫秒数Date date1 = new Date(System.currentTimeMillis());System.out.println(date1);

日期格式化

--创建SimpleDateFormat的对象:

SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

--使用:Date 格式化输出String字符串

String item = sm.format(new Date());

--String类型表示日期转换为java.util.Date

Date dItem = sm.parse("2017-07-07 16:48:14");

public static void main(String[] args) throws ParseException {// 时间格式化的类  24HH//创建SimpleDateFormat的对象SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//使用:将date转换为字符串String time = sm.format(date);System.out.println(time);//将字符串转换为date;//注意:一定要对应创建SimpleDateFormat的时间格式Date dateTime = sm.parse("2022-01-14 15:22:22");System.out.println(dateTime);}

Calendar类

定义

Calendar为一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。日历类的使用、能够比较精准地获取日期数据  年 、月、日 时、分、秒  周、星期等等的日期信息。

方法

获取Calendar类的实例对象

Calendar calendar = Calendar.getInstance();
//使用默认时区和语言环境获得一个日历。

设置当前时间

//法一
calendar.setTimeInMillis(System.currentTimeMillis());
//法二
calendar.set(Calendar.YEAR, 2018);
calendar.set(Calendar.MONTH, 7);
calendar.set(Calendar.DAY_OF_MONTH, 6);

获取年/月/日/秒

获取年份

calendar.get(Calendar.YEAR);

获取月份:(0~11)

calendar.get(Calendar.MONTH);

获取当前月份的日期:

calendar.get(Calendar.DAY_OF_MONTH);

获取当前时间的秒数:

 calendar.get(Calendar.SECOND);

		//1、如何获取Calendar  使用getInstance获取对象,得到当前时间信息Calendar c = Calendar.getInstance();//c.setTimeInMillis(System.currentTimeMillis());//c.set(Calendar.YEAR, 2021);//System.out.println(c.get(Calendar.YEAR));System.out.println(c.get(Calendar.MONTH));//0~11System.out.println(c.get(Calendar.DAY_OF_MONTH));System.out.println(c.get(Calendar.HOUR));System.out.println(c.get(Calendar.MINUTE));System.out.println(c.get(Calendar.SECOND));//获取今天是周几System.out.println(c.get(Calendar.DAY_OF_WEEK));//注意:周日是一周的开始{第一天}//获取这周是这个月的第几周System.out.println(c.get(Calendar.WEEK_OF_MONTH));//获取今天是今年的第几天System.out.println(c.get(Calendar.DAY_OF_YEAR));

练习

//题目:获取2020和2021年的母亲节的日期;tips:5月的第二个星期日  要求:输出时间格式为yyyy年MM月dd日c.set(Calendar.YEAR, 2021);c.set(Calendar.MONTH, 4);c.set(Calendar.DAY_OF_WEEK_IN_MONTH, 2);c.set(Calendar.DAY_OF_WEEK, 1);Date date = c.getTime();SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd");System.out.println(sm.format(date));

BigDecimal类

定义:BigDecimal类是一个算术运算类,它可以给浮点类型的运算控制算术精度,但是要注意在创建对象是入参字符串类型的数据

public static void main(String[] args) {// 测试对比double item1 = 12.95983544;float item2 =   3.54872f;System.out.println(item1-item2);	// 输出答案:9.411115557034913 //使用BigDecimal来进行算术运算//注意:参数必须得为字符串类型的数据BigDecimal b1 = new BigDecimal("1.2");//12.95983544BigDecimal b2 = new BigDecimal("3.0");//3.54872System.out.println(b1.subtract(b2));//减法//9.41111544System.out.println(b1.add(b2));//加法System.out.println(b1.multiply(b2));//乘法System.out.println(b1.divide(b2));//除法//获取b1数值System.out.println(b1.doubleValue());    	//返回double类型}

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

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

相关文章

基于Springboot的自习室预订系统

基于SpringbootVue的自习室预订系统的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录页 网站首页 公告信息 留言反馈 后台管理 学生信息管理 公告信息管理 留言…

SGI_STL空间配置器源码剖析(四)_S_refill函数

代码如下&#xff0c;解析已在注释中&#xff0c;下次再剖析_S_chunk_alloc函数和__nobjs变量的作用。 /* Returns an object of size __n, and optionally adds to size __n free list.*/ /* We assume that __n is properly aligned. __n校准过&#xff08;向上临近8&#x…

postgis使用

1 postgreSQL 安装 下载&#xff1a;https://www.postgresql.org/ 2 postgis postgis 属于postgresql插件&#xff0c;安装pg时勾选上postgis 3. 导入shp数据 postgresql可以导入shp数据 4. postgis使用 https://postgis.net/workshops/postgis-intro/creating_db.html

入门:多层感知器Multiple-Layer Perceiver, MLP

本文将简单介绍多层感知器&#xff08;MLP&#xff09;的基本概念、原理和应用。MLP是一种前馈人工神经网络&#xff0c;由多层节点组成&#xff0c;每层节点通过权重和偏置与下一层节点相连。MLP在许多领域都有广泛的应用&#xff0c;如分类、回归、自然语言处理等。 本文将分…

Java --- Java语言基础

这个Java可是个好东西&#xff0c;是一门面对对象的程序设计语言&#xff0c;其语法很类似C&#xff0c;所以学过C的伙伴们就很好上手&#xff0c;另外Java对C进行了简化与提高&#xff0c;这个在后期学习会感受到&#xff0c;Java还有很多的类库API文档以及第三方开发包。 这…

Excel与项目管理软件比较?哪个是项目组合管理的最佳选择?

在定义和管理每个正在进行的项目的资源、任务、收益、风险和优先级时&#xff0c;项目组合管理已成为公司的战略要素。为了实现高效的项目组合管理&#xff0c;PMO 经理需要评估Excel 是否满足他们管理项目组合的需求&#xff0c;或者是否应该尝试不同的解决方案&#xff0c;例…

Linux IPC-Daemon: 工业级通信的守护者

引言 在Linux系统中&#xff0c;进程间通信&#xff08;Inter-Process Communication, IPC&#xff09;是系统编程的基础之一。IPC机制允许运行在同一个系统上的进程之间共享数据和信息。一个专门设计用于此任务的后台服务程序即为IPC-Daemon。这种守护进程在工业自动化、服务…

攻防演练作为红方,使用Metasploit模拟攻击

在安装Metasploit之后&#xff0c;你可以使用它来执行各种安全测试和模拟攻击。以下是如何使用Metasploit进行基本扫描和攻击的步骤&#xff1a; 1. 启动Metasploit 首先&#xff0c;打开终端并启动Metasploit控制台&#xff1a; msfconsole这个命令会启动Metasploit框架&am…

SRNIC、选择性重传、伸缩性、连接扩展性、RoCEv2优化(六)

参考论文SRDMA&#xff08;A Scalable Architecture for RDMA NICs &#xff09;&#xff1a;https://download.csdn.net/download/zz2633105/89101822 借此&#xff0c;对论文内容总结、加以思考和额外猜想&#xff0c;如有侵权&#xff0c;请联系删除。 如有描述不当之处&…

C语言每日一题(68)无重复字符的最长字串

题目链接 无重复字符的最长字串 题目描述 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长连续子字符串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子字符串是 "abc"&#xff0c;所以其长度为 3。示…

04异常Lambda算法正则

异常 异常是什么&#xff1f; 异常是代码在编译或者执行的过程中可能出现的错误。避免异常的出现&#xff0c;同时处理可能出现的异常&#xff0c;让代码更稳健。 异常分为几类&#xff1f; 编译时异常、运行时异常。编译时异常&#xff1a;没有继承RuntimeExcpetion的异常…

Linux: 工具: tshark 抓到了收方向的ESP明文包?

根据这个描述&#xff0c;看着是正常的&#xff0c; 抓到包之后&#xff0c;可以方便的分析问题&#xff0c;省去在wireshark里解码的问题。 经过调查发现是内核将ESP解开之后&#xff0c;如果是tunnel模式&#xff0c;内核又重新将skb丢给了interface去做处理。这样tshark/tcp…

Java基础(三)--常用工具类

文章目录 第三章、常用工具类一、Java异常1、什么是异常2、异常处理3、常见的异常类型4、throws5、throw6、自定义异常7、异常链 二、包装类1、包装类2、字符串与基本数据类型转换3、包装类的比较 三、String 类1、创建String对象的方法2、String的常用方法3、字符串的存储4、字…

360安全卫士去除广告方法

大安全时代&#xff0c;360 安全卫士为您提供全面安全服务&#xff0c;电脑端下载&#xff1a; https://urlqh.cn/orQqc 在当今数字化时代&#xff0c;网络安全已成为人们日常生活中的重要关切。在这片浩瀚的网络海洋中&#xff0c;360安全卫士犹如一座坚不可摧的灯塔&#xf…

Java23种设计模式理解----创建型模式

工厂模式 我要实现一个发送邮件的功能&#xff0c;一开始我想着是准备用QQ邮箱去发送&#xff0c;于是我在项目消息通知模块定义了一个类 package com.hwq.message;/*** author huangwq* date 2024/4/12* description 描述*/ public class QQMailService {public boolean sen…

UE5+GIS技术应用场景介绍

随着科技的不断发展,虚幻引擎(Unreal Engine)和地理信息系统(Geographic Information System,GIS)技术在众多领域得到了广泛的应用。虚幻引擎5(UE5)作为一款功能强大的实时3D创作工具,与GIS技术的结合,为各行各业带来了前所未有的创新。 一、UE5与GIS的结合方式主要…

基于微信公众号,搭建一套简单的电商支付环境(下)-- 微信公众号的对接

一、接着上文 上文把部署情况介绍了&#xff0c;侧重于网络及代理&#xff0c;本文选择把微信公众号的对接实现介绍一下。 还是那句话&#xff0c;微信官方的文档已非常详细&#xff0c;这里先摘抄一些重要的概念。 其次&#xff0c;待对接微信公众号的接口众多&#xff0c;…

Qt | 视频播放器(multimedia、multimediawidgets)

QT +=multimedia 通俗解释: 此代码行告诉编译器在构建应用程序时包含多媒体库。这意味着您的应用程序将能够播放和显示音频和视频文件。 使用分步说明构建模型: 创建一个新的 Qt 项目。 在 .pro 文件中添加以下行: QT += multimedia 导入必要的多媒体头文件: #include &l…

普乐蛙VR航天体验馆设备VR太空飞船VR元宇宙展厅

三天小长假就要来啦&#xff01;五一假期也即将到来。老板们想捉住人流量这个财富密码吗&#xff1f;那快快行动起来&#xff01;开启VR体验项目&#xff0c;假期赚翻天&#xff01;小编亲测&#xff01;&#xff01;这款设备刺激好玩&#xff0c;想必会吸引各位家长小孩、学生…

java使用ShutdownHook优雅地停止服务

在Java程序中可以通过添加关闭钩子&#xff0c;实现在程序退出时关闭资源、平滑退出的功能。 使用Runtime.addShutdownHook(Thread hook)方法&#xff0c;可以注册一个JVM关闭的钩子&#xff0c;这个钩子可 这通常用于确保在应用程序退出时能够执行一些清理工作&#xff0c;比…