2024年java基础语法汇总

java基础语法汇总81 可序列化对象为什么要定义 serialversio 值 SerialVersio 简言之 其目的是序列化对象版本控制 有关各版本反序列化时是否兼容 如果在新版本中这个值修改了 新版本就不兼容旧版本 反序列化时会抛出 InvalidClass 异常 如果修改较小 比如仅仅是增加了一个属性 我们希望向下兼容 老版本的数据都能保留 那就不用修改

大家好,我是讯享网,很高兴认识大家。



81.可序列化对象为什么要定义serialversionUID值?

SerialVersionUid,简言之,其目的是序列化对象版本控制,有关各版本反序列化时是否兼容。如果在新版本中这个值修改了,新版本就不兼容旧版本,反序列化时会抛出InvalidClassException异常。如果修改较小,比如仅仅是增加了一个属性,我们希望向下兼容,老版本的数据都能保留,那就不用修改;如果我们删除了一个属性,或者更改了类的继承关系,必然不兼容旧数据,这时就应该手动更新版本号,即SerialVersionUid。

82.写一个Java正则,能过滤出html中的< a href=https://www.bilibili.com/read/cv6440142/”url”>title< /a>形式中的链接地址和标题.

< ab[^>]+bhref="([^"]*)"[^>]*>([sS]*?)< /a>

< ab[^>]+bhref="([^"]*)"[^>]*>([sS]*?)< /a>

83.十进制数72转换成八进制数是多少?

答: 110

84.Java程序中创建新的类对象,使用关键字new,回收无用的类对象使用关键字free正确么?

答:Java程序中创建新的类对象,使用关键字new是正确的; 回收无用的类对象使用关键字free是错误的.

85.Class类的getDeclaredFields()方法与getFields()的区别?

答:getDeclaredFields(): 可以获取所有本类自己声明的方法, 不能获取继承的方法

getFields(): 只能获取所有public声明的方法, 包括继承的方法

86.在switch和if-else语句之间进行选取,当控制选择的条件不仅仅依赖于一个x时,应该使用switch结构;正确么?

答:不正确。

通常情况下,进行比较判断的处理,switch

和if-else可以互相转换来写;if-else作用的范围比switch-case作用范围要大,但是当switch-case和if-else都可以用的情况下,通常推荐使用switch-case。

比如:

 
 
 
 
 
 

换为if-else

 
   
   
   
   
 

87.描述&和&&的区别。

&和&&的联系(共同点):

&和&&都可以用作逻辑与运算符,但是要看使用时的具体条件来决定。

操作数1&操作数2,操java基础语法汇总作数1&&操作数2,

操作数1&操作数2,操作数1&&操作数2,

情况1:当上述的操作数是boolean类型变量时,&和&&都可以用作逻辑与运算符。

情况2:当上述的表达式结果是boolean类型变量时,&和&&都可以用作逻辑与运算符。

表示逻辑与(and),当运算符两边的表达式的结果或操作数都为true时,整个运算结果才为true,否则,只要有一方为false,结果都为false。

表示逻辑与(and),当运算符两边的表达式的结果或操作数都为true时,整个运算结果才为true,否则,只要有一方为false,结果都为false。

(1)、&逻辑运算符称为逻辑与运算符,&&逻辑运算符称为短路与运算符,也可叫逻辑与运算符。

对于&:无论任何情况,&两边的操作数或表达式都会参与计算。

对于&&:当&&左边的操作数为false或左边表达式结果为false时,&&右边的操作数或表达式将不参与计算,此时最终结果都为false。

综上所述,如果逻辑与运算的第一个操作数是false或第一个表达式的结果为false时,对于第二个操作数或表达式是否进行运算,对最终的结果没有影响,结果肯定是false。推介平时多使用&&,因为它效率更高些。

(2)、&还可以用作位运算符。当&两边操作数或两边表达式的结果不是boolean类型时,&用于按位与运算符的操作。

88.使用final关键字修饰符一个变量时,是引用不能变,还是引用的对象不能变?

final修饰基本类型变量,其值不能改变。

但是final修饰引用类型变量,栈内存中的引用不能改变,但是所指向的堆内存中的对象的属性值仍旧可以改变。

例如:

 
     
   
 

89.请解释以下常用正则含义:d,D,s,.,*,?,|,[0-9]{6},d+

d: 匹配一个数字字符。等价于[0-9]

D: 匹配一个非数字字符。等价于[^0-9]

s: 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ f v]

. :匹配除换行符 之外的任何单字符。要匹配 . ,请使用 . 。

*:匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。

+:匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。

|:将两个匹配条件进行逻辑“或”(Or)运算

[0-9]{6}:匹配连续6个0-9之间的数字

d+:匹配至少一个0-9之间的数字

90.已知表达式int m[] = {0,1,2,3,4,5,6}; 下面那个表达式的值与数组的长度相等()

Am.length()

B.m.length

C.m.length()+1

D.m.length+1

答案:B

分析:数组的长度是.length

小讯
上一篇 2024-12-28 17:31
下一篇 2024-12-30 19:39

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/8591.html