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

Java基础面试题

时间:2024-10-15 20:43:55浏览次数:1  
标签:面试题 Java 常量 方法 基础 字符串 父类 重写

一、Java 八大基本数据类型

byte short char int long double float boolean

项目中一般用在各种变量如传参入参、分页等,一般用包装类

二、面向对象的三大特性

封装:把类的属性私有化并封装到公共方法内,使用方法才能对属性进行获取和修改,隐藏代码实现细节,提高程序安全性

继承:子类继承父类,获得父类的非私有属性和方法,与实现不同,继承是单继承,实现是多实现,继承后可以随意实现父类方法,实现必须实现全部抽象方法

多态:同一方法根据传入的对象不同而实现不同的功能,实现的前提是有继承并重写了父类方法且父类引用指向子类,目的是根据不同子类扩展父类方法

三、JDK与JRE的区别

JRE是Java运行时环境,包含了运行Java程序时需要的虚拟机JVM、Java类库和其他组件,但只能运行不能创建

JDK包含了JRE的全部,同时还拥有编译器和工具,可以创建和编译程序

四、Java能支持多继承和多实现吗

Java支持单继承和多实现

五、构造方法和一般方法有什么区别

构造方法在对象创建的时候进行调用,用于初始化对象,只调用一次。一般方法在对象创建后调用,可以调用多次

六、运行时异常有哪些

NullPointException 空指针异常 IndexOutOfBoundsException 数组下标越界 ClassNotFoundException 类未找到 ClassCastException 类转换异常

NumberFormatException 数字格式异常 SQLException SQL语句异常 ArithmeticException 算数异常0/1

七、抽象类和接口的区别

抽象类中抽象方法不是必须有的,接口中全是抽象方法,抽象类使用extends继承,无需重写全部抽象方法,接口使用implement,需要重写所有抽象方法

抽象类有构造器,但不能调用,主要供子类重写,接口没有构造器。抽象类是用来描述事物本质的,接口是用来规范行为或功能的

八、equals和==

==在比较基础类型时比较值,比较引用类型时比较内存地址,equals底层和等等是一致的,类可以重写equals,按照重写后的规则进行比较

为什么要重写hashCode,因为会出现equals相同但hashCode不同的情况,为保证对象相等,都得重写,同时hashCode比较比equals快,可以先执行hashCode减少equals次数来提高效率

九、String、StringBuilder、StringBuffer

String是不可变的字符串,是常量类,String str = new String("abc") 造了两个对象,abc在常量池中,new String在堆中,jdk8之后由char数组改为byte数组存储,性能提升。StringBuilder和StringBuffer是操作字符串的类,他们在改变字符串内容的过程中不会创建新的对象,在使用toString之后才会创建新的对象,StringBuffer是线程安全的,在方法上带了锁,StringBuilder是线程不安全的,适合单线程

十、字符串常量池

字符串常量池是用来存储字符串常量的,位于JVM的堆内存中,避免为相同内容的字符串常量开辟新的内存用于存储,提高了利用率和效率,创建新的字符串常量时,会优先到常量池中寻找是否存在相同字符串,有则返回引用,无则实例化一个新的常量到常量池并返回引用

十一、Object常用方法

hashCode wait notify/notifyAll(唤醒线程) equals clone

十二、String的方法

join(按照指定分隔符将数组中内容变成字符串)trim(去除空格)substring(截取) concat(将字符串连接到另一个字符串的末尾)spilt(切割)

十三、享元空间

Integer a = new Integer(100); Integer b = new Integer(100); a==b true 因为-128~127是Integer缓存区会提前创建好的

十四、如何创建对象

new 关键字调用构造器、反射使用newInstance()调用无参构造器、clone()实现cloneAble接口,重写clone方法、反序列化,readObject方法

十五、Static Final

被static修饰的变量被当前类的所有对象共享,被修饰的方法只能调用静态变量,两者都位于方法区中,修饰代码块时,随着类的加载而加载,只执行一次

被final修饰的变量是不可改变的,一般是常量,被修饰的方法不能被重写,被修饰的类不能被继承

十六、重写与重载

重写发生在子类与父类当中,重写时一般保证方法名返回值参数一致,子类修饰符不能低于父类

重载发生在一个类中,只需保证方法名一致,参数的顺序、个数、类型必须有所不同

