首页 > 编程语言 >Java实习常见面试题(一)

Java实习常见面试题(一)

时间:2024-12-13 16:29:43浏览次数:5  
标签:面试题 Java 构造方法 对象 子类 实习 父类 方法

1.==与equals的区别
==在比较基本数据类型时比较的是值,在比较引用类型时比较的是内存地址
equals在重写之后比较的是值,在不重写时比较的是地址
equals不能比较基本数据类型

2.String Stringbuffer StringBuilder区别
String是final修饰的常量 对象内容不可变
StringBufffer对方法加了同步锁所以线程安全,但性能不高
StringBuilder线程不安全但是性能高
操作少量数据用String
多线程下操作大量数据用Stringbuffer
单线程下操作大量数据用Stringbuilder

3.ArraryList与LinkedList的区别
ArraryList的底层代码是动态数组,LinkedList的底层是链表,所以ArrayList适合做查询操作,LinkedList适合做增删操作,并且只能使用迭代器遍历

4.什么是Spring
Spring是一个用于简化企业操作的中间层框架,主要是管理项目中javaBean的生命周期,简化了代码编写,降低了代码的耦合度,提高了代码的复用性,主要有两大核心:IOC(Inversion of Control)和Aop(Aspect Orient Programming)

4.1IOC
把创建对象的权力交给容器,当调用者创建对象的实例时,不是由调用者的代码实现,而是由spring容器创建实例,容器会控制程序间的关系。控制权由代码转移到了容器,这就是控制反转,他是spring框架的核心之一。

4.2DI
IoC和DI其实是同一概念的不同角度描述。IoC强调的是将对象实例的创建控制权由spring容器来统一管理,需要的时候从容器中取出,而不是由调用者自身去创建,从而达到降低代码耦合性与硬代码的目的。依赖注入强调的是当调用者需要使用对象实例时,spring容器为调用者提供对象实例这个过程。本质上应该是属于同一技术实现方式,但是在不同的情况,叫法不同。就好比李云鹏在寝室的时候,室友叫他鹏弟,但是出到外面上课,别人叫他李云鹏一样。


4.3AOP
AOP 采取横向抽取机制(动态代理),取代了传统纵向继承机制的重复性代码,其应用主要体现在事务处理、日志管理、权限控制、异常处理等方面。简单说就是在不修改源代码的基础上为系统中的业务组件添加某种通用功能。

5.面向对象三大特性
封装
将对象的属性隐藏起来,仅对外公开接口,将数据与操作数据的源代码进行结合,形成一个类似于类的整体,属性和方法都是类的成员。外界可通过预留的getset方法来访问成员属性。
继承
从已有类中派生出子类,已有的类成为父类,子类拥有父类的所有属性和方法。子类可以拥有自己本身的特有方法以及特有属性。
多态
多态是同一个行为具有多个不同表现形式或形态的能力,就是同一个接口,使用不同的实例而执行不同操作。多态体现为父类引用指向子类引用
 
6.反射的基本概念

1.在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java的反射机制。反射是框架的核心灵魂,动态代理设计模式采用了反射机制,还有Spring 等框架也大量使用到了反射机制。
优点是运行时动态获取类的全部信息,缺点是破坏了类的封装性,泛型的约束性。

7.为什么说 Java 语言“编译与解释并存”
高级编程语言按照程序的执行方式分为编译型和解释型两种。简单来说,编译型语言是指编译器针对特定的操作系统将源代码一次性翻译成可被该平台执行的机器码;解释型语言是指解释器对源程序逐行解释成特定平台的机器码并立即执行。比如,你想阅读一本英文名著,你可以找一个英文翻译人员帮助你阅读,有两种选择方式,你可以先等翻译人员将全本的英文名著(也就是源码)都翻译成汉语,再去阅读,也可以让翻译人员翻译一段,你在旁边阅读一段,慢慢把书读完。
Java 语言既具有编译型语言的特征,也具有解释型语言的特征,因为 Java 程序要经过先编译,后解释两个步骤,由 Java 编写的程序需要先经过编译步骤,生成字节码( \*.class 文件),这种字节码必须由Java 解释器来解释执行。因此,我们可以认为 Java 语言编译与解释并存。

8.Java 和 C++的区别
都是面向对象的语言,都支持封装、继承和多态
Java 不提供指针来直接访问内存,程序内存更加安全
Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。
Java 有自动内存管理垃圾回收机制(GC),不需要程序员手动释放无用内存。
C ++同时支持方法重载和操作符重载,但是 Java 只支持方法重载(操作符重载增加了复杂性,这
与 Java 最初的设计思想不符)。

9.continue、break、和 return 的区别是什么
continue指跳出当前的这一次循环,继续下一次循环。
break指跳出整个循环体,继续执行循环下面的语句。
return用于跳出所在方法,结束该方法的运行。

10.构造方法
构造方法就是一种特殊的方法,每当一个类被实例化的时候,就会调用构造方法,而且只有构造方法被调用的时候,对象才会被分配内存空间。也就是说,每次我们使用new关键字的时候,构造方法至少会被调用一次。构造方法的名字必须和类名一致,构造方法没有返回值,返回的是一个类
构造方法不能是抽象的,静态的,最终的,同步的也就是说,他不能通过abstract,static,final,synchronized关键字修饰。

