面试基础问题

学习总结

Math类

   方法:

     Math.abs(double num) // 获取绝对值

     Math.ceil(double num) // 向上取整数 12.1 =13  -12.1=12

Math.floor(double num) // 向下取整  12.1 =12  -12.1= -13

Math.round(double num) // 四舍五入

 

抽象类(abstract class)和接口(interface)有什么异同

1.抽象类中可以定义构造方法 接口中不能定义构造方法

2.可以有抽象方法和具体方法 接口中方法全部都是抽象方法

3. 抽象类中的成员可以是 private、默认、protected、public ,接口中的成员全都是public的

5.有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法

6.抽象类中可以包含静态方法 接口中不能有静态方法

7.一个类只能继承一个抽象类 一个类可以实现多个接口

 

 

多态是指 父类引用指向子类的对象。

 

集合

   公用方法

     Add() 向集合中添加元素

     Remove() 从集合中删除一个元素

     isEmpty() 判断集合是否为空

     size()  集合的长度

toArray();把集合转成数组

clear() 清空集合中的元素

   List:存储有序,元素允许重复,有索引

ArrayList:

     底层是数组实现,增删慢,查找快。

LinkedList:

    底层是链表结构查询慢增删快

Vector:

   底层是数组实现,增删慢,查找快。

 

 

 Set: 不允许重复元素,没有索引

       HashSet:

            底层是哈希表结构,查询快

哈希表

       哈希值:是一个十进制的整数,由系统随机给出,在object类中有一个方法获得哈希值

  

     

 Iterator 迭代器

      工作原理:     取出集合中数据之前先判断集合中是否有数据,如果有就取出来,继续判断,一直把集合中数据全部取出。

 

        实现方法

              迭代器类型要和集合数据类型一致

            Iterator<String> listit = list.iterator();

            使用Iterator接口中的hashNext()方法判断集合中是否有元素

            While(listit.hashNext()){

                      使用iterator中的next()方法取出元素

                              System.out.println(listit.next());

                    }

 

     

增强for(for each)

    //便利集合和数组

       格式:

        For(数据类型 变量名:要遍历的集合){

                                   System.out.println( 变量名称)

}

 

常用的数据结构:

栈,队列,数组,链表,红黑树

 

栈:先进后出 《弹夹》

队列:先进先出

链表

   查询慢,增删快(链表中的地址不是连续的每次查询都要从头开始)

红黑树:

   二叉书节点不能超过两个

     查询树:左小右大

 

异常:

 异常类Throwable是所有异常类的父类,它下面有两个子类

   Error:无法通过程序处理的错误

   Exception:编译期异常

        子类:RuntimeException(运行期异常)

  

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值