【牛客网java练习错题笔记】 --Java基础打卡day001

  • 1 关于final关键字错误的是
  • 2 关于值类型和引用正确的是
  • 3 子类A继承父类B
  • 4 字符串拼接
  • 5 关于面向对象的理解
  • 6 char与编码
  • 7 final类 与abstract 类中说法错误的是?
  • 8 关于异常
  • 9 删除结点
  • 广义表运算式


1 关于final关键字错误的是

java赋值为空则_java赋值为空则

final修饰类、方法、属性。不能修饰抽象类,因为抽象类一般都是需要被继承的,final修饰后就不能继承了。
final修饰的方法不能被重写
final修饰属性,此属性就是一个常量,不能被再次赋值

2 关于值类型和引用正确的是

java赋值为空则_java-ee_02


C(✔):

类可以继承,基本数据类型不能继承

D(X):

“值类型变量的作用域主要是在栈上分配内存空间内”:如果是跟上诉一致在方法内定义的基本变量,它的作用域就在栈中;如果是在类中定义的成员变量例如 Class A 中有成员变量 int val,这个类的实例在堆中,那么 val 作用域也在堆中

3 子类A继承父类B

java赋值为空则_开发语言_03


当实例化子类对象时,首先要加载父类的class文件进内存,静态代码块是随着类的创建而执行,所以父类静态代码块最先被执行,子类class文件再被加载,同理静态代码块被先执行;实例化子类对象要先调用父类的构造方法,而调用父类构造方法前会先执行父类的非静态代码块

4 字符串拼接

java赋值为空则_开发语言_04


在java中,“+” 和 “+=” 是经过重载的运算符,而java不允许程序员进行运算符的重载。如果 “+” 之前是String,那么此时,“+” 的作用就是连接两个字符串;若此时 “+” 后面是基本数据类型的话,可以直接进行连接,若是引用数据类型的话,则会调用该对象的toString()方法。

5 关于面向对象的理解

java赋值为空则_java赋值为空则_05


动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。

6 char与编码

java赋值为空则_java-ee_06


在java中,char和byte都是基础数据类型,其中的byte和C++中的char类型是一样的,8位,1个字节,-128-127。但是,char类型,是16位,2个字节, ‘\u0000’-’\uFFFF’

为什么java里的char是2个字节?

因为java内部都是用unicode的,所以java其实是支持中文变量名的,比如string 世界 = “我的世界”;这样的语句是可以通过的。

综上,java中采用GB2312或GBK编码方式时,一个中文字符占2个字节,而char是2个字节。

7 final类 与abstract 类中说法错误的是?

java赋值为空则_java赋值为空则_07


1,抽象类中可以有抽象方法,也可以没有抽象方法。

2,抽象类当然可以被继承,因为它就是用来继承的,

3,继承抽象类,若有抽象方法,则子类必须将其抽象方法实现,

4,抽象类中的非抽象方法可以被重写。

最终类和抽象类正好相反
5,加上final的类就叫最终类,加上final的方法就叫最终方法,
6,最终类中可以有最终方法也可以没有
7,最终类不能有子类,最终方法不能被重写

8 关于异常

java赋值为空则_抽象类_08


error是系统出错,catch是无法处理的,难以修复的,RuntimeException不需要程序员进行捕获处理,error和exception都是throwable的子类,我们只需要对exception的实例进行捕获即可

java赋值为空则_抽象类_09

9 删除结点

java赋值为空则_抽象类_10


李代桃僵,实际删除的是A的后继结点B:先将A的后继结点B复制到A中,且A的后继改为原来B的后继,再将B删除。作用等同于删除A。

广义表运算式

java赋值为空则_开发语言_11


取表尾tail表头head操作:

深度为1 head((a,b,c,d))=a;

深度为1 tail((a,b,c,d))=(b,c,d);

深度为2 head(((a,b),(c,d)))=(a,b)

深度为2 tail(((a,b),(c,d)))=((c,d))

这里的深度有个小技巧:从最右边看半括号个数(注意最外一层是不算的,它是作为head或者tail运算时整体的一部分的)。

如果计算的是head操作,会发现计算结果的右半括号个数是深度–1;

如果计算的是tail操作,会发现计算结果的右半括号个数是=深度;

java赋值为空则_抽象类_12