JAVA基础03

JAVA基础03

一、java常用API

基础API
  1. Object:是所有java的顶级根父类(类0bject是类层次结构的根类。每个类都使用Object作为超类。所有对象(包括数组〉都实现这个类的方法。)
    • finalize()
    • hashCode()
    • tostring():我们可以重写该方法,以实现自定义的对象字符串输出形式
    • equals():我们可以重写该方法,以实现两个对象相等判断的自定义规则
  2. 基本类型的包装类:Integer、Double、Character
    • 基本类型是用来做数据运算的
    • 包装类是在存储数据的基础上又提供了类的功能(更多的方法、Null值的处理)。
    • JDK 1.5提供了基本类型和包装类型的自动转换(自动拆装箱)
Integer int1 = new Integer(i1);//装箱
int i = int1; //自动装箱
  1. Math:数学工具类
    • 都是静态工具方法的常量(E、PI)
  2. Biglnteger:大整型数据类型,可以存储并操作任意长度的整数
  3. BigDecimal:大浮点型数据类型
  4. Random:随机数工具类,用于随机出一个数,常用于各种抽奖程序。
  5. Date:JDK 1.8之前的日期类型。用来表示一个具体的时刻。
  6. Canlendar:日历类型
    • 提供了大量的属性用来描述日历的各个字段,并且这些属性都可以通过get、set方法操作
    • getTime()方法用于将日历对象转成日期( Date)对象
  7. DateFormat:日期格式化类库,用于将日期对象(Date)转成本地格式(可以自定义)方便进行展示
    • DateFormat本身提供的模板不易于定制,更常用的是它的子类SimpleDateFormat
    • 核心功能就是日期——字符串之间的转换方法:format()【日期转字符串】、parse()【字符串转日期】
  8. LocalDate、LocalTime、LocalDateTime、DateTimeFormat: JDK1.8为了整合一个通用的日期时间处理规范,提供了一套新的日期时间处理类库。
    • 新增的核心类库都位于java.time包及其子包下。
  9. String、StringBuffer. StringBuilder :处理字符串的工具类
    • length(长度)、index(索引)是字符串最重要的属性。
    • 常用方法:
      • 构造方法:正常情况下,使用字符串"直接赋值即可,在涉及编码转换传输的时候,建议将字符串解成字节码数组进行传输,然后通过字节码和对应的编码格式重新生成字符串。解码使用解码方法getBytes(String charsetName)
        • String(byte[] bytes, String charsetName)
      • 判断方法: equals()、 equalslgnoreCase0、 endsWith()
      • 操作方法:字符串子串替换replace()、字符串切分split()、 字符串截取substring()、字符串去前后空白trim()
      • 正则表达式判断字符串是否符合规范: matchs()
      • 查找方法: indexOf()【从前往后找】、lastIndexOf()【从后往前找】

思考:
1、== 判断在判断基本类型和引用类型数据时有什么区别?
2、什么是Java的自动拆装箱机制?
3、String、StringBuffer. StringBuilder 之间有什么区别?

二、集合容器

容器集合是java提供的一系列用于储存、操作数据的类库。集合容器提供了元素的存取、判断、查找…功能。
而且集合容器的容量是可变的,它会随着存储的元素个数变化完成自动自动扩容(缩容)。
集合容器的体系:
单列容器:容器中存储的是一个个的对象(元素)。

  • Collection:所有单列容器的父接口,它定义了所有单列容器都应该具备的通用容器功能。
    • List:有序序列
      • ArrayList:底层是通过数组数显的,他没有实现同步,现成不安全,效率高。【构造一个初始容量为10的空列表。】因为底层是数组,它内部的元素是有索引的,可以很方便的通过索引进行查找。查询效率高。
      • LinkedList:底层是通过双向列表实现的 。在操作元素增加、删除时只需要改变最多两个元素,它的增删效率高。
      • Vector:底层也是通过数组实现的,他实现了线程同步,效率偏低。
    • Set:无序序列
      • HashSet:基于哈希表实现的一一个无序序列,它用于存储不重复的元素 ,内部可以存储null元素。线程不安全,效率高。默认初始容量16。HashSet经常用来做去除重复元素的工作。
      • LinkedHashSet:
      • TreeSet:基于TreeMap(红黑树)实现的一种Set集合。主要用途是对能够进行自然排序的元素进行排序去重存储。
    • Quene:队列,队列遵循先进先出原则,操作队列永远从队列头到队列尾操作。
      双列(key-value)容器:内部存储的是一个一个的 Entry / Node(键-值)
      • Map:
        • HashMap:基于哈希表实现的,内部元素无序,保存的数据(key)不能重复,他是线程不同步,效率高。
        • HashTable:和HashMap类似,只是他是线程安全的,且它不能存储null值。
        • TreeMap:基于红黑树

三、泛型

  1. 泛型是JDK1.5之后新增的一种格式约定语法。泛型的主要作业是:限定数据类型和隐式类型转换。
  2. JDK1.7之后加入了泛型的不长与擦除机制,我们只需要在编译类型上添加泛型即可。
  3. 在编写代码时,我们也可以试用一些简写字母来表示自定义泛型,自定义泛型用于表示可以由使用者传入一个具体的类型做限定。

思考:
1、常见的集合容器有哪些?
2、List的主要实现类有哪些?它们之间有什么区别?
3、什么是哈希冲突?如何解决哈希冲突?
4、什么是哈希冲突?如何解决哈希冲突?
5、集合容器的加载因子有什么作用?为什么默认加载因子是0.75?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值