java基础面试题1

二、基础简答题

1.说说八大基本数据类型有哪些

byte:8位(1字节)-2^7  ~  2^7-1

short:16位(2字节)-2^15  ~  2^15 - 1

int:32位(4字节)-2^31  ~  2^31 - 1

long64位(8字节)-2^63  ~  2^63 - 1

flout32位(4字节)

double64位(8字节)

boolean8位(1字节)

2.说说什么是JDK、JRE、JVM

3.说说Java的三个平台

4.说说JDK里面有哪些常用命令

  1. javac
    • 用途:Java编译器,用于将源代码文件(.java)编译成字节码文件(.class)。
  2. java
    • 用途:Java运行时环境入口,用于启动Java应用程序或applet。

5.说说什么是源代码文件、什么是字节码文件

源代码文件: 源代码文件是指以.java为扩展名的文本文件,它包含了程序员使用Java编程语言编写的程序源代码

字节码文件: 字节码文件是Java源代码经过Java编译器(javac)编译后产生的二进制文件,其扩展名为.class。Java虚拟机(JVM)能够理解和执行这种字节码,

6.说说Java语言能够跨平台的原理

Java编写的源代码( .java 文件)首先被编译成字节码(.class 文件)。然后,字节码可以在任何装有JVM的平台上运行。JVM利用字节码提供了一种抽象的、与操作系统无关的计算机程序的运行环境。由于Java虚拟机的存在,Java程序就可以在Windows、Linux、Mac等各种操作系统上运行。

7.循环的4要素是什么

循环的初始化、循环条件、循环体、步长(控制循环的次数/周期)迭代步进

8.方法的4要素是什么

9. break、continue、return的作用分别是什么

break和continue通常出现在循环语句中

break:退出所在循环体的循环

continue:结束所在循环体的一次循环

return:通常是一个函数或者方法结束,并且返回对应类型的结果,

10.访问权限修饰有哪些,权限范围分别是什么

三、面向对象简答题

1.说说你对面向过程和面向对象语言的理解

面向过程是一种以过程为中心的编程思想,它强调的是解决问题的具体步骤或操作流程。在程序设计时,开发者会将问题分解为一系列函数或子程序,然后按照一定的顺序调用这些函数来完成任务。

面向对象则是将现实世界中的实体抽象成类(Class),每个类包含数据(属性/字段)和对数据的操作(方法)。通过实例化类创建对象,通过对象之间的交互来解决问题

面向过程编程比喻: 想象你要组织一场儿童绘画活动。按照面向过程的方式,你需要列出并执行一系列步骤:

  1. 准备画笔、颜料和纸张。
  2. 分发画笔给每个孩子。
  3. 教孩子们画画。
  4. 等待孩子们完成画画。
  5. 收集画作进行展示。

在这个过程中,每一步都是独立的任务你作为“程序”负责按顺序执行这些任务。

面向对象编程比喻: 而如果是面向对象的思维方式,你会把参与者看作是具有特定属性和行为的对象:

  • 孩子类:每个孩子都有自己的画笔(属性)和画画(方法)的能力。
  • 画具管理器类:负责准备和分发画笔、颜料等资源,它可能有提供画笔的方法和收集画作的方法。

在这种情况下,当你需要举办更多类似的活动时,只需创建新的孩子对象,并让画具管理器为他们提供所需的资源。各个对象之间相互协作,各自完成自己的任务,整个系统更加模块化且易于维护和扩展

2.说说面向对象语言三个阶段、三大优点、三大特征

三大优点:

(1)提高代码的复用性

(2)提高代码的可维护性

(3)提高代码的可扩展性

三大特征:

封装、继承、多态

3.说说重载和重写的区别

4.说说抽象类和抽象方法的关系

5.说说抽象类和接口的区别

6.说说你对向上转型和向下转型的理解

向下转型(Downcasting)

  • 理解:当我们需要访问子类特有的属性或方法时,就需要将父类类型的对象显式地转换回其原本的子类类型。这种从父类类型到子类类型的转换称为向下转型,但必须确保实际对象确实是目标子类类型,否则会引发ClassCastException异常。
  • 比喻:回到刚才的例子,如果我们已经有一个披着“动物”外衣的鹦鹉,要揭示它真正的身份并调用鹦鹉特有能力时,我们需要脱下“动物”的外衣,确认并恢复它的“鹦鹉”身份。

向上转型(Upcasting)

  • 理解:当子类对象引用赋值给父类类型的变量时,就发生了向上转型。在向上转型过程中,子类对象可以安全地当作父类对象来使用,因为子类包含了父类的所有属性和方法。
  • 比喻:假设动物王国里有“鸟”这个子类和“动物”这个父类。如果把一只具体的“鹦鹉”当作一个更广泛的“动物”来看待,这就像是让鹦鹉穿上“动物”的外衣,虽然我们不再能明确知道它是哪种具体动物(鹦鹉特有的飞行或学舌能力),但我们可以观察到它作为动物的基本行为(如吃喝、移动)。

7.说说你对final的理解

8.说说你对static的理解

9.说说你对单例模式的理解

Java中,单例模式(Singleton Pattern)是一种创建型设计模式,其目的是确保一个类仅有一个实例,并提供一个全局访问点。这种模式可以保证在多线程环境下共享同一资源时不会出现多个实例导致的数据不一致问题,同时也能够减少系统内存开销。

10.说说你对枚举类型的理解

Java中的枚举类型(Enum)是一种特殊的类,它主要用于定义一组预设的、具有固定数量的常量。这些常量是单例的,并且每个枚举值在内存中只有一份拷贝,确保了类型安全和易于维护。

  • 枚举成员默认是 public static final 的,意味着它们是公开的、静态的且不可变的。
  • 枚举类型不能被继承,但可以实现接口。
  • 枚举类型的构造方法是私有的,以确保不能随意创建新的枚举实例。

1.要求:用冒泡法,在下面的方法中实现对arr的排序即可

2.要求:要二分法,判断是否能在arr中找到 target,返回true 或 false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值