11.重载和重写的区别
重载就是同样的一个方法能够根据输入数据的不同,做出不同的处理。
重写就是当子类继承自父类的相同方法,输入数据一样,但要做出有别于父类的响应时,你就要覆盖父类方法。
重载
发生在同一个类中(或者父类和子类之间),方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同。
重写
重写发生在运行期,是子类对父类的允许访问的方法的实现过程进行重新编写。返回值类型、方法名、参数列表必须相同,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类。如果父类方法访问修饰符为 private/final/static 则子类就不能重写该方法,但是被 static 修饰的方法能够被再次声明。构造方法无法被重写。

12.深拷贝与浅拷贝
浅拷贝:对基本数据类型进行值传递,对引用数据类型进行引用传递般的拷贝,浅拷贝复制对象的第一层,引用类型字段共享同一对象。

深拷贝:对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容,递归复制对象及其所有引用,确保新对象与原对象完全独立。

希望我的文章同样能帮助到你。如有错误请指出,谢谢!
 

标签:面试题,Java,构造方法,对象,子类,实习,父类,方法
From: https://blog.csdn.net/2201_75657744/article/details/144453691

相关文章

  • 基于java ssm鲜活农产品销售商城系统(源码+文档+运行视频+讲解视频)
     文章目录系列文章目录目的前言一、详细视频演示二、项目部分实现截图三、技术栈后端框架SSM前端框架vueSSM框架详细介绍系统测试四、代码参考源码获取目的摘要: 基于JavaSSM的鲜活农产品销售商城系统连接了农民和消费者,促进了鲜活农产品的销售。SSM框架实现了高......
  • 基于java ssm网上书店销售管理系统二手书籍回收出售商城(源码+文档+运行视频+讲解视频)
     文章目录系列文章目录目的前言一、详细视频演示二、项目部分实现截图三、技术栈后端框架SSM前端框架vueSSM框架详细介绍系统测试四、代码参考源码获取目的摘要: 基于JavaSSM的网上书店销售管理系统二手书籍回收出售商城促进了二手书籍的循环利用。SSM框架实现了......
  • 【计算机毕业设计选题推荐】基于springboot的考务管理系统的设计与实现 【附源码+数据
    ✍✍计算机毕设编程指导师**⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java、Python、小程序、大数据实战项目集⚡⚡文末获取......
  • 2025年Java面经(附答案)
    一、Java基础部分面试题1.Java面向对象的三个特征封装:对象只需要选择性的对外公开一些属性和行为。继承:子对象可以继承父对象的属性和行为,并且可以在其之上进行修改以适合更特殊的场景需求。多态:允许不同类的对象对同一消息做出响应。2.Java中基本的数据类型有哪些以......
  • node.js毕设基于Java的航班订票管理系统 论文+程序
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于航班订票管理系统的研究,现有研究主要以大型综合票务系统或特定功能模块的优化为主,专门针对基于Java构建具有多种功能(如用户、机票信息、订单信息、......
  • 全网最强Java面试题(全网最全、最细、附答案)
    1、悲观锁、乐观锁和分布式锁的实现和细节悲观锁:认为线程安全问题一定会发生,所以在操作数据之前先获取锁,保证线程串行执行,例如synchronized,lock细节:悲观锁适合插入数据锁的粒度要尽量小,只锁住需要串行执行的代码配合事务使用时,要先提交事务再释放锁乐观锁:认为线程安......
  • 【计算机毕业设计选题推荐】基于springboot的旧物回收管理系统的设计与实现 【附源码+
    ✍✍计算机毕设编程指导师**⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java、Python、小程序、大数据实战项目集⚡⚡文末获取......
  • 火爆Github的1000道Java面试题
    开篇小叙现在Java面试可以说是老生常谈的一个问题了,确实也是这么回事。面试题、面试宝典、面试手册......各种Java面试题一搜一大把,根本看不完,也看不过来,而且每份面试资料也都觉得Nice,然后就开启了收藏之路。Java开发者应该是不会很容易满足的,现在拿着20K的工作,下一步就想着......
  • 2024最新最全面Java复习路线(含P5-P8),已收录 GitHub
    小编整理出一篇Java进阶架构师之路的核心知识,同时也是面试时面试官必问的知识点,篇章也是包括了很多知识点,其中包括了有基础知识、Java集合、JVM、多线程并发、spring原理、微服务、Netty与RPC、Kafka、日记、设计模式、Java算法、数据库、Zookeeper、分布式缓存、数据......
  • jmeter压测报Java reset的解决办法
    解决办法:1、在注册表中按照下面的数据项去设置。win+r打开dos窗口,输入regedit,可打开注册表。一般不建议新手直接去修改注册表。2、新建txt,保存以下脚本修改后缀为reg文件,编辑值如下,保存后双击执行;重启电脑,再次压测即不会出现报错。解析中值为10进制,下方脚本已全转换为16进制。W......