您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > Java高级特性-笔记
Java高级应用技术一、集合框架和泛型.1、集合框架.1Collection接口存储一组不唯一、无序的对象.2List接口存储一组不唯一、有序的对象.3Set接口存储一组唯一、无序的对象.4Map接口存储一组键值对象,提供key-value(k-v)的映射.5Iterator:迭代器.6Collections:工具类.(提供了对集合进行排序、遍历等多种算法实现)2、List接口.List接口的实现类:1ArrayList:实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素效率高.*常用方法:2LinkedList:采用了链表存储方式,插入、删除元素是效率较高.*常用方法:3、Set接口.1存储唯一、无序的对象.2Set里面存放的是对象的引用.3Set使用对象的equals()方法比较是否为同一对象.Set接口的实现类:1HashSet.2TreeSet.4、迭代集合.1增强型for2迭代器Iterator*获取Iterator:Collection接口的iterate()方法.*Iterator的方法:*booleanhasNext():判断是否存在另一个可访问的元素.*Objectnext():返回要访问的下一个元素.5、Map接口.Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作.Map接口实现类:1HashMap.*常用方法:2遍历Map集合:*增强型for*迭代器Iterator获得Map键和值的方式:1keySet()--Set迭代这个Set(Iterator)get(key)2entrySet()--Set(Map.Entry)增强型for(或者Iterator)getKey()getValue()6、泛型.1将对象的类型作为参数指定到其他类或者方法上,从而保证类型转换的安全性和稳定性.2典型的泛型集合:ArrayListEHashMapK,V*EK,V表示该泛型集合中的元素类型.*泛型集合中的数据不再转换为Object.7、Collections算法类.Collections和Cillection不同,前者是集合的操作类,后者是集合接口.Collections提供的常用静态方法:1sort();排序2binarySearch():查找3max()\min():查找最大\最小值4TypeimplementsComparable实现Comparable接口;overridecompareTo()重写compareTo()方法;二、实用类1、枚举(enum):指由一组固定的常量组成的类型.【注】:1枚举类型的取值默认为:publicstaticfinal;2可以定义属性和方法.3构造器必须是私有的.2、包装类java.lang包包装类基本类型BooleanbooleanCharacterchar1构造方法.所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例.publicType(typevalue)如:Integeri=newInteger(1);除Character类外,其他包装类可将一个字符串作为参数构造它们的实例.publicType(Stringvalue)如:Integeri=newInteger(123);【注】:*Number类型的构造时,参数必须能转换为相应的数字,不然NumberFormatException异常.*Boolean类型构造方法参数为String类型时,若该字符串内容为true(不考虑大小写)则Boolean对象表示true,否则全都是false.2**Value():*Number包装类型转换为基本数据类型.(Byte、Short、Integer、Long、Float、Double)*Boolean包装类型转换为基本数据类型.*Character包装类型转换为基本数据类型(charValue()).3toString():以字符串形式返回包装对象表示的基本类型数据.4valueOf():包装类型*所有包装类valueOf(typetype)*包装类valueOf(Strings)-除Character之外5parse**():把字符串转换为相应的基本数据类型数据(Character除外).6装箱:基本--包:基本类型转换为包装类的对象.拆箱:包---基本:包装类对象转换为基本类型的值.3、Math类.java.lang.Math*提供了常用的数学运算方法和两个静态常量E(自然对数的底数)和PI(圆周率).4、Random类.java.util.Random*random():0(包括)-1(不包括)之间的随机浮点数*Randomrandom=newRandom(种子);random.nextInt();返回下一个伪随机数,整型的.5、操作字符串的实用类5-1、String字符串类:1length():确定字符串的长度,返回字符串中的字符数.2equals():判断字符串的内容是否相同.返回boolean类型的值.equalsIgnoreCase():忽略大小写的比较字符串内容.toLowerCase():转换字符串中为英文字符为小写.toUpperCase():转换字符串中为英文字符为大写.3equals()与==开始,equals()与==作用一样;比较两个字符串内存地址是否一致,是否为同一对象.后来,字符串类对equals()方法进行了重写,equals()变成了比较两个字符串的内容是否相等.4字符串连接*使用”+”*使用String类的concat()方法.【注】:字符串方法操作的(产生变化的方法:变大写、小写、连接、截取......)变化都作用于字符串的副本,而不是本身.5字符串常用的提取方法.substring(intstart):从start(包含)开始截取,截取到字符串的末尾.substring(intstart,intend):从start(包含)开始截取,截取到end(不包含)位置为止.6字符串拆分.split():对字符串进行拆分,结果作为String[]返回.5-2、StringBuffer类:操作字符串1频繁修改字符串的操作,效率比String高.2常用方法:*toString():StringBuffer-String*StringBuffers=newStringBuffer(content);:String-StringBuffer*append():追加字符串.*insert():在某个位置插入字符串.5-3、操作日期和时间:java.util.Date【例】:输出现在时间://创建日期对象Datedate=newDate();//定制日期格式SimpleDateFormatformater=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss);Stringnow=formater.format(date);System.out.println(now);补充:Calendar类:抽象类java.util.CalendarCalendar类提供一些方法和静态字段来操作日历.三、输入和输出处理JavaAPI:java.io.File类1、File类:文件的属性或操作路径:\\/常用方法:2、流2-1:流的概念:*流是一组有序的数据序列.*以先进先出方式发送信息的通道.2-2:流的分类:*按数据方向分:输入流:InputStream、Reader输出流:OutputStream、Writer*按数据类型分:字节流:InputStream、OutputStream字符流:Reader、Writer下图为常用的IO流:2-3:各种流的使用(1)字节流-输入流:publicabstractclassInputStream*常用方法:1intread():从输入流中读取下一个字节,返回0-255之间的int值.返回值代表着都出来的字节对应的整型数字.2intread(byte[]b):从输入流中读取一堆字节,把这些字节存储在字节数组b中。返回值代表着真实的读到的字节的个数(b的长度).3intread(byte[]b,intoff,intlen):从输入流中读取一堆字节,把这些字节存储在字节数组b中。off对应的是b开始存储字节的标识或下标(将读取的第一个字节存储在元素b[off]中)。len对应的是读到的字节的个数或长度.4voidclose();关闭此输入流并释放与此流有关的所有系统资源.5intavailable(;:可以从输入流中读取的字节数目.6longskip(longn;:跳过和放弃此输入流中的n个数据字节,该方法有可能失效.7voidmark(intn);在此输入流中标记当前的位置.8voidreset();将此流重新定位到对此输入流最后调用mark方法时的位置.9booleanmarkSupported();测试此输入流是否支持mark和reset方法.*其子类:FileInputStream常用的构造方法:*FileInputStream(Filefile)*FileInputStream(Stringname)使用FileInputStream读取文本文件步骤:a:引入相关类.b:创建输入流对象.(FileInputStream对象)c:读取文本文件.(read())d:关闭流.(2)字节流-输出流publicabstractclassOutputStream常用方法:1voidwrite(intc):将指定的字节写入此输出流.2voidwrite(byte[]b):将b.length个字节从指定的字节数写入此输出流.3voidwrite(byte[]b,intoff,intlen):将指定字节数组中从偏移量off开始的len个字节写入此输出流.4voidclose():关闭此输出流并释放与此流有关的所有系统资源.5voidflush():刷新此输出流并强制把缓冲区的数据写到输出流中.*其子类FileOutputStream常用的构造方法:*FileOutputStream(Filefile)*FileOutputStream(Stringname)*FileOutputStream(Stringname,booleanappend)使用FileOutputStream往文本文件中写数据步骤:a:引入相关类b:创建输出流对象(FileOutputStream对象)c:写入文本文件(write())d:关闭流(3)字符流-输入流publicabstractclassReader常用方法:1intread():从输入流中读取下一个字符,返回0-65535之间的int值.返回值代表着读出来的字符对应的整型数字.2intread(char[]b):从输入流中读取一堆字符,把这些字符存储在字符数组b中。返回值代表着真实的读到的字符的个数(b的长度).3intread(char[]b,intoff,intlen);从输入流中读取一堆字符,把这些字符存储在字符数组b中。off对应的是b开始存储字符的标识或下标(将读取的第一个字符存储在元素b[off]中)。len对应的是读到的字符的个数或长度.4close():关闭输入流.其子类:InputStreamReader常用的构造方法:*InputStreamReader(InputStreamstream)*InputStreamReader(InputStreamstream,StringcharsetName)文本文件读取FileReader是InputStreamReader的子类常用的构造方法:*FileReader(Filefile)*FileReade
本文标题:Java高级特性-笔记
链接地址:https://www.777doc.com/doc-4712622 .html