
Java基础
文章平均质量分 56
qq_41423755
这个作者很懒,什么都没留下…
展开
-
异常的分类
checked exception:受检查异常需要try-catch包一下,或者在方法签名处声明throws,否则编译不通过IOException(IO异常,比如使用某些流来读取数据,其他一些进程关闭了流;尝试读取/写入文件但没有权限),ClassNotFoundException(找不到指定类的异常,通过字符串加载类比如用Class.forName(“xx”)时找不到指定的类会报错),SQLException(SQL异常,比如登录被拒绝;表不存在;列名不存在;原创 2023-12-09 11:10:31 · 434 阅读 · 0 评论 -
什么是虚引用?
虚引用:如果一个对象仅持有虚引用,它就和没有任何引用一样,在任何时候都可能被垃圾回收。唯一作用就是配合引用队列监控(添加虚引用的)对象被垃圾回收的活动,当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到一个引用队列中。程序可以通过引用队列知晓监控对象是否将要被回收,以便在他们被回收之前可以采取一些行动。原创 2023-12-08 14:34:26 · 111 阅读 · 0 评论 -
面试题——动态代理是什么?
静态代理指的是我们预先编码好一个代理类,而动态代理指的是运行时生成代理类。动态更加方便,可以指定一系列目标来动态生成代理类(AOP),而不像静态代理需要为每个目标类写对应的代理类。动态代理就是一个代理机制,动态是相对于静态来说的。代理可以看作是调用目标的一个包装,通常用来在调用真实的目标之前进行一些逻辑处理。代理也是一种解耦,目标类和调用者之间的解耦,因为多了代理类这一层。“代理也是一种解耦,目标类和调用者之间的解耦,因为多了代理类这一层。所以,代理类的出现,实现了目标类和调用者之间的解耦。原创 2023-12-07 20:14:30 · 103 阅读 · 1 评论 -
移位操作符>>与>>>以及<<
有符号数右移时,高位用相应的符号数填充;无符号数右移时,高位均用0填充;有符号数左移时,低位均用0填充;右移或者左移时,符号位也参与移动;正数和负数均用补码形式表示,其中正数的原码=反码=补码,负数的补码=原码除符号位以后的部分取反加1。原创 2023-12-06 20:14:49 · 90 阅读 · 1 评论 -
关于带符号基本数据类型的取值范围的解释
到此,再来看正0和负0的原码:0000 0000 0000 0000和1000 0000 0000 0000,补码表示中,正0的补码还是0000 0000 0000 0000,负0经过非符号位取反(1111 1111 1111 1111)加1后,同样变成了0000 0000 0000 0000,也就是正0和负0在补码系统中的编码是一样的,也就是说正0和负0的两个原码最终转换为同一个补码0000 0000 0000 0000。二进制原码最大为0111 1111 1111 1111=2^15-1=32767。原创 2023-12-06 19:34:18 · 217 阅读 · 1 评论 -
面试题——接口和抽象类的区别是什么?
接口方法修饰符都隐含public,抽象类方法修饰符可以用public,protected,无修饰符以及private(加上private不会报错,但是为了发挥抽象方法能被子类重写的作用,这里不使用private)。接口中的所有变量都隐含public static final,而抽象类中可以包含非static变量,非final变量,变量的修饰符可以是private,protected或者public或者无修饰符。从设计层面来说,抽象类是对类的抽象,是一种模板设计,而接口是对行为的抽象,是一种行为的规范。原创 2023-12-05 15:38:30 · 58 阅读 · 0 评论