java试题,Java试题解析

本文目录一览:

java基础面试题有哪些?

下面是10道java基础面试题,后附答案

1.什么是 Java 虚拟机?为什么 Java 被称作是“平台无关的编程语言”?

Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编译成能被 Java 虚拟机执行的字节码文件。

Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java 虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。

2.“static”关键字是什么意思?Java 中是否可以覆盖(override)一个 private 或者是static 的方法?

“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。

Java 中 static 方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而 static 方法是编译时静态绑定的。static 方法跟类的任何实例都不相关,所以概念上不适用。

3.JDK 和 JRE 的区别是什么?

Java 运行时环境(JRE)是将要执行 Java 程序的 Java 虚拟机。它同时也包含了执行 applet 需要的浏览器插件。Java 开发工具包 (JDK)是完整的 Java 软件开发包,包含了 JRE,编译器和其他的工具(比如:JavaDoc,Java 调试器),可以让开发者开发、编译、执行 Java 应用程序。

4.是否可以在 static 环境中访问非 static 变量?

static 变量在 Java 中是属于类的,它在所有的实例中的值是一样的。当类被 Java 虚拟机载入的时候,会对 static 变量进行初始化。如果你的代码尝试不用实例来访问非 static 的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

5.Java 支持的数据类型有哪些?什么是自动拆装箱?

Java 语言支持的 8 中基本数据类型是:

byte

short

int

long

float

double

boolean

char

自动装箱是 Java 编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如:把 int 转化成 Integer,double 转化成 double,等等。反之就是自动拆箱。

6.Java 支持多继承么?

不支持,Java 不支持多继承。每个类都只能继承一个类,但是可以实现多个接口。

7.Java 中,什么是构造函数?什么是构造函数重载?什么是复制构造函数?

当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序员没有给类提供构造函数的情况下,Java 编译器会为这个类创建一个默认的构造函数。

Java 中构造函数重载和方法重载很相似。可以为一个类创建多个构造函数。每一个构造函数必须有它自己唯一的参数列表。

Java 不支持像 C++中那样的复制构造函数,这个不同点是因为如果你不自己写构造函数的情况下,Java 不会创建默认的复制构造函数。

8.Java 中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?

Java 中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。与此相对,方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。覆盖者可能不会限制它所覆盖的方法的访问。

9.接口和抽象类的区别是什么?

Java 提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:

接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。

类可以实现很多个接口,但是只能继承一个抽象类

类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。

抽象类可以在不提供接口方法实现的情况下实现接口。

Java 接口中声明的变量默认都是 final 的。抽象类可以包含非 final 的变量。

Java 接口中的成员函数默认是 public 的。抽象类的成员函数可以是 private, protected 或者是 public。

接口是绝对抽象的,不可以被实例化。抽象类也不可以被实例化,但是,如果它包含 main 方法的话是可以被调用的。

10.什么是值传递和引用传递?

对象被值传递,意味着传递了对象的一个副本。因此,就算是改变了对象副本,也不会影响源对象的值。

对象被引用传递,意味着传递的并不是实际的对象,而是对象的引用。因此,外部对引用对象所做的改变会反映到所有的对象上。

最后祝你面试顺利!

java简单试题

4、对象的使用包括引用对象的成员变量和方法。通过_对象_点___属性_运算符就能实现对对象成员变量的访问和对象方法的调用。

5、在Java中有一种叫作_构造方法____________特殊方法,我们在程序中用它来对类的对象成员进行初始化。

6、用static修饰的方法,称为静态方法。它们不是对象的方法,而是整个类的方法。静态方法只能处理用关键字___static_____修饰的数据。

7、表达式1/2*3的计算结果是______0__。

8、在Java程序中,通过类的定义只能实现___单_____重继承,但通过接口的定义可以实现____多____重继承关系。

9、在Java语言中,逻辑常量只有true 和 _____false______ 两个值。

10、Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和 _double________两种具体类型。

11、else子句不能单独作为语句使用,它必须和if子句配对使用,那么else 子句的配对原则是:else子句总是与离它___最近_____的if子句配对使用。

12、向对象的语言将客观世界都看成由各种对象组成,共同特征和行为的对象组成类, 类是变量和___方法_____的集合体。

13、RandomAccessFile所实现的接口是 DataInput、 Closeable____接口和DataOutput 接口。

14、创建包的语句应该放在程序的位置为___文件的第一句________。

15、字符类输出流的各个类都是抽象类___java.io.Reader______的子类。

JAVA试题,有会做的吗?

一、基本知识(单选每题2分)

1、下列属于Java语言的特点的一项是(D)

A、 运算符重载 B、单重继承 C、指针操作 D、垃圾回收

2、Java语言最初是面向哪个应用领域设计的(A)

A、 Internet B、制造业 C、消费电子产品 D、CAD

3、Java语言属于下列哪一种语言(B)

A、 面向机器的语言 B、面向对象的语言 C、面向过程的语言 D、面向操作系统的语言

4、面向对象的基本特征不包括(B)

A、封装 B、功能分解 C、继承 D、多态

5、以下对类的描述不正确的是(D)

A、具有相同或相似性质的对象的抽象就是类

B、类是对象的抽象

C、类的实例是对象

D、对象和类无关

6、Java是由哪个公司推出的(A)

A、sun B、微软 C、ORACLE D、google

7、以下不属于Java体系的是(D)

A、j2se B、j2me C、j2ee D、j2sd

