基础知识点总结6

1.四种权限修饰符分别是什么?权限修饰符大小排序?权限修饰符的场景使用规范?

权限修饰符:
概述:在java中提供了4种权限修饰符,使用不同的权限修饰符修饰,就会有不同的访问权限
分类:
public 公共
protected 受保护的
default 默认的(在类中就省略不写,在接口中就使用default)
private 私有的
在这里插入图片描述

结论:
1.权限修饰符的大小: public > protected > default(默认) > private
2.权限修饰符的场景使用规范:
- 成员变量使用private ,隐藏细节。
- 构造方法使用public ,方便创建对象。
- 成员方法使用public ,方便调用方法
- 定义类和接口一般使用public

2.object类中的toString方法和equals方法,掌握toString方法返回值以及equals方法比较。

Object类中的toString()方法:
public String toString():返回该对象的字符串表示。
结论:
(1)toString方法返回的字符串默认格式为: 包的全路径+类名+@+十六进制数的地址值
(2)使用输出语句打印对象的时候,其实该对象会调用toString方法,所以打印对象其实打印的就是对象调用toString方法返回的字符串内容
(3)如果打印一个对象,打印的不是地址值,那么说明该类重写了toString方法
由于在开发中,打印对象,希望打印的是该对象的所有属性值,那么就需要重写toString()方法

如果没有覆盖重写equals方法,那么Object类中默认进行==运算符的对象地址比较,只要不是同一个对象,结果必然为false。
如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法。

3.Date类中把日期对象转换成对应的时间毫秒值方法getTime()和把方法参数给定的毫秒值设置给日期对象方法setTime()

在这里插入图片描述

4.掌握DateFormat类的类型转换方法。掌握基本类型与字符串之间的转换

在这里插入图片描述

SimpleDateFormat类(日期格式化类,拥有格式化或者解析的功能)
构造方法:
SimpleDateFormat(String pattern) 根据指定的格式创建日期格式对象
参数pattern: 传入格式化或者解析的规则
规则:
y 年
M 月
d 日
H 时
m 分
s 秒
常见的日期格式: yyyy-MM-dd HH:mm:ss yyyy年MM月dd日 HH:mm:ss

  • public String format(Date date):将Date对象格式化为字符串。
  • public Date parse(String source):将字符串解析为Date对象。
    注意: 解析的时候,指定的解析规则一定要和字符串日期的格式一样,否则会报解析异常

5.Calendar类常用的方法?Math类常用的方法?System类和BigDecimal类常用的方法?查api文档看一下

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Math不能创建对象,它的构造方法被“私有”了。因为他内部都是“静态方法”,通过“类名”直接调用即可。

Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。

在这里插入图片描述

6.什么是包装类?拆箱与装箱是指什么?什么是自动拆箱和装箱?
Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,对应的包装类(位于java.lang包中)
基本类型与对应的包装类对象之间,来回转换的过程称为”装箱“与”拆箱“
装箱:从基本类型转换为对应的包装类对象。
拆箱:从包装类对象转换为对应的基本类型。
除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型

7.动态代理有几种实现?
java的动态代理技术的实现主要有两种方式:JDK原生动态代理
CGLIB动态代理。
动态代理:是使用反射和字节码,在运行期间创建指定接口或类的子类以及它的实例对象的一项技术,通过这个技术可以对代码进行无侵入式的增强。
在这里插入图片描述

JDK原生动态代理是Java原生支持的,不需要任何外部依赖,但是它只能基于接口进行代理(需要代理的对象必须实现于某个接口)

CGLIB(Code Generation Library)是一个基于ASM的字节码生成库,允许我们在运行时对字节码进行修改和动态生成。CGLIB通过继承方式实现代理:

Enhancer:来指定要代理的目标对象,实际处理代理逻辑的对象,最终通过调用create()方法得到代理对象,对这个对象的所有非final方法的调用都会转发给MethodInterceptor;
MethodInterceptor:动态代理对象的方法调用丢回转发到intercept方法进行增强

CGLIB通过继承的方式进行代理(让需要代理的类成为Enhancer的父类),无论目标对象有没有实现接口都可以代理,但是无法处理final的情况。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值