【无标题】异常与内部类


Object类位于java.lang包下,是所有类(包括数组)的父类(超类)
Object类中的常用方法:
   toString()方法:    输出对象的内存地址
   equals()方法:     判断两个对象是否是同一内存地址,等价于==
   hashcode()方法:  获得对象的哈希码,哈希码是内存地址经过算法后生成的整数值。内存地址一样,哈希码一样。
   finallize()方法:   在垃圾收集器对无用的对象进行回收前,调用这个方法对对象进行清理。

包装类:  是将值类型转成对应的引用类型提供的类,方便调用类中的方法
常用的包装类:    Integer    int      ,  Character   char   其他的是数据类型的首字母大写
将值类型转成引用类型的包装类完成的是装箱,将引用类型的包装类转成值类型完成的是拆箱,jdk1.5以后自动转换

内部类:在一个类A的里面定义另外一个类B,B可以直接使用A的所有内容
内部类的分类:
     成员内部类:    把内部类当成外部类的成员变量,在编译后会生成两个.class文件
                            外部类想访问内部类中的内容,必须创建内部类的对象
                            成员内部类中不能包含任何static的内容

     局部内部类:    在外部类的方法中定义一个类
                            方法中如果有参数,参数必须加final关键字

     匿名内部类:     没有名字的类
                             必须继承一个父类或实现一个接口
                             没有构造方法

     静态内部类:     内部类被static修饰
                             创建对象不需要依赖于外部类对象
                             不能直接使用外部类的非静态内容
                             静态内部类中可以定义static成员

在内部类中直接使用this指代的是当前内部类的对象,如果想引用外部类的对象,需要:  外部类名.this.属性

枚举:可以保证用户的输入的合法性,防止不恰当的用户输入(应用场景:给你提供了一些选项,只能在这些选项中做出选择)
语法:    enum 枚举名{   枚举值列表  }

异常Exception:是在程序运行中发生的不正常的现象,它会中断程序的执行。
错误Error:   错误程序无法处理,必须通过修改代码解决。(Java中的错误)
Exception和Error都继承自Throwable(异常错误的根类)类

运行时异常(RuntimeException,是JVM自动抛出):不处理可以编译通过(不报错)
ArithmeticException:  以0作除数
ArrayIndexOutOfBoundsException:  数组下标越界
NumberFormatException:   字符串中的非数字转整型
ClassCastException:     父类对象转成不相关的子类类型

checked异常(非运行时异常,需要手动抛出):   强制检查异常,不处理编译不了
IOException
SQLException
ClassNotFoundException

异常的捕获(异常被处理,程序继续运行):
   try:    放入的是容易产生异常的代码,只要引发异常,try块中后面的代码将不会被执行
   catch:   放入的是对异常进行捕获的代码,要保证异常现象和捕获的异常类型匹配(catch只能走一次)
   finally:   无论是否引入异常都要被执行到的代码,除非遇到System.exit(0);
   
可以一起使用的方式:     try catch finally (finally最多有一个,不能有多个),try catch  ,try finally

throw:   抛出异常,  可以将没有的异常类型通过 throw new Exception()  手动抛出
throws:  声明异常,用在方法的定义位置,   方法中引起的异常如果没有能力解决或不想解决可以通过throws声明,
                                 交给方法的调用者解决

匿名内部类:一个累1只需要构建一个单一的对象,那么这个类其实并不需要额外取一个特有的名字,对于不存在名字的内部类,我们称之为匿名内部类。
java的包分为两大类:    java包是java语言的核心包     javax包是java语言的扩展包


String类(Java已经出品方已经写好的一些类):    是final类(不能被继承),可以创建不可改变的字符串
StringBuffer和StringBulider类:是final类,可以创建可以改变的字符串
String substring(int beginIndex)从一个索引开始,截取剩下所有字符
String substring(int beginIndex,int endIndex)返回两个索引位置之间(不包括第endIndex个字符)的所有字符;
字符串和字节数组的相互转换:
     byte[]   bs=s.getBytes();    将字符串转成字节数组
     String s=new String(bs);   将字节数组转成字符串

StringBuilder是线程非安全的类,效率更快

Math类位于java.lang包,是一个final类,不能被继承,所有的方法都是static的

BigInteger和BigDecimal可以对超出范围的数据进行加减运算,调用add()和divide()方法

生成唯一的36位的随机序列的方式:
   UUID.randomUUID().toString()

SimpleDateFormat:    日期时间的格式化类,在java.text.*包中
将日期对象转成字符串:
           SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EE");  EE代表星期几
           String str=simpleDateFormat.format(new Date());
将字符串转成日期对象:   
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String str="2014-11-15 02:30:30";
        try {
            Date date=simpleDateFormat.parse(str);
            System.out.println((new Date().getTime()-date.getTime())/1000/60/60/24);

        } catch (ParseException e) {
            e.printStackTrace();
        }

Calendar:是日历类,是个抽象类,可以单独获取年、月、日
提供对日期相加的方法:
        calendar.add(Calendar.MONTH,1);

jdk1.8及以上版本对日期操作的推荐方式:
 获得当前日期年-月-日:        LocalDate localDate=LocalDate.now();
                                               System.out.println(localDate);
 获得指定日期年-月-日:          LocalDate localDate=LocalDate.of(2014,11,15);
                                               System.out.println(localDate);
 将字符串转换成LocalDate对象: LocalDate localDate=LocalDate.parse("2020-11-20");
                                                    System.out.println(localDate); 

LocalDate类表示日期,LocalTime类只表示时间,LocalDateTime类同时包含日期和时间,三个类的用法相同


对LocalDate的格式化输出:
        LocalDateTime localDate=LocalDateTime.now();
        DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒");
        System.out.println(localDate.format(formatter));
       
        DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒");
        LocalDateTime localDate=LocalDateTime.parse("2014年11月15日 02时30分30秒",formatter);
        System.out.println(localDate);
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值