首页 > 编程语言 >Java基础面试题

Java基础面试题

时间:2023-12-11 18:11:57浏览次数:33  
标签:面试题 JAVA 继承 基础 线程 Java 抽象类 方法

一、面试题汇总

1.请简述java特点?

简单、平台无关性、 面向对象、 多线程、 分布性、 高性能(相对于其他解释型语言)、 健壮性、开源

2.什么是JDK,JRE,JVM及它们之间的关系?

  • JDK是JAVA的核心,包括JRE(JAVA 虚拟环境)、编译器、运行工具等
  • JRE是JAVA运行环境,包括JVM、JAVA平台核心类和支持文件
    如果只是运行JAVA程序的话,下载JRE就可以了,如果要开发的话,就要下JDK了。
  • JVM(JAVA虚拟机),是可以运行JAVA代码的假想计算机,主要任务是把JAVA字节码编译成机器指令

JAVA运行顺序:先编写JAVA程序块,然后通过JDK的编译器把JAVA程序编译成字节码生成class文件,然后通过JVM运行
主要指令有 javac a.java,java a

3、0.7E-3的意思是0.7乘以10的-3次方

4、Java中,基本数据类型有哪些?

byte、short、int、long、float、double、char、boolean

5、请写出java中基本数据类型所对应的字节数?

类型============>字节数

boolean========>1

byte===========>1

short==========>2

int============>4

long===========>8

float==========>4

double=========>8

char===========>2

6、java的标识符由什么组成?能不能是中文?

一个标识符可以是字母、数字、下划线、美元符号的任意顺序组合,但不能以一个数字开始。
由于java使用unicode标准字符集,所以可以有中文字符。

7、类和对象的关系?

类定义了一种新的数据类型,可以用新类型来创建该类型的对象。
类(class)是对象(object)的模板,而对象(object)是类的一个实例(instance)。

8、定义一个类需要包含什么元素?

一个类包含属性和方法。特征使用属性表示,行为使用方法表示。

9、如何使用this关键字?

this指向自己的引用,即当前方法所在的对象。
它的一个主要作用是要将自己这个对象当作参数,传送给其他对象中的方法。
或者在类定义时使用this来引用自己的属性或方法。

10、类体中的方法包含哪些分类?

  • 按返回值分:有返回值、无返回值
  • 按参数分:无参数、有参数(单个参数,多个参数)
  • 按范围或功能分:实例方法、类方法、构造方法

11、什么是继承?

  • 继承性是面向对象程序设计语言的基本特征,通过继承可以实现代码的复用。继承而得到的类为子类,被继承的类为父类(超类),父类包括所有直接或间接被继承的类。
  • 子类可继承父类中的变量及方法,也可定义其自身特有的变量及方法。
  • Java中不支持多重继承

12、Java中如何实现继承?

在类的声明中加入extends子句来创建一个类的子类:
class SubClass extends SuperClass{
……
}

13、Java中,有继承关系时,变量隐藏的原则?

变量隐藏原则:子类中变量名与继承自父类的变量名相同时,则继承自父类的变量将被隐藏

14、Java中,有继承关系时,方法重写原则?

方法重写原则:重写后的方法不能比被重写的方法有更严格的访问权限(可以相同)。

15、Java中,super关键字的作用?

  • 调用构造方法:super()必须是子类构造函数第一个执行的语句,如果super()没有被用到,每个超类的默认的或无参数的构造函数将被执行。
  • 调用被隐藏变量及方法:可通过super关键字调用被隐藏的父类中的变量及方法。

16、Java中,是否支持多继承?

不支持多继承,允许多层次继承

17、Java中,请说明final关键字的使用?

  1. final在类之前:表示该类是最终类,表示该类不能再被继承。
  2. final在方法之前:表示该方法是最终方法,该方法不能被任何派生的子类覆盖/重写。
  3. final在变量之前:表示变量的值在初始化之后就不能再改变;相当于定义了一个常量。

18、什么是抽象类?请说出抽象类所具有的特点?

使用abstract修饰的类叫抽象类,
抽象类特点如下:

  • 抽象类必须被继承。
  • 抽象类不能被直接实例化。它只能作为其它类的超类,这一点与最终类(final类)正好相反。

19、什么是抽象方法?抽象方法的特点?

抽象方法:用abstract来修饰的方法
抽象方法特点如下:

  • 抽象方法必须被重写
  • 抽象方法只有声明,不能有实现。
  • 定义了抽象方法的类必须是抽象类。

20、什么是接口?使用接口的好处?

接口(interface)就是方法定义和常量值的集合。
从语法上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有方法的实现。
接口的特点

  • 通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系。
  • 通过接口可以指明多个类需要实现的方法。
  • 通过接口可以了解对象的交互界面,而不需了解对象所对应的类。

21、请写出抽象类、接口的相同点和不同点?

  1. 相同点:
    都必须通过其它类实现才能使用;
  2. 不同点:
    抽象类是类,其中可包含变量及(抽象)方法的定义;
    接口实质并不是类,其中只包含类常量及抽象方法的定义;

22、 final,finally,finalize的区别是什么?

