校招会遇到的JAVA基础面试题(含回答技巧)

前言

这一个月偷偷去了几家公司与两三场模拟面、电话面,我会在下面写一些经常被面的题目,有些回答是根据自己的理解回答的,可能会有一些不全面,欢迎大家在评论区里补充(记住最重要的一点:刷面试题的时候千万不要死记硬背,要理解的去背,不然面试官随便换一种方式来问你就有可能答不上来,又想到了第一次面试的时候当时很多内容都有死记硬背的影子,结果可想而知,想到这里心情就…哈哈哈)
在这里插入图片描述

1.什么是左外连接与右外连接与全外连接?

左外连接是把左表的全部数据与相关联的右表部分数据返回过去,
右外连接是把右表的全部数据与相关联的左表部分数据返回过去,全外连接是把两个表的全部数据返回过去

2.在平常经常使用哪一种连接方式?

我在平常经常使用的是内连接,因为内连接是返回连接表中符合连接条件和查询条件的数据

3.JAVA的基础数据类型

Java的数据类型可以划分为可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。

4.JAVA中有哪些集合实现类?

集合类是放在java.util.*中
(1) Set
集(set)是最简单的一种集合,它的对象不按特定方式排序,只是简单的把对象加入集合中,就像往口袋里放东西。对集中成员的访问和操作是通过集中对象的引用进行的,所以集中不能有重复对象,集合里面一定是不能有重复的元素的。
(2)List
列表(List)的主要特征是其对象以线性方式存储,没有特定顺序,只有一个开头和一个结尾,当然它每一个值都有一个索引的下标,可以根据下标查看里面的值与完全没有顺序的Set集合不同。
(3)Map
映射(Map),它里面的东西是键-值对(key-value)来进行存储与出现的,键 - 值对也是我们常用的数据结构哦。
(4)Queue
在jdk5.0以前,通常的实现方式是使用java.util.List集合来模仿Queue。Queue的概念通过把对象添加(称为enqueuing的操作)到List的尾部(即Queue的后部)并通过从List的头部(即Queue的前部)提取对象而从 List中移除(称为dequeuing的操作)来模拟。只需要执行先进先出的动作时可以直接使用Queue接口就可以了。(这个集合当时没回答上来,后来特意上网查询了一下)

5.接口与抽象类的区别?

声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,不可以有程序体。接口只可以定义static final成员变量。抽象类只能单继承 接口却可以多实现

6.谈谈你对继承的理解

继承是一种突现类重复使用的手段(子类通过extends关键字来继承父类,用来完成各种业务的需求)。子类不可以调用父类中private的属性和方法,必须进行方法重写(overreide)可以添加独有成员,JAVA属于单继承机制。
面向对象的详细讲解

7.谈谈你对IOC,AOP,ORM的理解?

IOC被称为控制反转,也叫依赖注入,是面向对象编程中的一种设计理念,用来降低代码与代码之间的耦合度。
AOP被称为面向切面编程,面向切面编程分为6个点
1、切面(Aspect):一个横切关注点。
2、连接点(Join point):程序中的某个具体的执行点,例如增删改。
3、切入点(Pointcut):对连接点的特征进行描述
4、增强处理(Advice):切面在某个特定连接点上执行的代码逻辑,
5、AOP代理:由AOP创建的对象,实现执行增强处理方法等功能。
6、织入:将增强处理连接到应用程序中的类型或对象上的过程。
AOP一般被适用于具有横切逻辑的场合。
ORM被称为对象/关系映射
O代表的是程序中的实体类
R是数据库里面的某一个表
M是程序与数据库之间建立起相互对应关系,并提供一种机制,通过JavaBean对象去操作数据库表中的数据
在实际开发中,我们使用面向对象的技术操作数据而当存储数据时,使用的是关系型数据库,这时使用ORM在对象模型(程序)和关系型数据库中的表建立一座桥梁,使用API直接操作JavaBean 对象就可以实现对数据的存储、查询、更改、删除等操作。
Spring与Mybatis详细讲解

8.GC是什么? 为什么要有GC?

GC是垃圾收集的意思(Gabage Collection),内存处理是我们最容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。

总结

我会建立一个专栏,以后在里面会经常更新一些面试题(算法,.Net,前端,ps,Ai,Python,MySQL可能都会更一些),今天也是在b站看到了一个喜欢好几年的大佬好像要离开这个圈子了(看完他的最后一个视频,眼泪差点流了出来,但我相信只要我够努力终会见到那位大佬的),祝大家都能拿到一份满意的offer。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忆梦九洲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值