返回顶部
首页 > 资讯 > 精选 >每天10道Java面试题,跟我走,offer有!
  • 465
分享到

每天10道Java面试题,跟我走,offer有!

2023-06-02 20:06:39 465人浏览 安东尼
摘要

1.简述jdk、JRE、JVM?一、JDK JDK(Java Development Kit) 是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirn

1.简述jdk、JRE、JVM
一、JDK JDK(Java Development Kit) 是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java api 包括rt.jar)。 JDK是java开发工具包,基本上每个学java的人都会先在机器 上装一个JDK,那他都包含哪几部分呢?在目录下面有 六个文件夹、一个src类库源码压缩包、和其他几个声明文件。其中,真正在运行java时起作用的 是以下四个文件夹:bin、include、lib、 jre。有这样一个关系,JDK包含JRE,而JRE包 含JVM。 bin:最主要的是编译器(javac.exe) include:java和JVM交互用的头文件 lib:类库 jre:java运行环境 二、JRE JRE(Java Runtime Environment,Java运行环境)包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器) JRE是指java运行环境。光有JVM还不能成class的 执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。 (jre里有运行.class的java.exe) JRE ( Java Runtime Environment ),是运行 Java 程序必不可少的(除非用其他一些编译环境编译成.exe可执行文件……),JRE的 地位就象一台PC机一样,我们写好的Win64应用程序需要操作系统帮 我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。三、JVM JVM(Java Virtual Machine),即java虚拟机, java运行时的环境,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。针对java用户,也就是拥有可运行的.class文件包(jar或者war)的用户。里面主要包含了jvm和java运行时基本类库(rt.jar)。rt.jar可以简单粗暴地理解为:它就是java源码编译成的jar包。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。
2.JDK、JRE、JVM三者的有什么联系和区别?
1.三者联系:JVM不能单独搞定class的执行,解释class的时候JVM需要调用解释所需要的类库lib。在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。JVM+Lib=JRE。总体来说就是,我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。2.三者区别: JDK和JRE区别:在bin文件夹下会发现,JDK有javac.exe而JRE里面没有,javac指令是用来将java文件编译成class文件的,这是开发者需要的,而用户(只需要运行的人)是不需要的。JDK还有jar.exe, javadoc.exe等等用于开发的可执行指令文件。这也证实了一个是开发环境,一个是运行环境。 b.JRE和JVM区别:JVM并不代表就可以执行class了,JVM执行.class还需要JRE下的lib类库的支持,尤其是rt.jar。

3、简述Java程序编译和运行的过程?

Java程序从源文件创建到程序运行要经过两大步骤:1、源文件由编译器编译成字节码(ByteCode); 2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言

第一步(编译):创建完源文件之后,程序先要被JVM中的java编译器进行编译为.class文件。java编译一个类时,如果这个类所依赖的类还没有被编译,编译器会自动的先编译这个所依赖的类,然后引用。如果java编译器在指定的目录下找不到该类所依赖的类的 .class文件或者 .java源文件,就会报"Cant found sysbol"的异常错误。编译后的字节码文件格式主要分为两部分:常量池和方法字节码。常量池记录的是代码出现过的(常量、类名、成员变量等)以及符号引用(类引用、方法引用,成员变量引用等);方法字节码中放的是各个方法的字节码。第二步(运行):java类运行的过程大概分为两个步骤:(1)类的加载 (2)类的执行。需要说明的一点的是:JVM主要在程序第一次运行时主动使用类的时候,才会立即去加载。换言之,JVM并不是在运行时就会把所有使用到的类都加载到内存中,而是用到,不得不加载的时候,才加载进来,而且只加载一次!

4、请说出八种基础数据类型及字节大小?

1. byte                  8位2. short                16位3. int                  32位4. long                 64位5. float                32位6. double               64位7. boolean               1位8. char                 16位

顺便在此给大家推荐一个Java架构方面的交流学习群:698581634,里面会分享一些资深架构师录制的视频资料:有springmybatisNetty源码分析高并发、高性能、分布式微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系,主要针对Java开发人员提升自己,突破瓶颈,相信你来交流学习,会有提升和收获。

5.说说&和&&的区别?

&和&&都是逻辑运算符,都是判断两边同时真则为真,否则为假;但是&&当第一个条件不成之后,后面的条件都不执行了,而&则还是继续执行,直到整个条件语句执行完为止。

6.float型float f=3.4是否正确?

答:不正确;精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4

7.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

short s1 = 1; s1 = s1 + 1; s1+1运算结果是int型,需要强制转换类型; short s1 = 1; s1 += 1;可以正确编译,自动类型提升。

8.int 和 Integer 有什么区别?

Java 提供两种不同的类型:引用类型和原始类型(或内置类型);int是java的原始数据类型,Integer是java为int提供的封装类。 引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。

9.在JAVA中,如何跳出当前的多重嵌套循环?

在最外层循环前加label标识,然后用break:label方法即可跳出多重循环。ok:while(true){    while(true){        break ok;    }}

10.使用嵌套的for循环打印九九乘法表。

