JAVA题目汇总

2023-05-16

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

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

    Java运行时环境(JRE)。它包括Java虚拟机、Java核心类库和支持文件。它不包含开发工具(JDK)--编译器、调试器和其他工具。
    Java开发工具包(JDK)是完整的Java软件开发包,包含了JRE,编译器和其他的工具(比如:JavaDoc,Java调试器),可以让开发者开发、编译、执行Java应用程序。
    
  3. “static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?

    “static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。
    Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。
    java中也不可以覆盖private的方法,因为private修饰的变量和方法只能在当前类中使用,如果是其他的类继承当前类是不能访问到private变量或方法的,当然也不能覆盖。
    
  4. Java支持的数据类型有哪些?什么是自动拆装箱?

    Java语言支持的8种基本数据类型是:
    byte
    short
    int
    long
    float
    double
    boolean
    char
    自动装箱是Java编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如:把int转化成Integer,double转化成Double,等等。反之就是自动拆箱。
    
  5. Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?

    Java中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况,跟返回值类型没关系。与此相对,方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。覆盖者可能不会限制它所覆盖的方法的访问。
    
  6. 接口和抽象类的区别是什么?

    Java提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:
    接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。
    类可以实现很多个接口,但是只能继承一个抽象类
    类可以不实现抽象类和接口声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。
    抽象类可以在不提供接口方法实现的情况下实现接口。
    Java接口中声明的变量默认都是final的。抽象类可以包含非final的变量。
    Java接口中的成员函数默认是public的。抽象类的成员函数可以是private,protected或者是public。
    接口是绝对抽象的,不可以被实例化。抽象类也不可以被实例化,但是,如果它包含main方法的话是可以被调用的。
    也可以参考JDK8中抽象类和接口的区别
    

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

值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量.
引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本, 并不是原对象本身 。
一般认为,java内的传递都是值传递. java中实例对象的传递是引用传递 

8. 进程和线程的区别是什么?

        进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以有多个线程。线程又叫做轻量级进程。
    线程的划分小于进程,线程隶属于某个进程。 进程是程序的一种动态形式,是CPU、内存等资源占用的基本单位,而线程是不能占有这些资源的。 进程之间相互独立,通信比较困难,而线程之间共享一块内存区域,通信比较方便。 进程在执行的过程中,包含比较固定的入口,执行顺序,出口,而线程的这些过程会被应用程序所控制

9. 创建线程有几种不同的方式?你喜欢哪一种?为什么?

有4种方式可以用来创建线程:
继承Thread类
实现Runnable接口
应用程序可以使用Executor框架来创建线程池
实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。在应用设计中已经继承了别的对象的情况下,这需要多继承(而Java不支持多继承),只能实现接口。同时,线程池也是非常高效的,很容易实现和使用。
还有一种方式是实现Callable接口

10. 概括的解释下线程的几种可用状态。

1. 新建( new ):新创建了一个线程对象。
2. 可运行( runnable ):线程对象创建后,其他线程(比如 main 线程)调用了该对象 的 start ()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获 取 cpu 的使用权 。
3. 运行( running ):可运行状态( runnable )的线程获得了 cpu 时间片( timeslice ) ,执行程序代码。
4. 阻塞( block ):阻塞状态是指线程因为某种原因放弃了 cpu 使用权,也即让出了 cpu timeslice ,暂时停止运行。直到线程进入可运行( runnable )状态,才有 机会再次获得 cpu timeslice 转到运行( running )状态。阻塞的情况分三种:
(一). 等待阻塞:运行( running )的线程执行 o . wait ()方法, JVM 会把该线程放 入等待队列( waitting queue )中。
(二). 同步阻塞:运行( running )的线程在获取对象的同步锁时,若该同步锁 被别的线程占用,则 JVM 会把该线程放入锁池( lock pool )中。
(三). 其他阻塞: 运行( running )的线程执行 Thread . sleep ( long ms )或 t . join ()方法,或者发出了 I / O 请求时, JVM 会把该线程置为阻塞状态。            当 sleep ()状态超时、 join ()等待线程终止或者超时、或者 I / O 处理完毕时,线程重新转入可运行( runnable )状态。
5. 死亡( dead ):线程 run ()、 main () 方法执行结束,或者因异常退出了 run ()方法,则该线程结束生命周期。死亡的线程不可再次复生。

这里写图片描述

