Java面试题——基础篇二

简介: Java面试题——基础篇二

💞 写出this和super的用法。


       This:由于Java中成员变量名与局部变量名重复时,成员变量就会失效而不报错,为避免此种情况,就有了this关键字。在成员变量与局部变量相同时,this.a其实就是调用本类的成员变量a;若没有用this,就是a1=a,只是将方法中局部变量a的值赋给a1。而a2=this.a就是将成员变量a的值赋给a2。(调用成员变量)


       Super:1.调用父类的对象,当子类需要调用父类属性时,可以使用super.变量 调用父类;2.调用父类的构造方法,当子类需要使用父类的构造方法时,可以不用重新定义而使用super直接调用父类构造方法。


       Super调用父类的构造方法一般为:


       Public 类名(父类构造方法所有属性,新加属性1,新加属性2,…){


               Super(按顺序写入父类构造方法中所有变量名用“,”隔开);


               this.新加属性1 = 新加属性1;


               this.新加属性2 = 新加属性2;


               ……


       }


       在继承父类构造方法的同时也可以添加子类本身属性共同构成构造方法。


💞 写出static和final的用法


       final:修饰的成员变量表示常量,修饰的类不能被继承,修饰的方法不能被被重写。


       static:表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态ststic代码块,但是Java语言中没有全局变量的概念。


       注:static final用来修饰成员变量和成员方法,可以简单的理解为“全局常量”。

💞 为什么要重写toString()方法


       若不重写toString,输出的则是:包名.类名.@.hash码值,是地址;若重写之后则输出对象本身的值.



💞 为什么要重写equals()方法


      “equals”表示比较两个对象,若不重写,输出的是对象的地址,若重写之后则输出对象本身的值。

💞 写出重载与重写的区别


       重载:是让类以统一的方式,处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载的时候,方法名要一样,但参数类型和个数不一样,返回值类型可以相同也可以不同。


       重写:是当父类的方法不能满足子类需求的时候,子类需要重写这个方法达到所需的功能。


方法的重载发生在同一个类中,方法的从写发生在不同的类中。


💞 请写出Java基本数据类型及对应的封装类型,并说明封装类的作用


byte----> Byte


short----> Short


int---->Integer


long----> Long


double----> Double


float----> Float


boolean----> Boolean


char----> Characater


封装类的作用:


       (1)Java中封装的实质就是将类的状态信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。


       (2)封装反映了事物的相对独立性,有效避免了外部错误对此对象的影响,并且能够对对象使用者由于大意产生的错误起到预防作用。


       (3)面向对象编程提倡对象之间实现松耦合关系。


       (4)封装的好处在于隐藏类的实现细节,让使用者只能通过程序员规定的方法来访问数据,可以方便地加入存取控制修饰符,来限制不合理操作。


       (5)松耦合就是指尽量减少对象之间的关联性,以降低它们之间的复杂性和依赖性。


💞 写出“==”和equals的区别


 “==”比较的是基本数据类型;比较的是值。


  “equals”比较的是引用数据类型;比较的地址。


💞 Java对内存的划分分为几类


  划分一:运行时数据区域; 程序计数器; Java虚拟机栈; 本地方法栈; 堆; 方法区;运行时常量池; 对象访问。


  划分二:栈区、堆区、静态区、代码区。


💞 堆和栈的区别


  堆:存放的是引用数据类型;


  栈: 存放的是基本数据类型;容量小、速度快、适合存放小型数据。

💞 static关键字是什么意思?Java中是否可以覆盖一个private或者是static的方法?


       如果一个类的变量或者方法前面有static修饰,那么表明这个方法或者变量属于这个类,也就是说可以在不创建对象的情况下直接使用。


       当父类的方法被private修饰时,表明该方法为父类私有,对其他任何类都是不可见的,因此如果子类定了一个与父类一样的方法,这对于子类来说相当于是一个新的私有方法,且如果要进行向上转型,然后去调用该“覆盖方法”,会产生编译错误。


       static方法时编译时静态绑定的,属于类,而覆盖是运行时动态绑定的(动态绑定的多态),因此不能覆盖。

💞 Java支持多继承么


  在java中是单继承的,也就是说一个类只能继承一个父类。


  java中实现多继承有两种方式,一是接口,而是内部类.



