您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > 马剑威Java_07_常用类库API
第7章:常用类库API课程大纲课程大纲1、StringBuffer类g2、程序国际化3、Math与Random类4A类4、Arrays类5、二分查找算法6、日期操作类日期操作类7、对象比较器8、对象的克隆数据结构之叉树实现9、数据结构之二叉树实现1SiBff类1、StringBuffer类在实际开发当中,我们经常会使用到字符串连接的操作,如果用String来操作,则使用“+”号完成字符串的连接操作操作。使用String连接字符串,代码性能会非常低,因为String的内容不可改变。解决这个问题的方法是使用StringBuffer。StringBuffer类原码分析1SiBff类1、StringBuffer类StringBuffer常用操作方法g方法名称描述public StringBuffer()构造一个空的StringBuffer对象public StringBuffer(String str)将指定的String变为StringBuffer的内容接收接的实例public StringBuffer(CharSequenceseq)接收CharSequence接口的实例public StringBuffer append(数据类型b)提供了很多的append()方法,用于进行字符串连接public StringBuffer delete(intstart,intend)删除指定位置的内容publicintindexOf(Stringstr)字符串的查询功能public intindexOf(String str)字符串的查询功能public StringBuffer insert(intoffset,数据类型b)在指定位置上增加一个内容public StringBuffer replace(intstart,intend,Stringstr)将指定范围的内容替换成其他内容public String substring(intstart,intend)截取指定范围的字符串字符串截取public String substring(intstart)字符串截取public StringBuffer reverse()字符串反转1SiBff类1、StringBuffer类StringBuffer的兄弟StringBuilder:gg一个可变的字符序列。此类提供一个与StringBuffer 兼容的API,但不保证同步。该类被设计用作StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比StringBuffer情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比StringBuffer 要快。2程序国际化2、程序国际化1、对国际化程序的理解Internationalization:国际化程序可以这样理解:同一套程序代码可以在各个语言环境下进行使用。各个语言环境下只是语言显示的不同那么具体的程序操作本身都是样的那么国际各个语言环境下,只是语言显示的不同,那么具体的程序操作本身都是一样的,那么国际化程序完成的就是这样的一个功能。2程序国际化2、程序国际化2、Locale类Locale 对象表示了特定的地理、政治和文化地区。需要Locale 来执行其任务的操作称为语言环境敏感的操作,它使用Locale 为用户量身定制信息。例如,显示一个数值就是语言环境敏感的操作,应该根据用户的国家、地区或文化的风俗/传统来格式化该数值。环境敏感的操作,应该根据用户的国家、地区或文化的风俗/传统来格式化该数值。使用此类中的构造方法来创建Locale:Locale(String language) Locale(String language, String country)通过静态方法创建Locale:getDefault()getDefault()2程序国际化2、程序国际化3、ResourceBundle类国际化的实现核心在于显示的语言上,通常的做法是将其定义成若干个属性文件(文件后缀是*.properties),属性文件中的格式采用“key=value”的格式进行操作。ResourceBundle类表示的是一个资源文件的读取操作,所有的资源文件需要使用ResourceBundle进行读取,读取的时候不需要加上文件的后缀。getBundle(String baseName)getBundle(StringbaseNameLocalelocale)getBundle(String baseName,Localelocale)getString(String key)2程序国际化2、程序国际化4、处理动态文本前面的示例读取的内容都是固定的,如果现在假设要想打印这样的信息“欢迎你,XXX!”,具体的名字不是固定的,那么就要使用动态文本进行程序的处理。进行动态的文本处理必须使用javatextMessageFormat类完成这个类是javatextFormat的进行动态的文本处理,必须使用java.text.MessageFormat类完成。这个类是java.text.Format的子类。3Mh与Rd类3、Math与Random类1、Math类1、Math类Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。staticdouble PI比任何其他值都更接近pi的double值比任何其他值都更接近pi的double 值abs(doublea) 返回double 值的绝对值random() 返回带正号的double 值,该值大于等于0.0 且小于1.0d(dbl)返回昀接近参数并等于某整数的bl值round(doublea) 返回昀接近参数并等于某一整数的double 值sqrt(doublea) 返回正确舍入的double 值的正平方根3Mth与Rd类3、Math与Random类2、Random类2、Random类Random:此类的实例用于生成伪随机数流nextLong() 返回下一个伪随机数的long 值nextBoolean() 返回下一个伪随机数boolean值nextDouble() 返回下一个伪随机数,在0.0 和1.0 之间的double 值nextFloat()返回下一个伪随机数,在0.0 和1.0 之间的float 值()返回下个伪随机数,在和之间的值nextInt() 返回下一个伪随机数,int值nextInt(intn)返回一个伪随机数,在0(包括)和指定值分布的int值4A类4、Arrays类Arrays工具类:static booleanequals(数据类型[] a,数据类型[] a2)比较两个数组的内容是否相等static void fill(数据类型[] a,数据类型val)以指定的内容对数组进行填充操作static void sort(数据类型[] a)数组的排序操作static String toString(数据类型[] a)输出数组数据类型[] copyOf(数据类型[]original, intnewLength) 复制指定的数组,以使副本具有指定的长度static数据类型[]copyOfRange(数据类型[]original, intfrom, intto)将指定数组的指定范围复制到一个新数组数据类型[]pyg(数据类型[]g,,)将指定数组的指定范围复制到个新数组static intbinarySearch(数据类型[] a,数据类型key)二分查找法,必须保证数组是排序的操作5二分查找算法5、二分查找算法二分查找(BinarySearch)又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表且插入删除困难因此折半查找方法适用于不经常变动而查找频繁的有序列表有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。6日期操作类6、日期操作类1、Date类类Date 表示特定的瞬间,精确到毫秒,也就是程序运行时的当前时间。Date date= newDate(); // 实例化Date对象,表示当前时间2、Calendar类Calendar,日历类,使用此类可以将时间精确到毫秒显示。//两种实例化方式Calendar c = Calendar.getInstance();Calendar c = new GregorianCalendar();类及子类3、DateFormat类及子类SimpleDateFormat7对象比较器7、对象比较器对两个或多个数据项进行比较,以确定它们是否相等,或确定它们之间的大小关系及排列顺序称为比较。前面我学习过Arrays.sort方法可实现对象的排序操作:public static void sort(Object[]a)(1)Comparable接口:此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的compareTo 方法被称为它的自然比较方法。(2)Ct接口(2)Comparator接口:Comparable接口是要求自定义类去实现,按照OO原则:对修改关闭,对扩展开放。那么如果这个类已经定义好了,不想再去修改它,那如何实现比较呢?Comparator接口强行对某个对象collection进行整体排序的比较Comparator接口:强行对某个对象collection进行整体排序的比较。8对象的克隆8、对象的克隆将一个对象复制一份,称为对象的克隆技术。在Object类中存在一个clone()方法:protected Object clone() throws CloneNotSupportedException如果某个类的对象要想被克隆,则对象所在的类必须实现Cloneable接口。此接口没有定义任何方法,是一个标记接口接口。9数据结构之二叉树实现9、数据结构之二叉树实现树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构。二叉树是每个节点昀多有两个子树的有序树通常子树被称作“左子树和“右子树叉树(Binary Tree)是每个节点昀多有两个子树的有序树。通常子树被称作“左子树”和“右子树”。二叉树算法的排序规则:1、选择第一个元素作为根节点之后如果元素大于根节点放在右子树如果元素小于根节点则放在左子树2、之后如果元素大于根节点放在右子树,如果元素小于根节点,则放在左子树3、昀后按照中序遍历的方式进行输出,则可以得到排序的结果(左根右)8、3、10、1、6、14、4、7、13总结总结1、StringBuffer类g2、程序国际化3、Math与Random类4A类4、Arrays类5、二分查找算法6、日期操作类日期操作类7、对象比较器8、对象的克隆数据结构之叉树实现9、数据结构之二叉树实现THANKYOUTHANKYOU官网地址htt://dik官网地址:邮箱地址:finally_m@foxmail.com新浪微博:
本文标题:马剑威Java_07_常用类库API
链接地址:https://www.777doc.com/doc-5899010 .html