Java开发面试题(简单)

1. == 和 equals 的区别是什么?

==应用于基本数据类型,如果==应用与引用数据类型那么就是在比较两个引用是否相同

equals是Object类里的一个方法 绝大多数的类会重写它。 各自类有各自类的相等的方案。

2. 用最有效率的方法算出2的32次方等于几?

32 1<<5 小心数字溢出

3. 循环利用标签跳出指定的层级的循环

给外层循环添加一个标签,语法是  标签名: 内层循环break后面跟标签名。

4. new的对象存放在哪,变量存放在哪?

5. 什么是面向对象?你怎么理解面向对象?展开面向对象特点分别解释:

封装、继承,代码的重用性、多态

(1)面向对象是基于面向过程的一种编程思想

(2)基于可见性的封装,面向不同的场景,我们的成员和方法、类的可见性是不一样的

(3)继承与实现 extends

提升了代码的扩展性。提升了代码的重用性

(4)多态

一个对象有多重状态

一个方法有多重状态,对象的多种状态就是各种转型,方法的多种状态就是重载

6. 方法的值传递和引用传递的区别?

基本数据类型还是引用数据类型,作为方法的参数的时候的不同。

String属于引用数据类型,属于引用传递,内部是基于char[]数组

7.什么是重载和重写?(Overload和Override的区别?)

重载:方法的多态

重写:父子类关系,重写父类的方法

8. 简述super和this关键字

super和this必须是第一行

super指代的是父类的对象,是父类的构造器

this指代的是当前类的对象,是当前类的构造器

9. String、StringBuffer、StringBuilder的区别

StringBuffer:线程安全。它几乎所有的常用方法都被synchronized修饰

也正因为如此,它在多线程的情况下,效率不佳

StringBuilder:线程不安全。因为它几乎所有的常用方法都不加锁

也正因为如此,它在多线程情况下,不安全,效率就高

String不可变。而后两者可变。

因此,一些拼接操作,尽可能用后两者去append()

而不是用string = string + '1123';

10. union和unionall的区别

union去重,unionall不去重

它俩都是结果集的纵向链接

SQL会产生一个ResultSet => List<>

表里的字段名和类里面的成员名不对应怎么办?

        select id as sid

11. MySQL的内连接、左连接、右连接有什么区别?

表A 表B

SQL是集合的操作

内连接:AB的交集

左连接:A里面的数据全要,即便没连接上也要,连上的数据原封不动,没连上的显示null

右连接:B里面的数据全要,即便没连接上也要,连上的数据原封不动,没连上的显示null

12. 解释一下什么是IOC(Inversion of Control)?

控制反转 把组装对象的控制权交出去。交给使用的工具

13. 解释一下Spring的DI(Dependency Injection)?

依赖注入

你用什么对象,Spring就给你什么对象,不用自己new

Spring负责管理所有的对象,当你用一个对象的时候,Spring把对象给你。这样如果Spring认为这个对象只需要new一次。那么你每一次都获得相同的对象,极大的节约了堆内存的空间。

14. 解释一下什么是AOP()?

面向切面编程

如果一个方法要运行,如果用反射来调用这个方法的运行

15. Spring AOP的五大通知?

环绕方法、事前方法、异常发生时的方法、事后方法、返回时方法

16. 数据库事务的特性?

(1)原子性:一个事务时数据库执行的基本单元,不可再分,内部封装的动作,要么都执行,要么都不执行,不存在只执行一部分

(2)一致性:数据库的事务会把数据库中的数据从一个一致性状态,转变为另一个一致性状态。比如:转帐前后,各账户总额不变

(3)隔离性:数据库执行事务的时候,事务之间彼此不可见,比如说,一个事务更新一个字段,另一个事务读不到

(4)持久性:数据库执行事务,一旦提交,不可回滚,它对数据库中的数据的影响是永久的

17. 什么是二分查找,基本的编程思路是什么?

每一次比较,都把一半的数据淘汰掉

也叫折半查找

时间复杂度:O(log(n))

18. Java容器(集合)都有哪些?它们的区别是什么?

List Set Map

List是线性的,操作依靠角标index

Set是无序的,遍历使用迭代器

Map是key-value键值对,使用put、get操作

19. Java中都有哪些引用类型?强软弱虚

强引用:jvm宁可自己异常,也不回收

软引用:jvm内存紧张后,找软引用回收(动态缓存)

弱引用:jvm内存即便不紧张,发现了也回收

虚引用:jvm不认为是引用的引用,随时可能被回收

20. 文件上传怎么处理?和普通表单有什么区别?

表单的格式:enctype=multipart/form-data

后端用流接收

文件上传还可以不指定enctype,直接当成String处理

一个文件就是一个String(Base64的String)

获取到文件的base64,还原为010101,用流写入到服务器的文件中

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值