相关文章
|
3月前
|
算法 Java
50道java集合面试题
50道 java 集合面试题
|
6月前
|
缓存 Java 关系型数据库
2025 年最新华为 Java 面试题及答案,全方位打造面试宝典
Java面试高频考点与实践指南(150字摘要) 本文系统梳理了Java面试核心考点,包括Java基础(数据类型、面向对象特性、常用类使用)、并发编程(线程机制、锁原理、并发容器)、JVM(内存模型、GC算法、类加载机制)、Spring框架(IoC/AOP、Bean生命周期、事务管理)、数据库(MySQL引擎、事务隔离、索引优化)及分布式(CAP理论、ID生成、Redis缓存)。同时提供华为级实战代码,涵盖Spring Cloud Alibaba微服务、Sentinel限流、Seata分布式事务,以及完整的D
351 1
|
6月前
|
存储 安全 Java
常见 JAVA 集合面试题整理 自用版持续更新
这是一份详尽的Java集合面试题总结,涵盖ArrayList与LinkedList、HashMap与HashTable、HashSet与TreeSet的区别,以及ConcurrentHashMap的实现原理。内容从底层数据结构、性能特点到应用场景逐一剖析,并提供代码示例便于理解。此外,还介绍了如何遍历HashMap和HashTable。无论是初学者还是进阶开发者,都能从中受益。代码资源可从[链接](https://pan.quark.cn/s/14fcf913bae6)获取。
298 3
|
5月前
|
缓存 Java API
Java 面试实操指南与最新技术结合的实战攻略
本指南涵盖Java 17+新特性、Spring Boot 3微服务、响应式编程、容器化部署与数据缓存实操,结合代码案例解析高频面试技术点,助你掌握最新Java技术栈,提升实战能力,轻松应对Java中高级岗位面试。
469 0
|
5月前
|
Java 数据库连接 数据库
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
本文全面总结了Java核心知识点,涵盖基础语法、面向对象、集合框架、并发编程、网络编程及主流框架如Spring生态、MyBatis等,结合JVM原理与性能优化技巧,并通过一个学生信息管理系统的实战案例,帮助你快速掌握Java开发技能,适合Java学习与面试准备。
240 2
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
|
3月前
|
算法 Java
50道java基础面试题
50道java基础面试题
|
6月前
|
存储 安全 Java
2025 最新史上最全 Java 面试题独家整理带详细答案及解析
本文从Java基础、面向对象、多线程与并发等方面详细解析常见面试题及答案,并结合实际应用帮助理解。内容涵盖基本数据类型、自动装箱拆箱、String类区别,面向对象三大特性(封装、继承、多态),线程创建与安全问题解决方法,以及集合框架如ArrayList与LinkedList的对比和HashMap工作原理。适合准备面试或深入学习Java的开发者参考。附代码获取链接:[点此下载](https://pan.quark.cn/s/14fcf913bae6)。
3224 48
|
6月前
|
算法 架构师 Java
Java 开发岗及 java 架构师百度校招历年经典面试题汇总
以下是百度校招Java岗位面试题精选摘要(150字): Java开发岗重点关注集合类、并发和系统设计。HashMap线程安全可通过Collections.synchronizedMap()或ConcurrentHashMap实现,后者采用分段锁提升并发性能。负载均衡算法包括轮询、加权轮询和最少连接数,一致性哈希可均匀分布请求。Redis持久化有RDB(快照恢复快)和AOF(日志更安全)两种方式。架构师岗涉及JMM内存模型、happens-before原则和无锁数据结构(基于CAS)。
173 5
|
6月前
|
Java API 微服务
2025 年 Java 校招面试全攻略:从面试心得看 Java 岗位求职技巧
《2025年Java校招最新技术要点与实操指南》 本文梳理了2025年Java校招的核心技术栈,并提供了可直接运行的代码实例。重点技术包括: Java 17+新特性(Record类、Sealed类等) Spring Boot 3+WebFlux响应式编程 微服务架构与Spring Cloud组件 Docker容器化部署 Redis缓存集成 OpenAI API调用 通过实际代码演示了如何应用这些技术,如Java 17的Record类简化POJO、WebFlux构建响应式API、Docker容器化部署。
279 5