11.

  1. 12.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA题目汇总 的相关文章

  • Spring中如何映射Request参数?

    我正在使用 Spring MVC 当用户注册后 一封电子邮件将发送到用户帐户 这工作正常 我还将加密的用户ID发送到用户电子邮件 为此我编写了一个模板
  • Java Util Logger 写入同步

    通常在应用程序中 以 Web 应用程序为例 我们在启动期间创建一个记录器实例 它甚至可以是一个单例 但这并不重要 重要的是整个应用程序有 1 个实例 我们使用java util logger 现在想象一下 您有来自两个不同用户的两个请求 它
  • 创建 RESTful WebService 并通过 Glassfish 4 提供服务

    我在 JEE6 中看到了很多关于 RESTful WebServices 的问题 所以我想与您分享这个示例解决方案 它展示了实现 RESTful Webservice 是多么容易 首先创建一个新的动态 Web 项目并将 Glassfish
  • 我的应用程序中的 google+ 集成

    我是 Android 开发新手 正在创建一个带有 Google 集成的 Android 应用程序 我看到了一个教程并开始遵循它 但自教程以来 Google 已经更新了 Google 集成 例如 在本教程中您曾经单击 获取配置文件 按钮htt
  • 为什么在Java中读取易失性和写入字段成员是不可扩展的?

    观察以下用 Java 编写的程序 完整的可运行版本如下 但程序的重要部分在下面的代码片段中 import java util ArrayList A not easy to explain benchmark class MultiVola
  • Spring批处理2.2 JavaConfig

    我正在尝试让 Spring Batch 2 2 与 JavaConfig 一起使用 如今他们有一个 EnableBatchProcessing设置很多东西的注释 默认情况下 该注释使用数据源作为其作业数据 但我们不想保存此数据 也不想为其创
  • HQL - 分页的行标识符

    有谁知道HQL是否有一个关键字来标识行 例如ROWID或ROWNUM 我想使用 HQL 实现分页 但我无法使用 setMaxResult 或 setFirstResult 因为我不直接使用会话对象 因此不使用 Query 对象 而只是将查询
  • Linux 上的 JavaFX

    Linux x86 和 x64 上的 JavaFX 情况如何 JavaFX 应用程序可以在 Linux 操作系统上顺利执行吗 我发现了 2011 年和 2012 年的一些问题 当时应用程序不稳定 目前发布的 JFX 版本是 2 2 4 在
  • Apache HttpClient 4.x 在上传较大文件时表现奇怪?

    我正在使用 java 和 scala 开发和测试一个简单的客户端 服务器应用程序 The server是基于com sun net httpserver HttpServer并允许使用 POST 和 PUT 操作通过基本的 RESTful
  • 如何从资源服务器中的 Spring Security OAuth2 Boot 中提取声明?

    我有一个使用 Net Core 内置的授权服务器身份服务器4 https identityserver4 readthedocs io en latest 它正在按预期工作 从 Node Js 和 Net 授权客户端和资源 现在我尝试添加
  • 自动装箱是否调用 valueOf()?

    我试图确定以下陈述是否保证为真 Boolean true Boolean TRUE Boolean true Boolean valueOf true Integer 1 Integer valueOf 1 我一直认为自动装箱相当于调用va
  • double 或 BigDecimal 会溢出吗?

    Java 8 给了我们Math addExact https docs oracle com javase 8 docs api java lang Math html addExact int int 适用于整数 但不适用于小数 是否有可
  • Selenium 和 xpath:查找带有类/id 的 div 并验证其中的文本

    我正在努力拥有xpath find a div并验证div有一个特定的string里面的文字 这是HTML div class Caption Model saved div and div class gwt HTML sfnStanda
  • 菜单项标题未显示

    菜单项的标题未显示在片段内 我在菜单文件中有两个项目 第一个是带有图标和标签的showAsAction always在工具栏中显示图标 第二个只有标题 我不知道这里出了什么问题 菜单项的所有操作均有效 例如下面 菜单 销售 xml menu
  • 如何更新 Websphere 7 以使用 EL2.2?

    这就是我所做的 按照此林肯 巴克斯特的帖子 http ocpsoft com java jsf2 java jsf2 how to add the magic of el el2 to jsf 我下载了 el api 2 2 jar 和 e
  • 将 Tango 3D 点投影到屏幕 Google Project Tango

    Project Tango 提供了点云 如何获取点云中 3D 点的像素位置 以米为单位 我尝试使用投影矩阵 但得到的值非常小 0 5 1 3 等 而不是 1234 324 以像素为单位 我包含我尝试过的代码 Get the current
  • 控制台中的 Java msg - 两个方法具有相同的方法签名但不提供可分配的类?

    在迁移到 java 1 8 时 我升级了项目中的许多依赖项 它是基于spring 4 3的应用程序 有很多外部依赖 例如 JMS HTTP客户端 FTP XML等 当应用程序启动时 我现在在控制台中收到以下消息 两个方法具有相同的方法签名但
  • 在java中访问dll方法

    我正在尝试访问java中用c 编写的dll方法 从下面的代码我试图构建已成功生成的 dll using System using Microsoft Win32 namespace CyberoamWinHelper public clas
  • 解决SecurityException:权限拒绝:启动意图。我需要什么许可?

    我想从应用程序打开游戏商店 在三星手机上还好 但在一加手机上却失败了 我不知道在哪里alibaba来自 真奇怪 异常 java lang SecurityException 权限拒绝 启动意图 act android intent acti
  • DocumentBuilder 解析产生无效字节 2 of 4 字节 UTF-8 序列错误

    我正在尝试解析包含字符串的字节数组Impresi n in XML final DocumentBuilderFactory builderFactory DocumentBuilderFactory newInstance final D

