版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
讲师:XXX时间:
年
月目录CONTENTWS01.项目开发环境搭建02.学生成绩管理03.学生基本信息管理04.不同类别学生信息管理05.学生基本信息查找与计算目录CONTENTWS06.使用集合实现学生信息管理07.学生信息管理系统异常处理08.使用文件实现学生信息存储09.使用JDBC实现学生信息管理10.图书管理系统设计与实现项目
五
学生基本信息查找与计算项目5学生基本信息查找与计算任务一包装类和字符串类任务二
Java常用类知识目标熟悉Java包装类及其提供的常用方法。了解
String
类、StringBuffer
类和
StringBuilder
类等字符串类的区别,掌握它们提供的常用方法。掌握Math类及其提供的常用方法。掌握日期和时间类的用法,包括创建日期和时间对象方法,以及计算、比较、格式化日期和时间方法。掌握使用Random类生成随机数的方法。能力目标能够根据不同的应用场景选择合适的字符串类处理字符串。能够使用Java常用类提供的方法处理实际问题。素养目标培养灵活应对问题和快速适应变化的能力。提升运用科技思维解决实际问题的能力。点击跳过情境扫码观看“学生基本信息查找与计算”视频,讨论并回答下列问题问题1:在学生信息管理系统中,一般根据什么查
找学生基本信息?问题2:在Java中,如何根据出生日期计算年龄?扫码学习学生基本信息查找与计算任务一包装类和字符串类包装类
包装类是将基本数据类型包装成对象的类,它们位于java.lang包中。基本数据类型对应的包装类
基本数据类型对应的包装类byte(字节型)Bytefloat(单精度浮点型)Floatshort(短整型)Shortdouble(双精度浮点型)Doubleint(整型)Integerchar(字符型)Characterlong(长整型)Longboolean(布尔型)Boolean基本数据类型对应的包装类Java5
引入了自动装箱和拆箱机制,这使得基本数据类型数据和包装类对象之间的转换更加便捷。自动装箱
自动装箱是指将基本数据类型数据自动转换为包装类对象。自动拆箱
自动拆箱是指将包装类对象自动转换为基本数据类型数据。//自动装箱IntegerintObj=10;DoubledoubleObj=3.14;CharactercharObj='A';//自动拆箱intintValue=intObj;doubledoubleValue=doubleObj;charcharValue=charObj;示例将字符串转换为指定的基本数据类型(char
型除外)数据。parseXxx(Strings)比较两个相同包装类对象值的大小。compareTo(Objectobj)将字符串转换为包装类(Character类除外)对象。valueOf(Strings)将包装类对象转换为字符串。toString()包装类常用方法(4)(1)(2)(3)【运行结果】实例:5-1
使用包装类【参考代码】/*Wrapper.java*/packageproject5.example5_1;publicclassWrapper{……(详见教材)字符串特性
字符串在Java中作为引用类型,以字符数组形式驻存于内存,支持多种操作与处理。字符串类应用Java提供String、StringBuffer与StringBuilder类,分别适用于不同场景,如常量、线程安全变长与非线程安全变长字符串处理。1.String类String类特性String类用于创建内容不可变的字符串对象,确保线程安全,避免并发问题。创建方式可通过直接赋值或使用new关键字调用构造方法来实例化String类对象。Stringstr1="Hello,World!";Stringstr2=newString("Hello,World!");示例
创建
String
类对象的方式有两种,一种是直接赋值,另一种是通过
new
关键字调用String类的构造方法进行实例化。
使用直接赋值方式创建多个
String
类对象,若这些对象的赋值相同(字符串内容相同),则它们引用内存中同一个字符串对象(字符串内容和引用地址都相同)。Stringa="mytosec";Stringb="mytosec";示例a和b同时引用内存中的“mytosec”
a和b引用内存中的同一字符串对象字符串常量池机制
使用直接赋值创建String对象时,系统将字符串存入常量池,避免重复创建相同内容的对象。内存优化原理
通过共享相同字符串的内存地址,常量池机制显著降低内存消耗,确保数据一致性与资源利用率。
使用
new
关键字创建多个
String
类对象,即使这些对象的赋值相同(字符串内容相同),它们也会引用内存中不同的字符串对象(字符串内容相同但引用地址不同)。Stringa=newString("mytosec");Stringb=newString("mytosec");示例上述代码中,a和b分别引用内存中不同的字符串对象。a和b引用内存中不同的字符串对象
在
Java
中,String
类对象一旦被初始化,它的内容就不能改变了。如果对
String
类对象重新赋值,并不是对原来的字符串对象进行修改,而是创建新的字符串对象。Stringstr="love";str="lovemysec";示例上述代码中,实际存在两个字符串对象,一个是“love”字符串对象,长度为
4;一个是“lovemysec”字符串对象,长度为9。
重新引用字符串对象在
Java
中,原来被引用的字符串对象若没有其他对象或变量来引用它,就会在适当的时候被Java的垃圾回收机制回收。方
法返回值类型说
明length()int返回字符串的长度equals()boolean判断两个字符串中的内容是否相同toLowerCase()String将字符串中的英文字符转换为小写toUpperCase()String将字符串中的英文字符转换为大写toCharArray()char[]将字符串转换为字符数组charAt(intindex)char返回字符串中指定索引index的字符indexOf(intch)int返回指定字符
ch(字符在
Unicode
字符集中的位置)在字符串中第一次出现的索引indexOf(Stringstr)int返回指定字符串
str
在字符串中第一次出现的索引lastIndexOf(charch)int返回指定字符
ch
在字符串中最后一次出现的索引lastIndexOf(Stringstr)int返回指定字符串
str
在字符串中最后一次出现的索引
String类提供的常用方法方
法返回值类型说
明substring(intbeginIndex)String返回字符串中索引从
beginIndex(包含)到末尾的子字符串substring(intbeginIndex,intendIndex)String返回字符串中索引从
beginIndex(包含)到endIndex(不包含)的子字符串concat(Stringstr)String将指定字符串str连接到字符串的末尾replace(charold,charnew)String将字符串中的指定字符(串)old
替换为新字符(串)newsplit(Stringregex)String[]根据指定字符串regex拆分字符串trim()String返回前后不含任何空格的字符串compareTo(Stringstr)int按字母顺序比较两个字符串。如果两个字符串相等,则返回
0;如果字符串在参数字符串之前,则返回−1;如果字符串在参数字符串之后,则返回1toString()String返回字符串本身
String类提供的常用方法(续表)“+”连接符“+”连接符用于连接两个字符串。Stringstr1="Hello";Stringstr2=str1+"World!"; //str2的值为“HelloWorld!”“==”运算符用于判断两个字符串是否为同一个对象。当字符串内容和引用地址都相同时,返回值为
true;当字符串内容不同或字符串内容相同但引用地址不同时,返回值为false。【运行结果】实例:5-2
处理String类型字符串【参考代码】/*StringOperate.java*/packageproject5.example5_2;publicclassStringOperate{……(详见教材)2.StringBuffer类线程安全特性字符串处理StringBuffer类用于处理可变字符串对象,支持多次修改且不产生新实例,适用于高频操作场景以提升处理效率。StringBuffer类通过同步机制实现线程安全,确保多线程并发访问共享对象时数据完整性不受破坏。
创建一个空的StringBuffer类对象,初始容量为16个字符。StringBuffer()
创建一个空的但具有指定初始容量
capacity
的StringBuffer类对象。StringBuffer(intcapacity)创建一个初始内容为
str
的
StringBuffer
类对象,并额外提供16个字符的缓冲区,即初始容量为str的长度加16。StringBuffer(Stringstr)(1)(2)(3)StringBuffer类的构造方法使用不同构造方法创建StringBuffer类对象//创建一个空的字符串StringBuffersb1=newStringBuffer();//创建一个初始容量为30个字符的字符串StringBuffersb2=newStringBuffer(30);//创建一个初始内容为“”的字符串StringBuffersb3=newStringBuffer("");示例方
法返回值类型说
明length()int返回字符串的长度capacity()int返回字符串的容量setCharAt(intpos,charch)void将字符串中指定索引pos的字符设置为新字符chappend(Stringstr)StringBuffer将指定字符串str追加到字符串的末尾insert(intoffset,Stringstr)StringBuffer在字符串的指定索引offset处插入字符串strdelete(intstart,intend)StringBuffer删除字符串中索引从
start(包含)到
end(不包含)的子字符串deleteCharAt(intpos)StringBuffer删除字符串中指定索引pos的字符reverse()StringBuffer将字符串中的字符反转toString()String将StringBuffer类型字符串转换为String类型replace(intstart,intend,Stringstr)StringBuffer将字符串中索引从
start(包含)到
end(不包含)的子字符串替换为新字符串strStringBuffer类提供的常用方法实例:5-3
处理StringBuffer类型字符串【参考代码】/*StringBufferOperate.jiava*/packageproject5.example5_3;publicclassStringBufferOperate{publicstaticvoidmain(String[]args){……(详见教材)【运行结果】3.StringBuilder类StringBuilder
类是非线程安全的,在单线程环境中不需要进行线程同步,因此在单线程环境中使用StringBuilder类处理字符串的效率更高。insert()delete()reverse()
append()replace()123实施流程在项目
src
目录下的
project5
包中新建
task1
包。在
task1
包中新建
StudentSearch
类。运行
StudentSearch
类查找学生基本信息扫码学习包装类和字符串类包装类字符串类任务二Java常用类指数运算对数运算平方根运算三角函数运算Math
类提供了丰富的数学运算方法Math
类中的所有方法和常量都是静态的,可以直接通过类名调用和访问,如
Math.E(自然对数的底数)和
Math.PI(圆周率)。方
法返回值类型说
明abs(doublea)double返回a的绝对值cbrt(doublea)double返回a的立方根sqrt(doublea)double返回a的平方根ceil(doublea)double向上取整,返回大于或等于
a
的最小整数的double型值floor(doublea)double向下取整,返回小于或等于
a
的最大整数的double型值round(doublea)/round(floata)long/int四舍五入,返回最接近a的long型/int型值max(doublea,doubleb)double返回a和b中的较大值min(doublea,doubleb)double返回a和b中的较小值pow(doublea,doubleb)double返回a的b次幂log(doublea)double返回以e为底数a的对数random()double返回一个[0.0,1.0)的随机数Math类提供的常用方法abs()方法、max()方法和
min()方法有重载方法,支持
int
型、long
型和float型参数,返回相应类型的值。实例:5-4
使用Math类【参考代码】/*MathTest.java*/packageproject5.example5_4;publicclassMathTest{publicstaticvoidmain(String[]args){……(详见教材)【运行结果】实例:5-4
使用Math类【结果说明】
求
a
的平方根时返回
NaN,这是因为
a
为负数,无法计算平方根。1.LocalDate类LocalDate
LocalDate
类是一个表示日期的类,用于创建和处理不可变的日期对象。它提供了多种方法来创建日期对象。概述(1)now()
获取系统当前日期创建LocalDate类对象。(2)of()
根据指定的年、月和日创建
LocalDate
类对象。(3)parse()
将日期字符串解析为
LocalDate
类对象,其中的日期字符串格式必须为“yyyy-MM-dd”。LocalDate类创建日期对象的方法方
法返回值类型说
明getYear()int获取年份getMonth()Month获取月份枚举值,如APRIL(四月)getMonthValue()int获取月份(1~12)getDayOfYear()int获取年份中的第几天getDayOfMonth()int获取月份中的第几天getDayOfWeek()DayOfWeek获取星期枚举值,如THURSDAY(星期四)plusXxxs(longnum)LocalDate当前日期加指定的年数、月数、周数或天数,如plusYears(1)表示当前日期加1年minusXxxs(longnum)LocalDate当前日期减指定的年数、月数、周数或天数,如minusDays(1)表示当前日期减1天isBefore(LocalDatedate)boolean判断当前日期是否在date之前isAfter(LocalDatedate)boolean判断当前日期是否在date之后isEqual(LocalDatedate)boolean判断当前日期是否与date相同isLeapYear()boolean判断当前日期是否是闰年LocalDate类提供的常用方法创建
LocalDate
类对象后,可以获取该对象中的日期信息,对日期进行计算和比较。2.LocalTime类LocalTime类LocalTime
类是一个表示时间的类,用于创建和处理不可变的时间对象。概述获取系统默认时区的当前时间创建LocalTime类对象。(1)now()
根据指定的时、分、秒和纳秒(时和分不能省略)创建
LocalTime
类对象。(2)of()将时间字符串解析为
LocalTime
类对象,其中的时间字符串格式为“时:分:秒.纳秒”。(3)parse()LocalTime类创建日期对象的方法方
法返回值类型说
明getHour()int获取小时getMinute()int获取分钟getSecond()int获取秒getNano()int获取纳秒plusXxxs(longnum)LocalTime当前时间加指定的时、分、秒或纳秒,如
plusHours(1)表示当前时间加1小时minusXxxs(longnum)LocalTime当前时间减指定的时、分、秒或纳秒,如minusSeconds(1)表示当前时间减1秒isBefore(LocalTimetime)boolean判断当前时间是否在time之前isAfter(LocalTimetime)boolean判断当前时间是否在time之后compareTo(LocalTimetime)boolean比较两个时间,当前时间早于time返回−1,等于time返回0,晚于time返回1
LocalTime类提供的常用方法LocalTime
类还提供了几个时间常量,如
MIDNIGHT(表示
00:00)、NOON(表示12:00)、MIN(表示00:00)、MAX(表示23:59:59.999999999)。创建LocalTime类对象后,可以获取该对象中的时间信息,对时间进行计算和比较。【运行结果】实例:5-5
使用LocalDate类和LocalTime类【参考代码】/*DateTimeExample1.java*/packageproject5.example5_5;importjava.time.*;……(详见教材)3.LocalDateTime类LocalDateTime类
LocalDateTime
类是一个表示日期和时间的类,它提供了多种方法来创建日期时间对象。概述now()获取系统默认时区的当前日期和时间创建LocalDateTime类对象。(1)of()
根据指定的年、月、日、时、分、秒和纳秒创建
LocalDateTime
类对象。(2)parse()将日期时间字符串解析为LocalDateTime类对象。(3)LocalDateTime类创建日期对象的方法创建LocalDateTime类对象后,可以获取该对象中的日期和时间信息,对日期和时间进行计算和比较。LocalDateTime类提供的常用方法与LocalDate类和LocalTime类提供的常用方法相同。4.Period类LocalTime类Period
类是一个表示日期间隔的类,主要用于计算两个日期之间的间隔,可以是年、月和天。概述(1)(2)(3)(4)根据指定的年数、月数和天数创建Period类对象。of()根据指定的年数创建
Period
类对象。ofYears()根据指定的月数创建
Period
类对象。ofMonths()根据指定的天数创建
Period
类对象ofDays()Period类创建日期对象的方法(5)(6)将日期间隔字符串解析为
Period
类对象。根据两个
LocalDate
类对象(如
date1
和
date2)计算日期间隔创建Period类对象between()parse()Period类创建日期对象的方法创建Period类对象后,可以使用getYears()方法、getMonths()方法和getDays()方法分别获取该对象中的年数、月数和天数,还可以使用plusXxxs()和minusXxxs()方法分别增加和减少日期间隔。日期间隔字符串
日期间隔字符串必须满足
ISO-8601
格式规则,如
P2Y3M5D。其中,P
表示Period,Y表示年,M表示月,D表示天5.DateTimeFormatter类LocalDateTime类DateTimeFormatter
类用于格式化和解析日期和时间对象,该类位于
java.time.format包中。它提供了
ofPattern(Stringpat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物标志物在降糖药心肾获益评估中的应用
- 生物材料编程调控成骨分化的策略
- 生物支架引导的组织再生策略
- 生物打印技术在脊髓损伤修复中的递药系统
- 生物化学虚拟仿真与代谢通路分析
- 生物制品稳定性试验冷链验证要点
- 生物制剂失应答的炎症性肠病发病机制新认识
- 生物制剂临床试验中中心效应控制方法
- 网络安全防御与渗透测试的保密协议
- 制造业生产经理面试要点解析及答案
- DB41T 1960.2-2021 公共机构能耗定额 第2部分:医疗机构
- 成人肥胖食养指南2024年版-国家卫健委-202403
- 罗伯特议事规则
- 医院急诊科简介
- 华为企业社会责任报告
- 几何模型6.4+“胡不归”模型(直角三角形模型) 中考数学二轮复习必会几何模型剖析(全国通用)
- 《线性代数》教案教案整本书全书电子教案
- 机制砂混凝土配制与施工质量控制培训课件
- 第4章 甲壳素和壳聚糖 天然高分子材料
- 茶叶知识培训:茶叶加工
- 红色影视鉴赏学习通超星课后章节答案期末考试题库2023年
评论
0/150
提交评论