前言:
此刻你们对“javaboolean赋值”大概比较看重,同学们都需要分析一些“javaboolean赋值”的相关资讯。那么小编在网络上网罗了一些对于“javaboolean赋值””的相关知识,希望朋友们能喜欢,各位老铁们一起来了解一下吧!1. 有以下代码片段,请问输出的结果是()?
String str1="hello";String str2="he"+ new String("llo");System.out.println(str1==str2);
A.true
B.都不对
C.null
D.false
答案:
D
解析:
String str1="hello"; 这样创建字符串是存在于常量池中
String str2=new String("hello"); str2存在于堆中,
==是验证两个对象是否是一个(内存地址是否相同)
用+拼接字符串时会创建一个新对象再返回。
2.在如下所示的类Test中,共有()个构造方法。
public class Test{ private int x; public Test(){ x = 35; } public void Test(double f){ this.x = (int)f; } public Test(double f){ this.x = (int)f; } public Test(String s) {}}
A.0
B.1
C.2
D.3
答案:
D
解析:
构造方法形式:
类名([形式参数表])
构造方法没有返回值,不能添加void,构造方法可以被重载
3.一个以”.java”为后缀的源文件
A.只能包含一个类,类名必须与文件名相同
B.只能包含与文件名相同的类以及其中的内部类
C.只能有一个与文件名相同的类,可以包含其他类
D.可以包含任意类
答案:
C
解析:
略,前面都做过的- -!
4.下面哪些不是Thread类的方法
A.start()
B.run()
C.exit()
D.getPriority()
答案:
C
解析:
线程常用方法:
start(): 使该线程开始执行;Java 虚拟机调用该线程的run方法。
run():如果该线程是使用独立的Runnable运行对象构造的,则调用该Runnable对象的run方法;否则,该方法不执行任何操作并返回。
join():等待该线程终止。
getPriority():返回线程的优先级。
yield():暂停当前正在执行的线程对象,并执行其他线程
5.关于 JAVA 堆,下面说法错误的是()
A.所有类的实例和数组都是在堆上分配内存的
B.对象所占的堆内存是由自动内存管理系统回收
C.堆内存由存活和死亡的对象,空闲碎片区组成
D.数组是分配在栈中的
答案:
D
解析:
对象存储在堆区。数组是一种对象。
6.一个文件中的字符要写到另一个文件中,首先需要( )。
A.使用标准输出流System.out.println()。
B.建立文件字符输出流。
C.建立文件字符输入流。
D.标准输入流System.in.read()。
答案:
C
解析:
一个文件中的字符要写到另一个文件中,首先需要读取这个文件,所以要先建立输入流,然后写到另一个文件,这时再建立输出流.所以要先建立输入流,再建立输出流.
7.尝试编译以下程序会产生怎么样的结果?()
public class MyClass { long var; public void MyClass(long param) { var = param; }//(1) public static void main(String[] args) { MyClass a, b; a =new MyClass();//(2) b =new MyClass(5);//(3) }}
A.编译错误将发生在(1),因为构造函数不能指定返回值
B.编译错误将发生在(2),因为该类没有默认构造函数
C.编译错误将在(3)处发生,因为该类没有构造函数,该构造函数接受一个int类型的参数
D.该程序将正确编译和执行
答案:
C
解析:
构造方法就是:public 类名, 没有方法修饰符,所以 (1) 处就是一个普通方法,所以该类没有带参数构造方法 ,编译报错
8.下面叙述那个是正确的?()
A.java中的集合类(如Vector)可以用来存储任何类型的对象,且大小可以自动调整。但需要事先知道所存储对象的类型,才能正常使用。
B.在java中,我们可以用违例(Exception)来抛出一些并非错误的消息,但这样比直接从函数返回一个结果要更大的系统开销。
C.java接口包含函数声明和变量声明。
D.java中,子类不可以访问父类的私有成员和受保护的成员。
答案:
B
解析:
A.vector是线程安全的ArrayList,在内存中占用连续的空间。初始时有一个初始大小,当数据条数大于这个初始大小后会重写分配一个更大的连续空间。如果Vector定义为保存Object则可以存放任意类型。
B.try{}catch{}会增加额外的开销
C.接口中声明的'变量'必须为public final static,所以为常量
D.子类可以访问父类受保护的成员
9.下面代码的运行结果是()?
public static void main(String[] args){ String s; System.out.println("s="+s);}
A.代码编程成功,并输出”s=”
B.代码编译成功,并输出”s=null”
C.由于String s没有初始化,代码不能编译通过。
D.代码编译成功,但捕获到NullPointException异常
答案:
C
解析:
局部变量没有默认值
10. 代码 的运行结果是()?
A.在控制台打印hello sunline!
B.报异常java.lang.NullPoninterException
C.编译报错
D.报异常java.lang.RuntimeExcception
答案:
C
解析:
1、Java 中单实现通过 implements 关键字,多实现通过 extends 关键字
2、Java 中单继承通过 extends 关键字,没有多继承
3、如果同时出现继承和实现,则必须先继承(extends)再实现(implements)
11.由3 个“1”和 5 个“0”组成的 8 位二进制补码,能表示的最小整数()
A.-126
B.-125
C.-32
D.-3
答案:
B
解析:
既然求最小整数,那肯定先想到负数,则最高位(符号位)一定为1,原码中肯定是1所在的位数越高,值越小,而补码是由原码取反加1得到的,则在补码中1所在的位数一定要越低,即补码为1000 0011;由补码求得原码:1111 1101=-(64+32+16+8+4+1)=-125;
12.运行代码,结果正确的是:()?
Boolean flag = false;if(flag = true){ System.out.println("true");}else{ System.out.println("false");}
A.编译错误
B.TRUE
C.FALSE
D.什么也没有输出
答案:
B
解析:
if(flag = true)的时候flag已经是true了,所以输出true;
要是为if(flag == true)输出才为false
13.下列哪个选项是合法的标识符?()
A.123
B._name
C.class
D.first
答案:
B D
解析:
Java标识符由 数字、字母、下划线(_)、美元符号($) 组成,首位不能是数字 。并且Java关键字不能作为标识符 。
14.Why would a responsible Java programmer want to use a nested class?
A.To keep the code for a very specialized class in close association with the class it works with.
B.To support a new user interface that generates custom events.
C.To impress the boss with his/her knowledge of Java by using nested classes all over the place.
答案:
A B
解析:
使用嵌套类,其中有几个令人信服的理由:
加强封装—考虑两个顶级类,A和B,如果B需要访问A的private成员,通过在A类隐藏B类,那么即使A的成员声明为private,那么B也可以访问它们。更多的是,B本身也可以隐藏于外部。跟可读性,可维护性的代码—在顶级类里嵌套小类,让代码更靠近使用的地方。
15.下面有关Java的说法正确的是( )
A.一个类可以实现多个接口
B.抽象类必须有抽象方法
C.protected成员在子类可见性可以修改
D.通过super可以调用父类构造函数
E.final的成员方法实现中只能读取类的成员变量
F.String是不可修改的,且java运行环境中对string对象有一个对象池保存
答案:
A C D F
解析:
A对:java类单继承,多实现
B错:被abstract修饰的类就是抽象类,有没有抽象方法无所谓
C错:这道题应该是要考察子类继承父类,并重写父类的protected成员方法,该方法的可见性可以修改,这是对的,因为子类继承父类的方法,访问权限可以相同或往大了改
D对。
E错:final修饰的方法只是不能重写,static修饰的方法只能访问类的成员变量
F对。
16.下列描述正确的是( )?
A.类不可以多继承而接口可以多实现
B.抽象类自身可以定义成员而接口不可以
C.抽象类和接口都不能被实例化
D.一个类可以有多个基类和多个基接口
答案:
A C
解析:
1.java支持单继承,却可以实现多个接口。a对d错
2.接口没有构造方法,所以不能实例化,抽象类有构造方法,但是不是用来实例化的,是用来初始化的。c对
3.抽象类可以定义普通成员变量而接口不可以,但是抽象类和接口都可以定义静态成员变量,只是接口的静态成员变量要用static final public 来修饰。b错
17.关于下面这段Java程序,哪些描述是正确的:( )
public class ThreadTest extends Thread { public void run() { System.out.println("In run"); yield(); System.out.println("Leaving run"); } public static void main(String []argv) { (new ThreadTest()).start(); }}
A.程序运行输出只有In run
B.程序运行输出只有Leaving run
C.程序运行输出先有In run后有Leaving run
D.程序运行输出先有Leaving run后有In run
E.程序没有任何输出就退出了
F.程序将被挂起,只能强制退出
答案:
C
解析:
yield()从未导致线程转到等待/睡眠/阻塞状态。在大多数情况下,yield()将导致线程从运行状态转到可运行状态,但有可能没有效果。
18.哪个是不正确的字符常量?
A.”\n”
B.”1”
C.”a”
D.”\101”
答案:
A B C D
解析:
四个答案都采用的是双引号关闭,所以是字符串常量而不是字符常量。
忽略这个错误,那么这题就没有答案,因为无论是采用特殊字符的转移序列'\n'还是采用八进制转义'\101',都是满足Java语言规范中规定的字符常量格式。
19.JDK提供的用于并发编程的同步器有哪些?
A.Semaphore
B.CyclicBarrier
C.CountDownLatch
D.Counter
答案:
A B C
解析:
A,Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。
B,CyclicBarrier 主要的方法就是一个:await()。await() 方法没被调用一次,计数便会减少1,并阻塞住当前线程。当计数减至0时,阻塞解除,所有在此 CyclicBarrier 上面阻塞的线程开始运行。
C,直译过来就是倒计数(CountDown)门闩(Latch)。倒计数不用说,门闩的意思顾名思义就是阻止前进。在这里就是指 CountDownLatch.await() 方法在倒计数为0之前会阻塞当前线程。
D,Counter不是并发编程的同步器
20.下面关于面向对象的一些理解哪些是错误的( )?
A.面向对象的最重要的特性是支持继承、封装和多态
B.系统设计应该遵循开闭原则,系统应该稳定不不可修改,但应支持通过继承、组合等方式进行扩展
C.函数式的语言必然是面向对象的语言
D.面向对象设计时,每个类的职责应该单一,不要再一个类中引入过多的接口
E.过程式语言和面向对象的语言各有其优势,过程式语言更加灵活,面向对象语言更加强调抽象和封装
F.Java和C++都是静态类型的面向对象编程语言
答案:
C
解析:
动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。
更多大厂笔试,可关注公众号后查看!
文末
欢迎关注个人微信公众号:Coder编程
欢迎关注Coder编程公众号,主要分享数据结构与算法、Java相关知识体系、框架知识及原理、Spring全家桶、微服务项目实战、DevOps实践之路、每日一篇互联网大厂面试或笔试题以及PMP项目管理知识等。更多精彩内容正在路上~