随机推荐

  • 《深入理解java虚拟机》学习笔记6——类加载机制

    原文出处 xff1a http blog csdn net chjttony article details 7909502 Java虚拟机类加载过程是把Class类文件加载到内存 xff0c 并对Class文件中的数据进行校验 转换解析和
  • 《深入理解java虚拟机》学习笔记7——Java虚拟机类生命周期

    原文出处 xff1a http blog csdn net chjttony article details 7909682 C C 43 43 等纯编译语言从源码到最终执行一般要经历 xff1a 编译 连接和运行三个阶段 xff0c 连接
  • java异常处理机制深入理解

    原文出处 xff1a http blog csdn net hguisu article details 6155636 java异常类结构图 Throwable 有两个重要的子类Exception 和 Error Error 是程序无法处
  • mysql常用语句及实题训练

    基本语句操作 创建数据库 xff1a span class hljs operator span class hljs keyword create span span class hljs keyword database span sp
  • Linux学习笔记二

    Linux目录 根分区 span class hljs built in cd span ls span class hljs operator l span 打开设备目录 xff1a span class hljs built in cd
  • QGC调试px4固件飞控

    文章目录 前言一 开源软件地址二 硬件接线三 无人机调试1 刷固件2 选机架3 校准传感器4 校准遥控器5 飞行模式设置6 电源设置7 查看电机8 试飞 总结 前言 开源无人机调试 xff1a 硬件 xff1a pixhawk 2 4 8
  • Linux学习笔记三-Shell编程

    bash脚本编写 编写bash脚本程序有两种方式 1 可以输入一系列命令让bash交互地执行它们 xff0c 2 也可以把这些命令保存到一个文本文件中 xff0c 然后将该文件作为一个程序来调用 在执行shell命令时多个命令可以在一个命令
  • 二叉搜索树详解链式与数组式实现

    前沿 xff1a 首先让我们认识下什么是二叉搜索树 xff0c 二叉搜索树是十分高效的一种搜索算法 xff0c 定义为 xff1a 它的每个节点都有以下性质 xff08 在左右子树都不为空的情况下 xff09 自己本身的权值比它的左子树大
  • Linux学习笔记四-Shell中[],(())

    的使用 的返回值 xff1a 0 代表真1 代表假 中可用的比较运算符只有 61 61 和 61 xff0c 两者都是用于字符串比较的 xff0c 不可用于整数比较 xff0c 整数比较只能使用 eq xff0c gt这种形式 无论是字符串
  • Java集合源码学习(一)集合框架

    原文地址 xff1a https yq aliyun com articles 38397 spm 61 5176 8091938 0 0 fRUCzz 集合框架 Java集合框架包含了大部分Java开发中用到的数据结构 xff0c 主要包
  • Java集合源码学习(二)ArrayList分析

    原文地址 xff1a https yq aliyun com articles 38407 spm 61 5176 8091938 0 0 3G9cay 关于ArrayList ArrayList直接继承AbstractList xff0c
  • Java集合源码学习(三)LinkedList分析

    原文地址 xff1a https yq aliyun com articles 38408 spm 61 5176 8091938 0 0 tjeCwH 前言 前面学习了ArrayList的源码 xff0c 数组是顺序存储结构 xff0c
  • Java集合源码学习(四)HashMap分析

    原文地址 xff1a https yq aliyun com articles 38410 spm 61 5176 8091938 0 0 01LA3v 摘要 ArrayList LinkedList和HashMap的源码是一起看的 xff
  • Java类的加载顺序及生命周期原理解析

    摘要 经常看到java面试题static 构造函数等混合执行 问会输出什么 xff0c 这里针对类的加载及类的生命周期进行原理的解析 xff0c 就能很快明白了 java类的加载顺序 简单的说 xff0c 首先要知道Java虚拟机对clas
  • 牛客网-贪心-裁减网格纸

    https www nowcoder com questionTerminal 65865c6644154bb4acca764b1480ecbb orderByHotValue 61 1 amp questionTypes 61 00010
  • 牛客网-贪心-最大间隔

    https www nowcoder com questionTerminal 3a571cdc72264d76820396770a151f90 orderByHotValue 61 1 amp questionTypes 61 00010
  • Ubuntu 执行属性为executable (application/x-executable)的文件

    ubuntu14 04 LTS下执行属性为executable application x executable 的文件的方法 xff1a 1 chmod 43 x filename 2 filename 就可以执行了 xff01 xff0
  • 牛客网-贪心-扫描透镜

    https www nowcoder com questionTerminal 6a219d196df44d3abd82fbadb1a62c3f orderByHotValue 61 1 amp questionTypes 61 00010
  • TCP三次握手与四次握手

    HTTP工作流程 当我们从浏览器输入一个url xff0c Http的工作流程如下图所示 xff1a DNS解析流程请看DNS域名解析过程这篇文章 现在来讲TCP三次握手 TCP三次握手 什么是TCP TCP是主机对主机层的传输控制协议 x
  • JAVA题目汇总

    什么是Java虚拟机 xff1f 为什么Java被称作是 平台无关的编程语言 xff1f Java虚拟机是一个可以执行Java字节码的虚拟机进程 Java源文件被编译成能被Java虚拟机执行的字节码文件 Java被设计成允许应用程序可以运行