A.基本类型包装类
- 问题回顾与知识总结
- int类型可以表示的最大值和最小值可以用什么来表示?
- 在Integer类中封装了两个常量,最大值Integer.MAX_VALUE/最小值Integer.MIN_VALUE.
- 我们为什么要使用基本类型的包装类?
- 因为基本数据类型只可以做基础的运算,基本类型的包装类就可以增加的更多的方法.
- 基本数据类型有八种,分别对应什么包装类?
- byte -> Byte
- short -> Short
- int -> Integer ★
- long -> Long
- float -> Float
- double -> Double
- char -> Character ★
- boolean -> Boolean
- 基本类型包装类的最常见操作是什么?
- 包装类与String相互转换.
- 包装类与对应的基本数据类型相互转换.
- int类型可以表示的最大值和最小值可以用什么来表示?
B.Integer
-
如何初始化Integer对象?
-
//1.已过时的方法 -> 将int值作为Integer的构造方法的参数传递. Integer i1 = new Integer(666); //2.已过时的方法 -> 将String字符串作为Integer的构造方法的参数传递. Integer i2 = new Integer("666"); //3.最新的方法 -> valueOf(int i)/valueOf(String s) Integer i3 = Integer.valueOf(666)/Integer.valueOf("666");
当看到一个方法被横线划掉的时候说明这个方法已过时,已过时不代表不能用,但是不建议用,一般来说已过时的方法的注释上会告诉你最新的方法是哪个.
-
-
初始化Integer对象的注意事项是什么?
- 当传入的参数是字符串的时候,要注意字符串应该是数字的字符串,不可以有其他的东西.
- 例: “666” √ “a1234” ×
- 如果传入了错误的参数,则会出现异常. NumberFormatException
- 当传入的参数是字符串的时候,要注意字符串应该是数字的字符串,不可以有其他的东西.
C.int和String的相互转换
- 问题回顾与知识总结
- int类型如何转换为String类型?
- 可以直接+"",因为字符串和任何数据拼接都会变成字符串.
- 通过String.valueOf(int i) -> String.
- String类型如何转换为int类型?
- 通过Integer.parseInt(String s) -> int.
- Integer类型如何转换为int类型?
- 通过intValue()方法可以将Integer转换为int.
- int类型如何转换为Integer类型?
- 通过Integer.valueOf(int i) -> Integer.
- int类型如何转换为String类型?
E.自动装箱和拆箱
- 问题回顾与知识总结
- 什么是装箱?
- 将基本数据类型转换为对应的包装类就是装箱.
- 什么是拆箱?
- 将包装类转换为基本的数据类型就是拆箱.
- 我们在以后的开发中需要注意什么问题?
- 之后自定义的类中,成员变量是数字的都用包装类.[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qQj7MqWz-1576714612603)(C:\Users\刘博文-传智\AppData\Roaming\Typora\typora-user-images\1572403650178.png)]
- 如果自定义类中有boolean基本数据类型的成员变量,那么生成的Get/Set方法是isXxx和setXxx.
- 什么是装箱?
F.Date
-
如何初始化Date对象?
-
//1.无参构造创建Date Date d1 = new Date(); //默认表示执行这行代码的时候当前的系统时间. //2.带参构造 -> Long date(毫秒数) 24*60*60*1000 指的就是距离1970年1月1日 00:00:00过了多少毫秒. Date d2 = new Date(24*60*60*1000L);
-
G.Date常用方法
- 问题回顾与知识总结
- Date类的getTime方法的作用是什么?
- Date肯定代表了一个时间点 -> 返回的是Date代表的时间点距离1970年1月1日00:00:00过了多少毫秒.
- Date类的setTime(Long time)方法的作用是什么?
- 设置时间的 -> 参数time:Long time(毫秒数) 246060*1000 指的就是距离1970年1月1日 00:00:00过了多少毫秒.
- Date类的getTime方法的作用是什么?
- 练习
- 初始化Date表示当前的时间点打印到控制台,然后修改Date所表示的时间,修改为距离1970年1月1日00:00:00之后过了1星期的时间点. 1970年1月8号00:00:00.
H.SimpleDateFormat
- 问题回顾与知识总结
-
SimpleDateFormat类是做什么用的?
- 可以将Date日期对象转换为规定格式的字符串对象.
- 可以将字符串对象转换为日期对象.
-
SimpleDateFormat类的构造方法是什么?
-
//1.无参构造方法 -> 是按照默认的方式进行日期格式化的. SimpleDateFormat sdf = new SimpleDateFormat(); //2.有参构造方法 /* yyyy/yy -> 表示年 MM -> 月 dd -> 日 HH -> 时 mm -> 分 ss -> 秒 */ SimpleDateFormat sdf = new SimpleDateFormat(String pattern);
-
-
SimpleDateFormat如何格式化和解析日期?
- 可以将Date转换为String的方法
- format(Date d) -> String字符串
- 可以将String转换为Date的方法
- parse(String s) -> Date日期
- 可以将Date转换为String的方法
-
SimpleDateFormat类将字符串转换为Date类对象的时候的注意事项是什么?
- 传递进入的字符串一定要符合规定好的格式.
-
I.日期工具类
J.Calendar
- 我们已经学习了Date类为什么还要学习Calendar类?
- 因为Date可以表示一个时间点,但是设置时间的时候很麻烦.
- 如何获取一个Calendar对象?
- Calendar.getInstance(); -> 会返回一个Calendar的子类.
- Calendar如何获取日期信息?
- 通过get(int i)可以获取准确的日历字段,但是由于直接传入数字会降低代码的可读性.
- Calander这个类准备一些常量来表示这些数字,调用方式Calendar.字段 (Calendar.YEAR)
- 通过get(int i)可以获取准确的日历字段,但是由于直接传入数字会降低代码的可读性.
- Calendar在获取月份时,我们应该注意什么问题?
- Calendar底层是从0开始的,返回的是3月,底层是0月,1月,2月,3月 -> 实际上4月,所以在获取月份的要在原有的结果上+1.
K.Calendar常用方法
- 问题回顾与知识总结
- Calendar的set和add方法?
- set(int year,int month,int date);
- add(int filed,int amount); -> add(Calendar.YEAR,5) -> 在现有的基础加五年.
- Calendar在设置日期的时候我们应该注意什么?
- set设置日期的时候,要注意,要在原有的月份上-1.
- Calendar具有什么特性?
- 容错性.
- Calendar的set和add方法?
M.异常
- 问题回顾与知识总结
- 什么是异常?
- 程序出现了错误.
- Java中所有异常的超类是哪个类?
- Throwable
- Java中的异常体系是什么?
- Throwable
- Error
- Exception
- RuntimeException(运行期异常)
- 非RuntimeException(编译期异常)
- Throwable
- Error类是如何产生,我们应该如何处理?
- Error类产生一般与硬件有关(极少数情况下与代码有关),不处理,钞能力.
- Exception类是如何产生的?我们应该如何处理?
- 一般情况下代码出现了错误会产生Exception.
- 修改代码.
- 一般情况下代码出现了错误会产生Exception.
- 什么是异常?
N.JVM的默认处理方案 2分50秒
- 问题回顾与知识总结
- JVM虚拟机对于异常的默认处理方案是什么?
- 将异常的信息/原因/在代码出现的行数打印到了控制台.
- 关闭了Java虚拟机(在出现了异常的代码后面的代码都不执行了.)
- JVM虚拟机对于异常的默认处理方案是什么?
O.异常处理之try…catch
- 问题回顾与知识总结
-
我们使用try…catch处理异常的格式是什么?
-
try{ //可能出现异常的代码; } catch(可能出现的异常类名 e){ //如果代码执行到这个地方,说明出现了异常,以及被捕获到了,处理异常的代码; }
-
-
try…catch的执行流程是什么?
- 执行try代码块中的代码
- 没有出现异常,则不会执行catch代码块,会继续向下执行.
- 如果出现了异常
- 捕获到了异常 -> 则执行对应的catch代码块中的代码执行,然后继续向下执行.
- 没有捕获到异常 -> 则按照Java虚拟机的默认处理方式进行处理.
- 执行try代码块中的代码
-
P.Throwable的成员方法
- 问题回顾与知识总结
- getMessage()方法是做什么用的?
- 获取异常出现的原因 -> 有的有原因,有的没有原因.
- toString()方法是做什么用的?
- 获取出现的异常类是哪一个以及出现异常的原因.
- printStackTrace()方法是做什么用的?
- 获取出现的异常类是哪一个以及异常出现的原因以及出现异常的位置.
- 打印堆栈信息.
- 获取出现的异常类是哪一个以及异常出现的原因以及出现异常的位置.
- getMessage()方法是做什么用的?
Q.编译时异常和运行时异常的区别
- 问题回顾与知识总结
- 编译期异常和运行期异常如何进行区分?各自有什么特点?
- 运行期异常RuntimeException和它的子类都是运行期异常,其他的都是编译期异常.
- 运行期异常不需要显示处理,也就是说在编写代码的时候不需要去关心是否有运行期异常,如果出现了错误,回来修改代码即可.
- 编译期异常必须要显示处理,可以使用try…catch进行处理,也可以抛出.
- 编译期异常和运行期异常如何进行区分?各自有什么特点?
R.异常处理之throws
- 问题回顾与知识总结
- 通过throws处理异常的格式是什么?
- throws 异常类名
- throws处理异常应该在什么地方进行编写?
- 在方法的声明上抛出.
- throws真正处理异常了吗?
- 没有 -> 谁调用谁处理.
- 运行期异常和编译期异常通过throws进行处理有什么区别?
- 运行期异常无序throws处理,正常编写代码运行即可,如果出现了错误,回来修改代码.
- 编译期异常
- 背锅 -> 自己try…catch进行处理.
- 甩锅 -> throws抛出,自己不处理,谁调用谁处理.
- 通过throws处理异常的格式是什么?
S.自定义异常
- 问题回顾与知识总结
- 自定义异常的格式是什么?需要继承哪个类?
- xxxException -> 要继承 自定义的这个类是运行期还是编译期异常.
- 如果说自定义异常是编译期异常那么继承Exception
- 如果说自定义异常是运行期异常那么继承RuntimeException
- 还要添加构造方法 -> 无参/有参.
- xxxException -> 要继承 自定义的这个类是运行期还是编译期异常.
- throws和throw的区别是什么?
- throws在方法声明上,后面跟异常类名,throw一般在方法体中,后面跟着异常的对象.
- throws表示将异常抛出,throw表示抛出异常,就需要在方法体中处理.
- throws抛出异常不代表一定出现了异常,当执行了throw的时候表示一定抛出了某种异常.
- 自定义异常的格式是什么?需要继承哪个类?