常用API复习

1.Object类的toString方法返回的是什么?equals方法比较的是什么?子类重写后返回什么?比较什么?

Object中toString返回的是对象的地址值 子类重写后一般获取成员变量的值
Object中equals方法比较的对象的地址值 子类重写后一般比较成员变量的值

2.方法重载和方法重写区别?

方法重载: 
        同一个类中 方法名相同 参数列表不同  个数不同 类型不同 顺序不同
方法重写 
        继承后,子类觉得父类方法不够强 可以重新定义此方法 要求方法声明一致 

3.如何获取当前日期对象?getTime方法获取到的毫秒值开始时间是谁?

Date now = new Date();
时间原点:1970-1-1 00:00:00

4.日期如何转换为指定格式的字符串?字符串如何解析成日期?

    //格式化:从 Date 到 String
     Date d = new Date();
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
     String s = sdf.format(d);
     System.out.println(s);
     System.out.println("--------");
​
     //从 String 到 Date
     String ss = "2048-08-09 11:11:11";
     //ParseException
     SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     Date dd = sdf2.parse(ss);
     System.out.println(dd);

5.如何获取日历类的对象?通过日历对象获取到年

Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);

6.System类的复制数组的方法是什么参数是什么?

public static void arrayCopy(Object src, int srcPos, Object dest, int destPos, int length)
- Object src:要复制的数据源数组
- int srcPost:数据源数组的开始索引
- Object dest:复制后的目的数组
- int destPos:目的数组开始索引
- int length:要复制的数组元素的个数
​

7.冒泡排序的原理是什么?代码

相邻两个元素进行比较,前面的元素如果比后面的元素大则交换
        //定义一个数组
        int[] arr = {7, 6, 5, 4, 3};
        System.out.println("排序前:" + arrayToString(arr));
        // 这里减1,是控制每轮比较的次数
        for (int x = 0; x < arr.length - 1; x++) {
            // -1是为了避免索引越界,-x是为了调高比较效率
            for (int i = 0; i < arr.length - 1 - x; i++) {
                if (arr[i] > arr[i + 1]) {
                    int temp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = temp;
                }
            }
        }
        System.out.println("排序后:" + arrayToString(arr));

8.二分查找的原理是什么?代码?

取数组中间的元素和被查找的元素进行比较,如果被查找元素大于数组中间元素,就舍去数组元素的一半,对另一半继续进行查找
 public static int binarySearch(int[]arr,int key){
        //最小索引
        int low = 0;
        //最大索引
        int height = arr.length - 1;
        //初始化中间索引
        int mid = 0;
        //循环折半,最小索引小于等于最大索引时,才能折半
        while (low <= height){
            //折半,计算中间索引
            mid = (height + low) / 2;
            if(key > arr[mid]){
                //元素大于数组中间索引元素,移动最小索引
                low = mid + 1;
            }else if(key < arr[mid]){
                //元素小于数组中间索引元素,移动最大索引
                height = mid - 1;
            }else{
                //查询到元素,返回索引
                return mid;
            }
        }
        //循环查找结束后,找不到元素,返回-1
        return - 1;
    }

9.如何进行超大数的计算?如何进行小数的精确计算?

java.math.BigInteger类,不可变的任意精度的整数。如果运算中,数据的范围超过了long类型后,可以使用BigInteger类实现,该类的计算整数是不限制长度的。
java.math.BigDecimal类,不可变的、任意精度的有符号十进制数。该类可以实现超大浮点数据的精确运算。

10.代码演示自动装箱和拆箱

Integer  i = 10; //自动装箱
int  a = i;//自动拆箱

11.字符串如何转换为基本类型?基本类型如何转换为字符串?

//int --- String
  String s1 = 10 + "";
  //String ---int
  int a = Integer.parseInt("10");

12.异常的继承体系?编译时异常和运行时异常区别?

Throwable
- Error:严重错误Error
- Exception:表示编译时异常,必须处理不处理不能运行
        - RuntimeException:运行时异常,可以处理,可以不处理,推荐不处理一般出现运行时异常都是代码有问题 需要改代码
​

13.throw关键字和throws关键字的区别

throw 异常对象   在方法中使用 抛出异常对象
throws 异常的类型  在方法的声明上使用  声明异常

14.如何异常没有捕获到finally代码块中的内容是否会执行?

会执行!只有System.exit(0)的时候finally中的内容才不会被执行

15.父类方法没有抛异常子类重写父类方法时能不能抛异常?

不能,父类方法不抛异常,子类重写方法也不能抛异常,有异常 try catch

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值