十七、异常

异常分为运行时异常和非运行时异常,运行时异常只有在程序运行时才会报错,常见的有NullPointException、NumberFormatException,IllegalParamException,非运行时异常在编译时就会报错,比如SqlException、FileNotFoundException

标签:面试题,Java,常量,方法,基础,字符串,父类,重写
From: https://www.cnblogs.com/superdebu/p/18468405

相关文章

  • java程池状态
    在Java中,线程池的状态是由java.util.concurrent.ThreadPoolExecutor类管理的。ThreadPoolExecutor是ExecutorService的一个实现,提供了对线程池的详细控制。线程池的状态可以通过getPoolSize、getActiveCount、getTaskCount、getCompletedTaskCount等方法来获取。线程池的......
  • 【JavaWeb】一文读懂Cookie、Session&Token 的区别和联系
    大佬精心打造:JavaWeb进阶学习资料》》点击免费获取【javaWeb】Cookie&Session&SpringSession原理分析简介Cookie、Session、Token这三者是不同发展阶段的产物,都是为了解决无状态的HTTP协议,提升网站的交互体验。但是他们各有优缺点,三者也没有明显的对立关系,反而常常......
  • 【JavaWeb】Spring Boot中@Import多种使用方式
    @Import是一个非常有用的注解,它的长处在于你可以通过配置来控制是否注入该Bean,也可以通过条件来控制注入哪些Bean到Spring容器中。比如我们熟悉的:@EnableAsync 、@EnableCaching、@EnableScheduling等等统一采用的都是借助@Import注解来实现的。  需要注意的是:ImportSele......
  • 学习java第八天
    一.方法重写/方法覆盖/Override为什么要进行方法重写/覆盖?子类不满足父类的逻辑,进行重写方法重写的注意事项:1.方法重写前提是必须要继承2.所继承的方法名必须一致,方法参数也要一致举例说明一个方法的三部分publicvoideat(){}第一部分头部 访问权限修饰符publicp......
  • java解决就简单的亮灯问题
    100个房间每个房间1盏灯   这些灯都是灭的   //123456789   100个人coming      第1个人   来到每个房间前         如果房间编号能够整除1(人的编号)         拉一下灯      第2个人   来到每......
  • Java的引擎效验报错-java.lang.VerifyError
    java包直接修改bytecode,经常会报错java.lang.VerifyError,包含非常多种的检查直接修改引擎dll文件去除效验jvm.dll-X64-V21.0.0.0.text:000000018084438F488D0DDA422100learcx,aVerifyingMetho;"Verifyingmethod%s".text:00000001......
  • 图文深入理解java对象从创建到回收都经历了什么
    1.前言:每个java对象都是有生命周期的,就像一个人的生命一样,从孕育到出生到成长变老最后由归于自然。笔者认为,Java对象的整个生命周期可以分为两个大的阶段:即创建阶段和运行阶段(包含对象的回收和消亡)。本篇将会图文深入介绍java对象的整个生命过程。一般人平时看到java其实......
  • 嵌入式开发学习日记——数据结构基础
    数据结构基础学习内容概述今天我开始学习数据结构,重点理解了它在编程中的重要性。数据结构是为了高效访问数据而设计的一种数据组织和存储方式。它不仅仅关注数据的存储位置,还关注数据元素之间的关系。计算机科学家尼古拉斯·沃斯提出了著名的公式:算法+数据结构=程序......
  • Java中的变量和常量:数据的‘小盒子’和‘铁盒子’有啥不一样?
    什么是变量?在Java里,变量就是一个“可变的小盒子”,你可以随时改变它里面的数据。就像你有一个存钱罐,可以随时往里面放钱、取钱,今天装100块,明天变成200块,完全没问题。变量的定义:当你要定义一个变量时,你要告诉Java两个信息:这个“盒子”是用来装什么类型的数据(也就是数据类......
  • JAVA基础笔记1(变量与运算符+基本数据类型)
    目录一.开发工具1.快捷键常用二.HelloWorld案例:输出:心形三:变量与运算符3.1关键字3.2 标识符(identifier)3.3变量3.30变量的概念:3.31变量类型3.32引用数据类型:   类:class   数组:array   接口:interface   枚举:enum   注解:annotation   ......