8、J2EE哪一年更改为JavaEE(B)

A、2008 B、2005 C、2006 D、2010

9、以下不属于Java开发步骤的是(D)

A、编写Java源文件

B、运行Java程序

C、编译Java源文件

D、生成exe文件

10、Android是由哪个公司推出的(D)

A、sun B、微软 C、ORACLE D、google

11、Android的第一个正式版本是哪年推出的( A )

A、2008 B、2005 C、2006 D、2010

12、Android被称为“冻酸奶”的是哪个版本(A)

A、2.2 B、2.3 C、1.6 D、3.0

13、以下不属于Android优势的是(D)

A、平台开放性

B、丰富的硬件支持

C、方便开发

D、受Linux开发束缚

14、以下不属于Android开发环境必备的是(C)

A、JDK B、ADT C、vs D、SDK

15、以下说法错误的是(D)

A、Android是免费开放平台

B、Android不可以用Myeclipse开发

C、eclipse是Android较好的开发工具

D、Android虚拟机可以上网

16、以下不属于移动开发技术的是(A)

A、IOS B、j2me C、Android D、JavaEE

17、Java8.0版本由哪个公司发布(B)

A、sun B、甲骨文 C、微软 D、google

18、Java8.0版本是哪年发布的(D)

A、2011 B、2012 C、2013 D、2014

19、以下不符合面向对象编程思想的是(C)

A、从现实世界中客观存在的事物(即对象)出发来构造软件系统

B、构造中尽可能运用人类的自然思维方式

C、认为事物之间没有必然联系

D、保持问题域中事物及其相互关系的本来面貌

20、以下不属于面向对象概念的是(D)

A、类 B、对象 C、对象的状态和行为 D、结构体

望采纳

java试卷

第一,谈谈final,

finally,

finalize的区别。

final

修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为

abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载

finally

再异常处理时提供

finally

块来执行任何清除操作。如果抛出一个异常,那么相匹配的

catch

子句就会执行,然后控制就会进入

finally

块(如果有的话)。

finalize?方法名。java

技术允许使用

finalize()

方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在

object

类中定义的,因此所有的类都继承了它。子类覆盖

finalize()

方法以整理系统资源或者执行其他清理工作。finalize()

方法是在垃圾收集器删除对象之前对这个对象调用的。

第二,anonymous

inner

class

(匿名内部类)

是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

匿名的内部类是没有名字的内部类。不能extends(继承)

其它类,但一个内部类可以作为一个接口,由另一个内部类实现。

第三,static

nested

class

inner

class的不同,说得越多越好(面试题有的很笼统)。

nested

class

(一般是c++的说法),inner

class

(一般是java的说法)。java内部类与c++嵌套类最大的不同就在于是否有指向外部的引用上。具体可见http:

//

;page=1

注:

静态内部类(inner

class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象

第四,和的区别。

是位运算符。是布尔逻辑运算符。

第五,hashmap和hashtable的区别。

都属于map接口的类,实现了将惟一键映射到特定的值上。

hashmap

类没有分类或者排序。它允许一个

null

键和多个

null

值。

hashtable

类似于

hashmap,但是不允许

null

键和

null

值。它也比

hashmap

慢,因为它是同步的。

第六,collection

collections的区别。

collections是个java.util下的类,它包含有各种有关集合操作的静态方法。

collection是个java.util下的接口,它是各种集合结构的父接口。

第七,什么时候用assert。

断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为

true。如果表达式计算为

false,那么系统会报告一个

assertionerror。它用于调试目的:

assert(a

0);

//

throws

an

assertionerror

if

a

=

断言可以有两种形式:

assert

expression1

;

assert

expression1

:

expression2

;

expression1

应该总是产生一个布尔值。

expression2

可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的

string

消息。

断言在默认情况下是禁用的。要在编译时启用断言,需要使用

source

1.4

标记:

javac

-source

1.4

test.java

要在运行时启用断言,可使用

-enableassertions

或者

-ea

标记。

要在运行时选择禁用断言,可使用

-da

或者

-disableassertions

标记。

要系统类中启用断言,可使用

-esa

或者

-dsa

标记。还可以在包的基础上启用或者禁用断言。

可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。另外,断言不应该以任何方式改变程序的状态。

第八,gc是什么?

为什么要有gc?

(基础)。

gc是垃圾收集器。java

程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:

system.gc()

runtime.getruntime().gc()

第九,string

s

=

new

string(“xyz”);创建了几个string

object?

两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。

第十,math.round(11.5)等於多少?

math.round(-11.5)等於多少?

math.round(11.5)返回(long)12,math.round(-11.5)返回(long)-11;

第二十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

都不能

求 JAVA 试题 判断题答案

1.对

2.错

3.前半句对,后半句错

4.对

5.错

6.错

7.对

8.错

9.错

10.错

11.错

12. 错

13.对

14.错

15.错

16.错

17.对

18.对

19.错

20.错

21.错

22.对

23.错

24.错

25.对

26.错

27.错

28.错

29.对

30.错

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/282762.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-22 08:05
下一篇 2024-12-22 08:06

相关推荐

  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • Java 8 Group By 会影响排序吗?

    是的,Java 8中的Group By会对排序产生影响。本文将从多个方面探讨Group By对排序的影响。 一、Group By的概述 Group By是SQL中的一种常见操作,它…

    编程 2025-04-29

发表回复

登录后才能评论