叨叨两句
- 刷题的目的是为了发现已知知识的薄弱点,不是为了学新知识,学新知识应该系统的去刷书和视频
牛客网——java专项练习002
- 假设利用 return 语句从 try 语句块中退出。在方法返回前,finally子句的内容将被执行。如果 finally 子句中也有一个 return 语句,这个返回值将会覆盖原始的返回值。
public static void main(String[] args) {
int k = f_test();
System.out.println(k);
}
public static int f_test(){
int a = 0;
try{
a = 1;
return a;
}
finally{
System.out.println("It is in final chunk.");
a = 2;
return a;
}
}
输出:
It is in final chunk.
2
如果将 return a; 注释掉,将输出
It is in final chunk.
1
- 在Java中,对于不再使用的内存资源,如调用完成的方法,“垃圾回收器”会自动将其释放。(错误)
方法调用时,会创建栈帧在栈中,调用完是程序自动出栈释放,而不是gc释放
- 以下方法,哪个不是对add方法的重载?
public class Test
{
public void add( int x,int y,int z){}
}
正确答案: B
A. public int add(int x,int y,float z){return 0;}
B. public int add(int x,int y,int z){return 0;}
C. public void add(int x,int y){}
D. 以上都不是
重载、重写区别
- 下列代码片段中,存在编译错误的语句是(1、3、4)
byte b1=1,b2=2,b3,b6,b8;
final byte b4=4,b5=6,b7;
b3=(b1+b2); /*语句1*/
b6=b4+b5; /*语句2*/
b8=(b1+b4); /*语句3*/
b7=(b2+b5); /*语句4*/
System.out.println(b3+b6);
final知识点脑图
一、关于final的重要知识点;
1、final关键字可以用于成员变量、本地变量、方法以及类。
2、 final成员变量必须在声明的时候初始化或者在构造器中初始化,否则就会报编译错误。
3、 你不能够对final变量再次赋值。
4、 本地变量必须在声明时赋值。
5、 在匿名类中所有变量都必须是final变量。
6、 final方法不能被重写。
7、 final类不能被继承。
8、 没有在声明时初始化final变量的称为空白final变量(blank final variable),它们必须在构造器中初始化,或者调用this()初始化。不这么做的话,编译器会报错“final变量(变量名)需要进行初始化”。
二、数据类型转换
当使用 +、-、*、/、%、运算操作是,遵循如下规则:
只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型,如果两个操作数中有一个是float类型的,另一个将会被转换为float类型,并且结果也是float类型,如果两个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型,否则(操作数为:byte、short、int 、char),两个数都会被转换成int类型,并且结果也是int类型。
语句1错误:b3=(b1+b2);自动转为int,所以正确写法为b3=(byte)(b1+b2);或者将b3定义为int;
语句2正确:b6=b4+b5;b4、b5为final类型,不会自动提升,所以和的类型视左边变量类型而定,即b6可以是任意数值类型;
语句3错误:b8=(b1+b4);虽然b4不会自动提升,但b1仍会自动提升,所以结果需要强转,b8=(byte)(b1+b4);
语句 4: (b2 + b5) 结果仍然转换为int , 所以语句4错误。
- Java 语言中,负责并发管理的机制是(D)
A. 垃圾回收
B. 虚拟机
C. 代码安全
D. 多线程
选项A,Java语言中,垃圾回收机制对系统中不使用的内存进行回收,从而使程序员从繁忙的内存管理中解放出来。
选项B,Java编写好的程序首先由编译器转换为标准字节代码,然后由虚拟机执行。虚拟机把字节代码程序与各操作系统和硬件分开,使Java程序独立于平台。
选项C,Java的代码安全检测体现在多个层次上,在编译层、解释层、平台层分别作不同的安全检查。
选项D,多线程是Java程序的并发机制,它能同步共享数、处理不同的事件。
- 下列关于java 中的 wait()方法和 sleep()方法的区别描述错误的是?
A. wait()方法属于Object类,sleep()属于Thread类
B. 调用wait()方法的时候,线程会放弃对象锁
C. 调用sleep()方法的过程中,线程不会释放对象锁
D. sleep()方法导致了程序暂停执行指定的时间,让出cpu给其他线程
sleep与wait的区别
- public class contained in a Java program file must have the same name as the file, except for the extension ".java".(FALSE)
public class Test{
public static class innerClass{
public static void prin(){
System.out.println("innerClass");
}
}
public static void main(String[] args) {
Test.innerClass.prin();
System.out.println("HelloWorld");
}
}
题目的意思是: 除去扩展名.java的部分,包含在java文件里的Java里的公共类必须与文件的名字相同。
但是公共的内部类是不需要和文件的名字相同的。
- 以下程序的输出结果为(编译错误)
class Base{
public Base(String s){
System.out.print("B");
}
}
public class Derived extends Base{
public Derived (String s) {
System.out.print("D");
}
public static void main(String[] args){
new Derived("C");
}
}
子类构造方法在调用时必须先调用父类的,由于父类没有无参构造,必须在子类中显式调用,修改子类构造方法如下即可:
public Derived(String s){
super("s");
System.out.print("D");
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。