首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏宇宙之_一粟

    Java高频面试题----继承

    Java中所有类的父类是什么? 4. 为什么Java不支持多重继承? 5. 在面向对象的概念中,“组成”是什么意思? 答:组成也称为has-a"关系,在组合中,"has-a"关系意味着两个类。 为什么Java中没有指针? 8. 为什么Java中没有指针的概念,然而我们还是会得到空指针异常NullPointerException? 9. super关键字的作用? 答:不可以,Java不允许在构造函数中一起使用super()和this()方法。 根据Java规范,super()或this()方法必须是构造函数中的第一条语句。 11. Java中的对象克隆是什么意思? 答:Object.clone()方法用来在Java中创建一个对象的拷贝。它的行为就像一个复制构造函数。

    59121发布于 2020-10-26
  • 来自专栏刷题笔记

    Java高频面试题笔记

    本文链接:https://blog.csdn.net/shiliang97/article/details/103171069 额,java学校的课刚结课,发现我啥也不会,正好,学习一下java的面试常考题

    45210发布于 2019-12-03
  • 来自专栏宇宙之_一粟

    Java高频面试题 -- 静态

    由于它不是在Java中按对象定义的,因此可以节省内存。 2. 为什么用Java创建静态变量不是一个好习惯? 答:静态变量是类的所有对象共有的。 如果创建了新对象,则无需测试静态变量的值。 Java中静态方法的目的? 答:Java提供了静态方法的功能来在类级别创建行为。 静态方法是类的所有对象所共有的。 我们不需要创建类的任何对象来调用静态方法。 为什么在Java中将main方法标记为静态方法? 答:Java中的main方法被标记为静态,因此JVM可以调用它来启动程序。 如果main方法不是静态的,那么Java进程将调用哪个构造函数? 因此,在Java中将主要方法标记为静态是众所周知的约定。 但是,如果我们去除static,那将会有歧义。 Java进程可能不知道要调用哪个类的方法来启动程序。 答:不,从Java 7开始,您需要main()方法来执行程序。 在Java的早期版本中,有一种解决方法可用于使用静态块执行。 但是现在这个差距已经缩小。 7.

    71821发布于 2020-10-26
  • 来自专栏宇宙之_一粟

    Java高频面试题——基础篇

    Java高频基础面试题 1. JDK和JRE有什么区别? JDK:Java Development Kit的简称,Java开发工具包,它提供了Java程序的开发环境和运行环境,同时包括编译Java程序的编译器和调试器。 JRE:Java Runtime Environment的简称,Java运行环境,JRE提供Java程序运行所需的环境(运行库和JVM,不包括编译器),注:JDK工具包括JRE。 2. 什么是Java Virtual Machine(JVM)? Java Virtual Machine(JVM)是一个抽象的计算机,能够执行Java字节码。能针对不同的软件和硬件提供不同的JVM。 Java 编译器将 Java 程序编译成虚拟机能够识别的二进制代码,这种代码称为字节码(Bytecode)。

    43931发布于 2020-10-26
  • 来自专栏宇宙之_一粟

    Java高频面试题----面向对象篇

    Java中,定义为对象中的实例变量的对象引用的默认值是什么? Java中所有的实例变量的对象引用默认为null。 4. 为什么需要构造器? 默认情况下,Java为每个对象提供默认的构造函数。如果我们重载了一个构造函数,那么必须实现这个默认的构造函数。 5. 为什么Java类中需要默认构造器? 答:如果没有其他构造器定义的话,Java类默认构造器都是自动创建的无参构造器。 Java规范声明,如果类中没有重载的构造函数,它将提供一个默认的构造函数。 Java中的构造器返回的值是什么? 答:当我们用Java调用构造函数时,它返回由它创建的对象。这就是我们用Java创建新对象的方式。 7. 构造函数可以继承吗? 为什么Java类中需要默认构造器? 如果没有定义其他构造函数,则默认构造函数是Java会自动生成的无参构造函数。 根据Java规范,如果类中没有重载的构造函数,它将提供一个默认的构造函数。

    59041发布于 2020-10-26
  • 来自专栏波波烤鸭

    Java面向对象高频面试题

      金三银四正是跳槽涨薪的好时节,波哥给大家整理了很多面试高频的问题,助力大家找到更好的工作哦,点点关注,感谢支持。 面向对象面试题 1.谈谈你对面向对象思想的理解? java中不支持多继承,一个类最多只能有一个父类。而在java中多继承是通过接口实现的。 (-IntegerCache.low)]; // 否则创建一个新的Integer对象 return new Integer(i); }   提醒:越是貌似简单的面试题 name.equals("")){ } } } 9. switch可以使用的数据类型 JDK5之前:byte,short,int,char JDK5之后:Java中引入了枚举类型 属性只能是常量 * 方法只能是抽象方法 * JDK1.8之后可以有 default和static方法 */ interface B{ public final int a = 9;

    57830编辑于 2022-04-13
  • 来自专栏Java经验之谈

    Java高频面试题- 每日三连问?【Day9】 — 消息队列篇二

      在一般网络环境下,都存在一定的网络延迟、网络抖动,网络问题导致消息重复发送的情况是难以避免的,毕竟网络环境无法预知。

    63630发布于 2021-08-16
  • 来自专栏专注于java领域技术分析

    阿里P9整理Java 高频面试题聊一聊 JUC 下的 LinkedBlockingQueue

    本文聊一下 JUC 下的 LinkedBlockingQueue 队列,先说说 LinkedBlockingQueue 队列的特点,然后再从源码的角度聊一聊 LinkedBlockingQueue 的主要实现~

    56720发布于 2020-07-31
  • 来自专栏呱牛笔记

    腾讯 Java 高频面试题详解总结(转)

    SingletonDemo3 instance=new SingletonDemo3();  5     }  6        7     private SingletonDemo3(){}  8        9      这种方式的特点是实现简单,而且效率较高,但是它无法解决循环引用的问题,因此在Java中并没有采用这种方式(Python采用的是引用计数法)。 为了解决这个问题,在Java中采取了可达性分析法。 在《Java编程思想》中对于final关键字有这样的介绍: 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。 参考资料:  《Java编程思想》 ▲ 14 Java 线程和操作系统的线程是怎么对应的?Java线程是怎样进行调度的? 它是java中唯一不需要new 就可以产生对象的途径。以String s="abce";形式赋值在java中叫直接量,它是在常量池中而不是象new一样放在压缩堆中。

    70520编辑于 2023-05-02
  • 来自专栏项目文章

    15道大厂Java高频面试题(一)

    1、JVM、JRE、JDK之间的关系 JVM(Java Virtual Machine) 定义:JVM 是 Java 虚拟机,它是 Java 程序能够在不同平台上运行的基础。 类库:包含了 Java 程序运行所需要的类和 API,如 java.lang、java.util 等。 其他支持文件:如配置文件、支持 Java 程序运行的其他资源等。 JDK(Java Development Kit) 定义:JDK 是 Java 开发工具包,是开发 Java 应用程序所必需的工具集。 组成: JRE:包括了 JVM 和 Java 类库,提供 Java 程序的运行环境。 开发工具:包括 Java 编译器、调试器、打包工具等,用于开发、测试和部署 Java 应用程序。 9、⾯向对象和⾯向过程的区别 面向对象和面向过程是两种不同的编程范式。它们的主要区别如下: 基本概念 面向过程:强调通过函数或过程来操作数据,主要关注过程、步骤和函数。

    75610编辑于 2024-11-17
  • 来自专栏从流域到海域

    Java面试高频面试题汇总 IO专题

    Java中的I/O模型 在JDK1.4之前,基于Java的所有socket都是使用阻塞I/O(BIO),JDK1.4提供了非阻塞I/O(NIO)功能,虽然称为NIO但实际上底层模型是I/O多路复用, 在Java1.4中引入了NIO框架,对应java.nio包,提供了Channel,Selector,Buffer等抽象。它支持面向缓冲,基于通道的I/O操作方法。 AIO(Asynchronous I/O):AIO也就是NIO 2,与Java1.7中引入,它是异步非阻塞的IO模型。

    65030发布于 2020-09-18
  • 来自专栏宇宙之_一粟

    Java高频面试题——基础篇(继续更新)

    Java高频面试题——基础篇 3. JVM会分配哪些不同类型的内存区域? 在Java中,JVM将内存分配给不同的进程,方法和对象。 程序计数寄存器:该存储区包含当前正在执行的Java虚拟机指令的地址。 本地方法栈:该区域保留用于应用程序中使用的所有本机方法。 4. 什么是JIT? 即时编译器(Just In Time,也称为JIT编译器)用于提高Java的性能。 默认情况下启用。 它是在执行时(而不是更早)完成的。 Java通过将JIT编译器包含在JVM中来普及其使用。 Java平台与其他平台有何不同? Java是与平台无关的语言。 Java编译器将Java代码转换为可由JVM解释的字节代码。 JVM为世界上几乎所有流行的平台编写。 Java字节码可以相同的方式在任何受支持的平台上运行。 与其他语言一样,需要为特定平台编译的库才能运行。

    48841发布于 2020-10-26
  • 来自专栏宇宙之_一粟

    Java高频面试题----static关键字

    由于它不是在Java中按对象定义的,因此可以节省内存。 2. 为什么在Java中创建静态变量不是一个好习惯? 答:静态变量是类的所有对象共有的。 如果创建了新对象,则无需测试静态变量的值。 讲一下Java静态方法的作用? 答:Java提供了静态方法的功能,可以在类级别创建行为。 静态方法是类的所有对象所共有的。 我们不需要创建类的任何对象来调用静态方法。 为什么在Java中将main方法标记为静态方法? 答:Java中的main方法被标记为静态,因此JVM可以调用它来启动程序。 如果main方法不是静态的,那么Java进程将调用哪个构造函数? 因此,在Java中将主要方法标记为静态static是众所周知的约定。 但是,如果我们去除static,那将会有歧义。 Java进程可能不知道要调用哪个类的方法来启动程序。 因此,此约定有助于Java进程识别类中作为参数传递给Java进程的程序的启动代码。 5. 在什么情况下我们使用静态块? 有时,有一个具有静态成员变量的类。 这些变量需要一些复杂的初始化。

    86441发布于 2020-10-26
  • 来自专栏项目文章

    15道大厂Java高频面试题(二)

    Java中,这意味着将对象的状态转换成字节流,以便可以将其持久化到磁盘或通过网络发送到其他JVM实例。要使Java对象可序列化,该对象的类需要实现java.io.Serializable接口。 中的包 Java中的包 在Java中,包(Package)是一种将类和接口组织在一起的方式,以便于管理大型项目中的代码。 从Java 9开始,字符串的存储机制有所变化,引入了一种新的压缩机制,称为String Deduplication。这种机制旨在减少相同字符串实例的数量,节省内存。 9、String为什么是不可变的? 保存字符串的数组被 fina1 修饰且为私有的,并且 string 类没有提供/暴露修改这个字符串的方法。 中的一个非常重要的方法,它在java.lang.Object类中定义,并被许多Java类继承。

    78920编辑于 2024-11-26
  • 来自专栏从流域到海域

    Java面试高频面试题汇总 锁专题

    Java的ReentrantLock和synchronized都是可重入锁。 公平锁和非公平锁 公平锁(Fair) 加锁前检查是否有排队等待的线程,优先排队等待的线程,先到先得。 Java中的synchronized是非公平锁,ReentrantLock默认的lock方法采用的是非公平锁。 Java读写锁有对应的接口java.concurrent.locks.ReadWriteLock,也有具体的实现ReentrantReadWriteLock。 共享锁和独占锁 java并发包提供的加锁模式分为共享锁和独占锁。 独占锁 独占锁模式下,每次只能有一个线程能持有锁,ReentrantLock就是以独占方式实现的互斥锁。 java的并发包提供了ReadWriteLock,读-写锁。它允许一个资源可以被多个读操作访问。

    1.2K30发布于 2020-09-18
  • 来自专栏宇宙之_一粟

    2020Java高频面试题--Java知识点汇总

    Java高频面试题 1. JDK和JRE有什么区别? JDK:Java Development Kit的简称,Java开发工具包,它提供了Java程序的开发环境和运行环境,同时包括编译Java程序的编译器和调试器。 Java平台与其他平台有何不同? Java是与平台无关的语言。 Java编译器将Java代码转换为可由JVM解释的字节代码。 JVM为世界上几乎所有流行的平台编写。 Java编译器javac编译Java代码,而JVM java运行该代码。 javac HelloWorld.java java HelloWorld 7. Java中的类加载器是怎么工作的? 你认为用于main方法的“ main”是Java中的关键字吗? 不,main只是方法的名称。 一个类文件中可以有多个具有相同名称main的方法。 它不是Java中的关键字。 9.

    75151发布于 2020-10-26
  • 来自专栏MySQL入坑记

    JAVA高频216道面试题+答案!!面试必备

      写在前面,这篇内容是从一位江湖高手那里得来的,可以说是我看到过的最全的一篇JAVA语言面试题+答案了!!哈哥花了一通宵整理了出来,包括每题的答案和有深度的扩展文章推荐。 Java 中操作字符串都有哪些类?它们之间有什么区别? 8. String str="i" 与 String str=new String("i")一样吗? 9. 如何将字符串反转? 10. 原因有三个:第一,我想为每一个为梦想时刻准备着的“有心人”,尽一份自己的力量,提供一份高度精华的 Java 面试清单;第二,目前市面上的面试题不是答案不准确就是内容覆盖面太窄,所以提供一份经典而又准确的面试题是非常有必要的 或许这份面试题还不足以囊括所有 Java 问题,但有了它,我相信你一定不会“败”的很惨,因为有了它,足以应对目前市面上绝大部分的 Java 面试了,因为这篇文章不论是从深度还是广度上来讲,都已经囊括了非常多的知识点了 String str="i"的方式,Java 虚拟机会将其分配到常量池中;而 String str=new String(“i”) 则会被分到堆内存中。 9. 如何将字符串反转?

    2.5K42发布于 2021-10-13
  • 来自专栏捡田螺的小男孩

    高频面试题Java程序占用 CPU 过高怎么排查

    这个问题可以说是 Java 面试的高频面试题了,有很多面试官都喜欢问这个问题,问题可能是下面这样的。 线上一台服务器 CPU 使用率100% 了,如果你碰到这样的情况,如何排查并找到问题原因? 排查步骤 第一步,使用 top 找到占用 CPU 最高的 Java 进程 在真实环境中,首先要确认是不是 Java 程序造成的,如果有系统监控工具,可能会直接在预警信息里告诉你是有哪个进程造成的,但也有可能不知道 如果是在面试场景中,这个问题可能不需要确认,毕竟 Java 面试,面试官可能直接就告诉你是 Java 占用的 CPU 过高。 使用 top命令发现占用 CPU 99.7% 的线程是 Java 进程,进程 PID 为 13731。 ,我们用jstack命令将第一步找到的 Java 进程的线程栈保存下来。

    1.7K30发布于 2021-01-27
  • 来自专栏Java架构师必看

    Java 基础高频面试题(2021年最新版)

    因此,我花了几天时间整理了一些时下高频Java 基础题目,并反复斟酌,给出符合当前版本的解析。 基础 Java 基础高频面试题(2021年最新版) 一道有意思的“初始化”面试题 集合(HashMap) Java 集合框架高频面试题(2021年最新版) 面试阿里,HashMap 这一篇就够了 虚拟机面试题精选(二) Java虚拟机面试题精选(一) 分布式 面试必问的分布式锁,你懂了吗? Java 9 支持私有方法、私有静态方法。 抽象类中的抽象方法类型可以是任意修饰符,Java 8 之前接口中的方法只能是 public 类型,Java 9 支持 private 类型。 finalize()方法仅作为了解即可,在 Java 9 中该方法已经被标记为废弃,并添加新的 java.lang.ref.Cleaner,提供了更灵活和有效的方法来释放资源。

    88420发布于 2021-06-17
  • 来自专栏Swift社区

    Java 8 中 20 个高频面试题及答案

    这些新特性不仅增强了 Java 的开发效率和功能性,‌也为面试中的 Java 8 相关问题提供了丰富的素材。‌ 在本教程中,我将分享 20 个顶级的 Java 8 编码和编程面试题及答案。 这些问题的答案涵盖了 Java 8 中的一些核心特性和改进,‌对于理解 Java 8 的新特性和如何使用它们非常有帮助 20 道高频题 问题 1:给定一个整数列表,使用 Stream 函数找出列表中所有的偶数 , 15); long count = myList.stream().count(); System.out.println(count); } } 输出: 9 findFirst() .get(); System.out.println(result); } } 输出: a 问题 9: .collect(Collectors.toList()); System.out.println(squares); } } 输出: [1, 4, 9,

    71400编辑于 2024-07-29
领券