陈述:

  • final是修饰符:表示最终的,可以修饰类、方法、属性;修饰类则类不能被继承,修饰方法则方法不能被重写,修饰属性则属性值不能被修改是常量
  • Finally用于实现异常处理,无论是否有异常都执行的程序块,一般用于释放被占用的资源
  • Finalize是Object类的方法,垃圾回收时调用该方法

23、异常处理的机制有几种?分别是什么?

2种

  • 捕获异常(try catch finally)
  • 声明异常(throws)

24、error和exception有什么区别?

  • Error是严重的系统错误,程序员不能处理
  • Exception是异常,可以由程序员进行捕获处理或声明

25、throw、throws关键字区别?

  • Throw 用于手动抛出一个异常
  • Throws 用于声明方法抛出的异常

26、请简要解释线程同步的概念!

陈述:
两个或多个线程同时访问同一个资源时,该资源在某个时刻只能被一个线程访问,其他线程等待该线程访问结束并释放此资源。

27、Java如何实现线程同步?

陈述:通过方法同步和代码块同步两种方式。代码块方式要注意锁同一个对象

28、请简要叙述多线程的特性?

陈述:

  • 一个应用程序可以包含多个线程, 每个线程执行特定的任务,并可与其他线程并发执行
  • 多线程使系统的空转时间最少,提高CPU利用率
  • 多线程编程环境用方便的模型隐藏CPU在任务间切换的事实

29、IP地址包含网络ID、主机ID两个部分。

30、一个URL包括协议、IP、端口 、资源四个部分。

31、UDP与TCP区别?

  • 基于UPD与基于TCP相比,基于UDP的通信传输速度更快;
  • 但基于UDP的通信不能提供可靠性,即发出的信息接收方不一定收到,发出信息的顺序与接收的顺序不一定相同。

32、请简要说明网络通信基本概念?

  • 协议:一组在网络上发送信息的规则和约定。这些规则控制在网络设备间交换消息的内容、格式、定时、顺序和错误控制。
  • Ip--在Internet上有千百万台主机,为了区分这些主机,人们给每台主机都有分配了一个专门的地址,称为IP地址。
  • DNS--将 IP 地址映射至字符串
  • 端口--有别于设备端口,是用来理解的逻辑概念,用于实现程序间的通信

标签:面试题,JAVA,继承,基础,线程,Java,抽象类,方法
From: https://www.cnblogs.com/asdfghqwe/p/17884303.html

相关文章

  • JAVA:mapper.java和mapper.xml的关系,以及foreach的用法
    简单理解就是,java声明了方法,xml实现了方法,类似与接口与实现接口,他们之间的关系如下:// Mapper.java中List<Ranks>inquireOnlyName(@Param("names")List<String>names,@Param("status")Stringstatus,@Param("startIndex&qu......
  • java高精度定位系统源码,人员定位,物资定位
    高精度定位系统源码,前端框架:Vue  后端框架:Springboot超宽带(UltraWide-Band,UWB)是一种新型的无线通信技术,根据通信委员会的规范,UWB的工作频带为3.1~10.6GHz,系统-10dB带宽与系统中心频率之比大于20%或系统带宽至少为500MHz。UWB信号的发生可通过发射时间极短(如2ns)的窄脉冲(如二次......
  • java内部类
    一、内部类概述示例: 二、成员内部类 三、局部内部类  四、匿名内部类 示例:  五、匿名内部类在开发中的使用 ......
  • java循环结构
    java中的循环结构:while循环inti=1;while(i<=5){System.out.println("第"+i+"次打印");i++;} do-while循环do{System.out.println("打印do");}while(false); for循环适用于执行次数确定的循环。for(intb=1;b<=5;b+=2){System.......
  • 【Java集合】双列集合HashMap的概念、特点及使用
    上篇文章讲了Map接口的概念,通过他提供的接口方法,我们学习了如何使用以及对Map集合的遍历HashMap概念HashMap集合是Map接口的一个实现类,它用于存储键值映射关系,该集合的键和值允许为空,但键不能重复,且集合中的元素是无序的。特点HashMap底层是由哈希表结构组成的,其实就是“数组......
  • java接口
    一、概述 二、接口特点三、接口的成员特点 四、类和接口的关系五、抽象类和接口的关系示例: ......
  • 七,JAVA面向对象
    对象用类来描述对象,将对象的共同特征进行抽取而形成类大象:类属性:鼻子眼睛:变量行为:跑,拔树:函数同一个类中。成员函数可以直接访问其他成员类与类之间的访问:需要创建对象格式:类名对象名=new类名();Carcar=newCar();//对象名.成员名car.run();c......
  • java多态
    一、概述 示例: 二、多态种成员的访问特点 三、多态的优缺点 四、多态种的转型 示例: ......
  • java抽象类
    一、概述二、抽象类的特点  示例: 三、抽象类的成员特点 ......
  • java中的数据库连接池
    常见的连接池的优缺点:HikariCP优点:性能出色,尤其在高并发负载下表现良好内存消耗低,占用系统资源较少具有自动化的连接池维护和统计功能缺点:需要JDK7或以上版本支持配置选项相对较少,有些高级的配置需要通过代码实现Tomcat连接池优点:支持负载均衡和Failover,......