版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第07章 常用类库API课程大纲1、字符串操作2、程序国际化3、Math与Random类4、日期操作类5、对象比较器6、对象的克隆7、System与 Runtime类8、数字处理工具类9、MD5工具类10、数据结构之二叉树实现11、JDK1.8新特性1、字符串操作String类1、String可以表示一个字符串。2、String类实际是使用字符数组存储的。String类的两种赋值方式:(1)一种称为直接赋值:String name = “小白”(2)通过关键字new调用String的构造方法赋值String name = new String(“小白”)1、字符串操作String类String
2、类的两种赋值分析:1、字符串常量池2、String name = new String(“小白”),在内存中的分析3、String name = “小白”,在内存中的分析String类编译期与运行期分析:1、编译期和运行期2、代码示例:4种情况分析1、字符串操作String类String类字符与字符串操作方法:No方法名称类型描述1public char charAt(int index)普通根据下标找到指定的字符2public char toCharArray()普通以字符数组的形式返回全部的字符串内容3public String(char value)构造将全部的字符数组变为字符串4pub
3、lic String(char value,int offset,int count)构造将指定范围的字符数组变为字符串1、字符串操作String类String类字节与字符串操作方法:No.方法名称类型描述1public byte getBytes()普通将字符串变为字节数组2public String(byte bytes)构造将字节数组变为字符串3public String(byte bytes,int offset,int length)构造将指定范围的字节数组变为字符串4public String(bytebytes, StringcharsetName)构造通过使用指定的 chars
4、et 解码指定的 byte 数组,构造一个新的 String1、字符串操作String类String类判断是否以指定内容开头或结尾:No.方法名称类型描述1public boolean startsWith(String prefix)普通从第一个位置开始判断是否以指定的内容开头2public boolean startsWith(String prefix,int toffset)普通从指定的位置开始判断是否以指定的内容开头3public boolean endsWith(String suffix)普通判断是否以指定的内容结尾1、字符串操作String类String类替换操作:No.方法名
5、称类型描述1public String replace(char oldChar,char newChar)普通替换指定字符2public String replace(CharSequence target, CharSequence replacement)普通替换指定字符串3public String replaceAll(String regex,String replacement)普通替换指定的字符串4public String replaceFirst(String regex,String replacement)普通替换第一个满足条件的字符串1、字符串操作String类Str
6、ing类字符串截取操作:No.方法名称类型描述1public String substring(int beginIndex)普通从指定位置开始一直截取到末尾2public String substring(int beginIndex,int endIndex)普通截取指定范围的字符串1、字符串操作String类String类字符串拆分操作:No.方法名称类型描述1public String split(String regex)普通按照指定的字符串拆分2public String split(String regex,int limit)普通拆分字符串,并指定拆分的个数1、字符串操作Str
7、ing类String类字符串查找操作:No.方法名称类型描述1public boolean contains(String s)普通返回一个字符串是否存在2public int indexOf(int ch)普通从头查找指定的字符是否存在,char int,如果存在则返回位置,如果不存在则返回“-1”。3public int indexOf(int ch,int fromIndex)普通从指定位置查找指定的字符是否存在,char int,如果存在则返回位置,如果不存在则返回“-1”。4public int indexOf(String str)普通从头查找指定的字符串是否存在,如果存在则返回位
8、置,如果不存在则返回“-1”。5public int indexOf(String str,int fromIndex)普通从指定位置查找字符串是否存在,如果存在则返回位置,如果不存在则返回“-1”。1、字符串操作String类String类字符串查找操作:No.方法名称类型描述6public int lastIndexOf(int ch)普通从字符串的最后向前查找,指定的字符是否存在,如果存在则返回位置,如果不存在则返回“-1”。7public int lastIndexOf(int ch,int fromIndex)普通从字符串的指定的末尾向前查找,指定的字符是否存在,如果存在则返回位置,
9、如果不存在则返回“-1”。8public int lastIndexOf(String str)普通从字符串的最后向前查找,指定的字符串是否存在,如果存在则返回位置,如果不存在则返回“-1”。9public int lastIndexOf(String str,int fromIndex)普通从字符串的指定的末尾向前查找,指定的字符串是否存在,如果存在则返回位置,如果不存在则返回“-1”。1、字符串操作String类String类其它操作方法:No.方法名称类型描述1public boolean isEmpty()普通判断是否为空,指的是内容为空“”2public int length()普通
10、取得字符串的长度3public String toLowerCase()普通转小写4public String toUpperCase()普通转大写5public String trim()普通去掉开头和结尾的空格,中间的空格不去6public String concat(String str)普通字符串连接操作1、字符串操作StringBuffer类在实际开发当中,我们经常会使用到字符串连接的操作,如果用String来操作,则使用“+”号完成字符串的连接操作。使用String连接字符串,代码性能会非常低,因为String的内容不可改变。解决这个问题的方法是使用StringBuffer。Str
11、ingBuffer类源码分析1、字符串操作StringBuffer类StringBuffer常用操作方法方法名称描述public StringBuffer()构造一个空的StringBuffer对象public StringBuffer(String str)将指定的String变为StringBuffer的内容public StringBuffer(CharSequence seq)接收CharSequence接口的实例public StringBuffer append(数据类型 b)提供了很多的append()方法,用于进行字符串连接public StringBuffer delete(
12、int start,int end)删除指定位置的内容public int indexOf(String str)字符串的查询功能public StringBuffer insert(int offset,数据类型 b)在指定位置上增加一个内容public StringBuffer replace(int start,int end,String str)将指定范围的内容替换成其他内容public String substring(int start,int end)截取指定范围的字符串public String substring(int start)字符串截取public StringBu
13、ffer reverse()字符串反转1、字符串操作StringBuilder类StringBuffer的兄弟StringBuilder:一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。JDK1.5以后,字符串相加原理分析2、程序国际化1、对国际化程序的理解Internationalization:国际化程序可以这样理解:同一套程序代码可以在各个语言环境
14、下进行使用。各个语言环境下,只是语言显示的不同,那么具体的程序操作本身都是一样的,那么国际化程序完成的就是这样的一个功能。2、程序国际化2、Locale类Locale 对象表示了特定的地理、政治和文化地区。需要 Locale 来执行其任务的操作称为语言环境敏感的操作,它使用 Locale 为用户量身定制信息。例如,显示一个数值就是语言环境敏感的操作,应该根据用户的国家、地区或文化的风俗/传统来格式化该数值。使用此类中的构造方法来创建 Locale: Locale(String language) Locale(String language, String country)通过静态方法创建Lo
15、cale:getDefault()2、程序国际化3、ResourceBundle类国际化的实现核心在于显示的语言上,通常的做法是将其定义成若干个属性文件(文件后缀是*.properties),属性文件中的格式采用“key=value”的格式进行操作。ResourceBundle类表示的是一个资源文件的读取操作,所有的资源文件需要使用ResourceBundle进行读取,读取的时候不需要加上文件的后缀。getBundle(String baseName)getBundle(String baseName,Locale locale)getString(String key)2、程序国际化4、处理
16、动态文本前面的示例读取的内容都是固定的,如果现在假设要想打印这样的信息“欢迎你,XXX!”,具体的名字不是固定的,那么就要使用动态文本进行程序的处理。进行动态的文本处理,必须使用java.text.MessageFormat类完成。这个类是java.text.Format的子类。3、Math与Random类1、Math类Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。使用Math类可以有两种方式:(1)、直接使用(Math所在的包java.lang为默认引入的包)(2)、使用 import static java.lang.Math.abs; 静态导入stati
17、cdouble PI 比任何其他值都更接近 pi的 double 值abs(doublea) 返回 double 值的绝对值random() 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0round(doublea) 返回最接近参数并等于某一整数的 double 值sqrt(doublea) 返回正确舍入的 double 值的正平方根3、Math与Random类2、Random类Random:此类的实例用于生成伪随机数流 nextLong() 返回下一个伪随机数的long 值nextBoolean() 返回下一个伪随机数boolean 值nextDouble() 返回下一
18、个伪随机数,在 0.0 和 1.0 之间的 double 值nextFloat()返回下一个伪随机数,在 0.0 和 1.0 之间的 float 值nextInt() 返回下一个伪随机数,int 值nextInt(intn)返回一个伪随机数,在 0(包括)和指定值分布的 int 值4、日期操作类1、Date类类 Date 表示特定的瞬间,精确到毫秒,也就是程序运行时的当前时间。Date date = new Date(); / 实例化Date对象,表示当前时间2、Calendar类Calendar,日历类,使用此类可以将时间精确到毫秒显示。/两种实例化方式Calendar c = Calend
19、ar.getInstance();Calendar c = new GregorianCalendar();3、 DateFormat类及子类SimpleDateFormat5、对象比较器对两个或多个数据项进行比较,以确定它们是否相等,或确定它们之间的大小关系及排列顺序称为比较。前面我学习过Arrays.sort方法可实现对象的排序操作:public static void sort(Objecta)(1)Comparable接口:此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法。(2)Comparator接口:Co
20、mparable接口是要求自定义类去实现,按照OO原则:对修改关闭,对扩展开放。那么如果这个类已经定义好了,不想再去修改它,那如何实现比较呢?Comparator接口:强行对某个对象collection进行整体排序的比较。6、对象的克隆将一个对象复制一份,称为对象的克隆技术。在Object类中存在一个clone()方法:protected Object clone() throws CloneNotSupportedException如果某个类的对象要想被克隆,则对象所在的类必须实现Cloneable接口。此接口没有定义任何方法,是一个标记接口。7、System与 Runtime类System
21、类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。 1、成员变量System类内部包含in、out和err三个成员变量,分别代表标准输入流(键盘输入),标准输出流(显示器)和标准错误输出流。 2、成员方法System类中提供了一些系统级的操作方法(1)public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)该方法的作用是数组拷贝,也就是将一个数组中的内容复制到另外一个数组中的指定位置,由于该方法是native方法,所以性能上比使用循环
22、高效。(2)public static long currentTimeMillis()该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。7、System与 Runtime类(3)public static void exit(int status)该方法的作用是退出程序。其中status的值为0代表正常退出,非零代表异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等。(4)public static void gc()该方法的作用是请求系统进行垃圾回收。至于系统是否立刻回收,则取决于系统中垃圾回
23、收算法的实现以及系统执行时的情况。(5)public static String getProperty(String key)该方法的作用是获得系统中属性名为key的属性对应的值。java.versionJava 运行时环境版本java.homeJava 安装目录操作系统的名称os.version操作系统的版本用户的账户名称user.home用户的主目录user.dir用户的当前工作目录7、System与 Runtime类Runtime类:每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。/获取Java运行时相关的运行时对象Runtime rt =
24、 Runtime.getRuntime();System.out.println(处理器数量: + rt.availableProcessors()+ 个);System.out.println(Jvm总内存数 :+ rt.totalMemory()+ byte);System.out.println(Jvm空闲内存数: + rt.freeMemory()+ byte);System.out.println(Jvm可用最大内存数: + rt.maxMemory()+ byte);/在单独的进程中执行指定的字符串命令。 rt.exec(notepad);8、数字处理工具类BigInteger:可
25、以让超过Integer范围内的数据进行运算。构造方法:public BigInteger(String val)常用方法:public BigInteger add(BigInteger val)public BigInteger subtract(BigInteger val)public BigInteger multiply(BigInteger val)public BigInteger divide(BigInteger val)public BigInteger divideAndRemainder(BigInteger val)BigDecimal:由于在运算的时候,float类
26、型和double很容易丢失精度,为了能精确的表示、计算浮点数,Java提供了BigDecimal,不可变的、任意精度的有符号十进制数。构造方法:public BigDecimal(String val)常用方法:public BigDecimal add(BigDecimal augend)public BigDecimal subtract(BigDecimal subtrahend)public BigDecimal multiply(BigDecimal multiplicand)public BigDecimal divide(BigDecimal divisor)8、数字处理工具类D
27、ecimalFormat:Java 提供 DecimalFormat类,帮你用最快的速度将数字格式化为你需要的样子。例如,取2位小数。示例:double pi=3.1415927;/圆周率 /取一位整数,结果:3System.out.println(new DecimalFormat(0).format(pi); /取一位整数和两位小数,结果3.14System.out.println(new DecimalFormat(0.00).format(pi);/取两位整数和三位小数,整数不足部分以0填补,结果:03.142System.out.println(new DecimalFormat(0
28、0.000).format(pi);/取所有整数部分,结果:3System.out.println(new DecimalFormat(#).format(pi);/以百分比方式计数,并取两位小数,结果:314.16%System.out.println(new DecimalFormat(#.#%).format(pi);9、MD5工具类MD5的全称是Message-Digest Algorithm 5(信息-摘要算法) /确定计算方法MessageDigest md5=MessageDigest.getInstance(MD5);/JDK1.8新增Base64String newstr = Base64.getEncoder().encodeToString(md5.digest(str.getBytes(utf-8);/1.8之前使用sun.m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度摄影师与摄影棚运营方居间合同2篇
- 二零二五版社区配送订餐服务合同范本与社区管理协议3篇
- 二零二五年度酒店地毯绿色生产与环保认证合同3篇
- 二零二五年新能源充电桩建设运营合同样本3篇
- 二零二五版高端住宅项目全程代理销售合同3篇
- 二零二五版基因合成与生物技术知识产权转让合同3篇
- 二零二五版10月大型设备运输委托合同2篇
- 二零二五版广西事业单位聘用示范性合同模板12篇
- 2025年度出口货物环保认证服务合同3篇
- 二零二五年度腻子材料国际贸易代理合同2篇
- 常见老年慢性病防治与护理课件整理
- 履约情况证明(共6篇)
- 云南省迪庆藏族自治州各县区乡镇行政村村庄村名居民村民委员会明细
- 设备机房出入登记表
- 六年级语文-文言文阅读训练题50篇-含答案
- 医用冰箱温度登记表
- 零售学(第二版)第01章零售导论
- 大学植物生理学经典05植物光合作用
- 口袋妖怪白金光图文攻略2周目
- 光伏发电站集中监控系统通信及数据标准
- 三年级下册生字组词(带拼音)
评论
0/150
提交评论