反转字符串、异常、集合(笔记)

反转字符串【四种方法】

方法一:直接使用可边长字符串,调用其自带的reverse方法

StringBuffer buffer = new StringBuffer("abcd");
System.out.println(buffer.reverse());

方法二:使用字符数组倒叙循环拼接

public static String charArrayReverse(String a){
        char[]aa;
        aa = a.toCharArray();
        String aaa="";
        for(int i=a.length()-1;i>=0;i--)
            aaa = aaa+aa[i];
        return aaa;
    }

方法三:使用字符拼接正序拼接

方法二、三思路类似

public static String charAtReverse(String a){
        char aa;
        String aaa="";
        for(int i=0;i<a.length();i++){
            aa = a.charAt(i);
            aaa = aa+aaa;
        }
        return aaa;
    }

方法四:递归调用(注意递归结束条件,会导致栈溢出)

本质还是拼接字符

public static String recursiveReverse(String a){
        if(a==null||a.length()<=1){
            return a;
        }
        return recursiveReverse(a.substring(1))+a.charAt(0);
    }

Error和Exception区别

两者都继承自Throwable,只有Throwable类的实例才可以被抛出或捕获。

Exception是程序正常运行中可以预料的意外情况,可以进行捕获处理

Error指正常情况下不太可能出现的情况,绝大部分的Error会导致系统奔溃,如JVM内存严重不知时抛出的OutOfMemoryError或者超过栈的最大 深度所抛出的StackOverflowError等

运行时异常和一般异常(受检异常)的区别?

运行时异常是属于不检查异常,即程序中可以选择捕获处理当然也可以不进行处理。但是一般异常是强制要求用户必须对出现的这些异常进行catch处理的,否则程序将不会编译通过

常见的运行时异常

类转换异常ClassCastException

空指针异常NullPointerException

数据格式异常NumberFormatException

算术异常ArithmeticException

数组下标越界异常IndexOutOfBoundsException等

Collection和Collections的区别?

前者是接口,Collection是Set、List容器类的父接口,而Collections是一个工具类,里面有很多对容器操作的静态方法(排序、搜索、线程安全等)

 

TreeMap和TreeSet排序,存放的对象实现Comparable接口,进行重写compareTo方法

public class Dog implements Cloneable, Comparable<Dog>{
    private String name;
    private int age;
    private Person person;

    public int getAge() {
        return age;
    }

    public Person getPerson() {
        return person;
    }

    public void setPerson(Person person) {
        this.person = person;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public Object clone() throws CloneNotSupportedException {
        Dog d = (Dog)super.clone();
        d.setPerson((Person)d.getPerson().clone());
        return d;
    }
    @Override
    public int compareTo(Dog o) {
        return o.age-this.age;
    }
}
public static void main(String[] args) {
        TreeMap<Integer,String> treeMap = new TreeMap<>();
        Dog dog = new Dog();
        dog.setAge(10);
        dog.setName("小花");
        Dog dog1 =new Dog();
        dog1.setAge(9);
        dog1.setName("小黑");
        treeMap.put(dog1.getAge(),dog1.getName());
        treeMap.put(dog.getAge(),dog.getName());
        for(String name:treeMap.values()){
            System.out.println(name);
        }
    }

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值