public class test {    public static void main(String[] args) {        for (int i = 1; i <= 9; i++) {            for (int j = 1; j <= i; j++) {                System.out.print(j + "*" + i + "=" + i * j + " ");            }            System.out.println();        }    }

--结束END--

本文标题: 每天10道Java面试题,跟我走,offer有!

本文链接: https://lsjlt.com/news/231251.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 每天10道Java面试题,跟我走,offer有!
    1.简述JDK、JRE、JVM?一、JDK JDK(Java Development Kit) 是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirn...
    99+
    2023-06-02
  • java实习--每天打卡十道面试题!
    目录1、Cookie的实现原理?2、TCP断开连接时,通信双方的状态变化?3、GC垃圾回收时,什么情况下会Stop The World?4、堆和栈的区别?5、线程调度的方式?6、Li...
    99+
    2024-04-02
  • 打卡每日10道面试题——JVM篇
    目录1、请你简述一下 Java 内存结构(运行时数据区)① 程序计数器② 虚拟机栈③ 本地方法栈④ 堆⑤ 方法区⑥ 运行时常量池2、请问jvm垃圾回收是否涉及栈内存?3、虚拟机栈内存...
    99+
    2024-04-02
  • 撩课-Python-每天5道面试题-第1
    一. 尽可能详细的描述出一个应用软件, 比如QQ, 在计算机中运行时涉及的软硬件, 以及说明我们编程的侧重点 电脑开机, 从硬盘中(外部存储设备)加载操作系统(系统软件)到内存(内部存储设备), 并运行操作系统 下载QQ软件(网络请求)...
    99+
    2023-01-30
    面试题 撩课 Python
  • 撩课-Python-每天5道面试题-第8
      一. 解释下什么是闭包 有怎样的场景作用 概念 在函数嵌套的前提下 内层函数引用了外层函数的变量(包括参数) 外层函数, 又把 内层函数 当做返回值进行返回 这个内层函数+所引用的外层变量, 称为 "闭包" 标准格式 def...
    99+
    2023-01-30
    面试题 撩课 Python
  • 撩课-Python-每天5道面试题-第9
    一. Python程序中, 文件的处理步骤是什么 打开 open("文件","模式") 读写 2.1 读 f.read(字节数) 字节数默认是文件内容长度 下标会自动后移 f.readline([limit]) 读取一行数据 lim...
    99+
    2023-01-30
    面试题 撩课 Python
  • 每日六道java新手入门面试题,通往自由的道路第二天
    目录1. 你可以讲下你对String类有什么其他的了解吗?2. == 和 equals 的区别3. String s= new String(“nz”)创建了几个字符串对象?4. 你...
    99+
    2024-04-02
  • 带你了解10道java入门面试题
    目录1. 谈谈你对面向对象的了解? (谈谈你对面向对象和面向过程的了解?)2.==与equals的比较(笔试中常见)3.fianl关键字final的作用:4.为什么局部内部类与匿名内...
    99+
    2024-04-02
  • Java常见的10道面试题是什么
    这篇文章主要讲解了“Java常见的10道面试题是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java常见的10道面试题是什么”吧!什么是并发修改异常什么是并发修改异常:当我们在遍历实现...
    99+
    2023-06-02
  • 每日六道java新手入门面试题,通往自由的道路
    目录1. 面试第一步,自我介绍。2. 请你简述下对面向对象的理解,面向对象和面向过程的区别?1.个人理解:2.面向对象3.面向过程3. 那你再讲下面向对象的特征有哪些方面4. 请问:...
    99+
    2024-04-02
  • 每日几道java新手入门面试题,通往自由的道路
    目录1、请你说一下什么是面向对象?2、请你简述一下面向对象的三个基本特征?3、为什么说 Java 是一种半解释半编译的程序设计语言呢?4、请你说一下Java中的8大基本类型是那些?5...
    99+
    2024-04-02
  • 每日六道java新手入门面试题,通往自由的道路--JVM
    目录1. JVM是如何判断对象是否可回收2. 你知道有什么垃圾回收的常见算法吗?3. 你知道有什么垃圾收集器吗?4. 那你知道什么时候才会触发Full GC5. JVM中四种引用你有...
    99+
    2024-04-02
  • 每日六道java新手入门面试题,通往自由的道路--多线程
    目录1.你可以讲下进程与线程的区别?为什么要用多线程?2.什么是上下文切换?3.说说你知道的几种创建线程的方式4.昨天你讲到创建线程后使用start方法去调用线程,为什么ru...
    99+
    2024-04-02
  • 每日六道java新手入门面试题,通往自由的道路--线程池
    目录1. 你知道线程池吗?为什么需要使用线程池?小结:2. 你知道有多少种创建线程池的方式3. 线程池的五种状态你有了解吗?4. 你知道ThreadPoolExecutor的构造方法...
    99+
    2024-04-02
  • 20道常见的Java面试题,你一定有遇到过
    Java是一门广泛应用于企业级开发的编程语言,在企业级应用开发中占据着重要的地位。因此,Java面试题也成为了企业招聘中必备的部分。在面试中,Java面试题会考察应聘者的对Java语言和相关技术的掌握程度以及解决问题的能力。那么,常见的Ja...
    99+
    2023-09-10
    jvm java 算法 面试
  • 49天精通Java,第45天,一个关于 i++ 和 ++i 的面试题打趴了所有人
    目录 一、i++和++i有啥区别? 二、高并发场景下i++会遇到哪些问题? step1:双线程场景 step2:如何解决高并发场...
    99+
    2023-10-07
    高并发 多线程 原力计划
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作