别再记错了!Java 数据类型、继承执行顺序、String 拼接、异常体系高频错题整理
-
Java 的 String 不是包装类,但是引用类型;Java 的浮点数字面量默认是 double,所以直接赋值给 float 需要强制类型转换
-
整形的表示结构,以 byte 为例
-
对于有符号而言,使用最高位表示正负,0为正数,1为负数;这样一来还剩下低7位,最大可以表示
2 ^ 7 - 1 = 127,这样表示的范围就是[-127, 127];除此之外还有两个没考虑的00000000和10000000,按照这种方法表示就是0和-0,但实际上后者没有意义,所以规定后者表示的是 -128;因此byte能够表示的范围就是[-128, 127] -
对于无符号的而言,表示方法相同,不过没有符号位的作用了
-
-
>>>=表示无符号右移,无论被操作数正负都补0;对应有符号右移,补的是原符号位 -
在Java中,局部变量必须先初始化后访问,否则编译报错;静态变量在类加载的时候就初始化了,标准方法是通过类型去访问,但是通过实例化对象访问也不会报错,同时由于和局部变量的加载、销毁时间冲突,静态变量在Java中不能作为局部变量定义;
-
Java 的
this关键字,有三种使用方法-
this.variable,访问成员变量 -
this.func(),调用成员函数 -
this(),在构造方法中调用与参数匹配的自己的其他的构造方法
-
-
代码块的执行顺序
-
静态代码块,形式为
static{ sentences; },执行实际是在类加载的时候,只执行一次,在后续 new 所在类的时候不再执行 -
实例代码块,形式为
{sentences; },执行时机是在每次 new 的时候,可以存放各种构造方法中共用的构造语句,使代码更加简洁 -
调用对应的构造方法
-
-
继承体系中父类子类实例、构造的执行顺序(这里的子类就是我们 new 的子类的对象)
-
首先执行父类的静态变量赋值、静态代码块,然后是子类的静态变量赋值、静态代码块
-
接下来执行父类的实例的构造、父类的构造方法,然后是子类的实例的构造、子类的构造方法
-
-
super关键字-
三种用法
-
super(),执行父类的构造方法,传入的参数会传给父类的相应的构造方法 -
super.data,访问父类的属性 -
super.func(),访问父类的方法
-
-
super的意义:super用来不受子类重写、隐藏的影响访问父类的方法、属性
super()调用父类的构造,显式调用的话必须放在构造方法第一行,如果不显式调用则默认隐式调用;和 this 一样,不能在静态方法中使用,this是因为静态方法、属性属于这个类而不是某个类实例,super 也是因为静态方法属于类,不属于某个对象,super 无法找到相应的父类实例 -
-
关于访问限定符:Java 的访问限定符,是在访问位置(where)上对访问做出限定,不要理解成那种类型的对象可以访问(who或者what)
-
关于 String
-
String 本身不存储字符串,类似与 C++ 的 string_view,存放的是在常量池中存储的字符串的地址,即 String 是引用类型。
-
String str = "abc" + "def";,在编译时,会被直接编译为String str = "abcdef"; -
当String 对象调用
+=时,会创建新的 StringBuilder 对象,然后调用append,随后返回toString(),得到新的 String 对象。总的来说,频繁调用 String 的+=接口,效率低下,会频繁创建 StiringBuilder,废弃的 String 对象和老旧的字符数组交给 GC 处理 -
拼接字符串,可以使用 StringBuilder 的 append 接口,内部存放的数组是可变的(String 中的是 final 修饰的),因此不需要频繁开辟新数组、回收旧数组
-
-
关于 Java 的异常体系
-
Java 的异常体系分为两类,即继承了 Throwable 的 Error 和 Exception,其中 Exception 又被 RuntimeException 和 IOException 所继承
-
运行时异常,如数组越界、空指针访问,对于是否捕获没有要求;受检异常,比如 IOException,必须捕获,可以通过 try-catch 在自己的方法体中处理,也可以往上传,在方法声明中使用 throws 关键字,交给调用方捕获处理
-
Error,大多是与 JVM 虚拟机相关的严重错误,不需要也不建议捕获
-
一个 try-catch 结构中,可以有多个 catch 语句,但是只会执行其中一个
-
在异常处理中,关闭数据库、释放资源、关闭文件应该在 finally 中执行
-
更多推荐
所有评论(0)