卓望数码JAVA岗 部分笔试题(未完成)

今天去了一下卓望数码的宣讲会,原本以为只是一场普通的宣讲会而已,没想到会后来了场笔试,算是不幸,也算是万幸。不幸是不知道宣讲会会有笔试,没有做过多的准备,万幸是幸好去了宣讲会,不然也许简历就会直接被搁置了。趁着自己把题目忘记之前写写自己当时没有怎么做出来的题目吧。

说说对JAVA面向对象的理解

答的时候答上了 封装继承多态和抽象。好像是那么回事但是又没有回答的很具体。所以觉得还是应该完善一下。
看了一篇文章的答题思路,感觉写的还可以。贴一下链接 面试 | 什么是面向对象(OOP)?

个人理解:“万物皆对象。”所有的东西都可以用一个对象来表示,而对象又是类的实例。
面向对象的三大特性(也可以认为是类的)有:封装,继承和多态。

封装

将类的实现细节和属性进行隐藏,只对外暴露接口。这样可以很好的保护对象中的数据,利于软件复用。也改善了开发代码的维护性。

继承

子类可以继承父类所有非private的方法和属性。(前提是在同一个包中,不然只能访问到public修饰的方法和属性)也可以增加自己的方法。

多态

对同一个方法的重载或者重写,可以让一个方法实现不同的细节。
实现多态的三个必要条件:继承、重写、向上转型。
多态的三个实现方法:重写、接口、抽象类和抽象方法。

(附加题)谈谈你对微服务的理解,以及你了解的SpringCloud的技术和中间件。

微服务是一种架构风格。将传统All in one的架构拆分成一个个独立的组件,每个组件独立运行。一个服务专注一件事。可以独立开发,独立部署,故障隔离,将原本高耦合的代码解耦合。大大降低开发难度。

图片说明

判断题:String是基本类型吗?

当时我也是愣了一会,可能是紧张了,只记得不是,但是忘记八大类型了。所以还是有点小慌。
JAVA八大基本类型:
char,int,short,long,byte,double,float,boolean.

StringBuffer是可变的吗?

当然可变,但当时脑子卡了,怀疑了一下自己。
StringBuilder,StringBuffer都可变,String不可变。
StringBuider:快,线程不安全。StringBuffer则相反。

SQL编写相关。(牛客练习)

Spring的依赖注入和AOP

String a= new String("as")创建了几个String对象?

2个。一个"as"放入字符串池中。一个String a 总共两个。

抽象类

抽象类可以有抽象方法,普通方法和成员变量。
抽象方法中不能包含方法体。
抽象类不能被实例化,只能被继承。
构造方法和类方法(用 static 修饰的方法)不能被声明为抽象方法。
抽象类的子类必须给出抽象类中的抽象方法的具体实现,否则该类必须为抽象类。(也就是说,抽象类不一定会有抽象方法,但是有抽象方法一定是抽象类。)

类变量必须有的修饰符

这个还真把我问傻了,一直在想class{}类不是可以什么都没有吗。直到我搜了一下才发现是static。现在想想,果真是生疏了。

类变量:指无论创建多少个类对象,都只共同拥有同一个类变量。而不是每一个类有不同的变量存在。需要加也必须加static修饰。

MYSQL数据库的四个隔离级别

1. 读未提交(READ-UNCOMMITTED)

读未提交,见名思义。其他事务可以读取另一个事务还没来得及提交的数据。比如事务A正在操作数据,将钱从原来的800块更新到1000块,但还没有提交,这时候B读取到了1000块的金额,这个数据就是脏数据,这种现象称为脏读。此时A又恰好因为某些原因回滚了(遇到了什么错误发生回滚,或者断电导致没有来得及提交。)B读出来的数据就是错误的数据。

2. 读已提交(READ-COMMITTED)

读已提交,见名思义。其他事务只能够读取已经提交的数据。在上一个例子中,A还没有来得及提交的1000块,B事务是无法读取到的,只有A事务提交之后,B事务才能够成功读取。
但这个隔离级别仍然无法保证不可重复读幻读现象的发生。B事务在第一次查询期间查出来金额是800,但在第二次查询之前,A事务提交了1000块的修改,B事务在此隔离级别下就可以读出修改后的金额。这样的现象就称为不可重复读

3. 可重复读(REAPTABLE-READ)

可重复读,见名思义。可以重复读取数据(因为在此事务隔离级别下,无论怎么读取,都不会读取到其他事务提交修改后的数据,只能读取到本事务修改后的数据。)在此隔离级别下,可以防止脏读不可重复读的现象发生,但仍然无法避免幻读
幻读,在同一个事务中,第二次读取数据时,比第一次读取的数据条目有增加或删除。这样的现象就称为幻读

幻读也许并不是一种错误,甚至说幻读有时候是必须要有的现象,因为数据修改之后及时得到更新后的数据时理所应当的。只不过对事务本身来说,两次读取的数据出现偏差。就会宛如出现幻觉一样罢了。

不可重复读和幻读的区别:不可重复读的重点在于数据的修改,而幻读的重点在于数据的增加或删除

4. 串行化

事务中最高的隔离级别,所有的事务完全服从ACID特性。并且所有的事务串行执行,这样事务之间的执行就不会出现干扰。可以防止出现幻读,脏读,不可重复读。

最后用JAVAGUIDE上的一张图来总结:
图片说明

全部评论
请问有进面试吗,都面什么了???
点赞 回复 分享
发布于 2021-03-10 17:42

相关推荐

黑皮白袜臭脚体育生:简历统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写会更好
点赞 评论 收藏
分享
kl_我是东山啊:《相关公司:阿里巴巴》
投递阿里巴巴等公司10个岗位
点赞 评论 收藏
分享
评论
7
40
分享

创作者周榜

更多
牛客网
牛客企业服务