滴滴java实习岗面试准备(一)

1、如何给数据库加锁?
https://www.cnblogs.com/paul8339/p/9936005.html
锁是数据库中的一个非常重要的概念,它主要用于多用户环境下保证数据库完整性和一致性。

  • S or X
    在 InnoDB 中实现了两个标准的行级锁,可以简单的看为两个读写锁:
    S 共享锁:又叫读锁,其他事务可以继续加共享锁,但是不能继续加排他锁。允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。
    X 排他锁:又叫写锁,一旦加了写锁之后,其他事务就不能加锁了。
  • 意向锁(快速判断数据库是否有锁)
    意向锁在 InnoDB 中是表级锁,和它的名字一样它是用来表达一个事务想要获取什么。
    意向锁分为:
    •意向共享锁:表达一个事务想要获取一张表中某几行的共享锁。
    •意向排他锁:表达一个事务想要获取一张表中某几行的排他锁。

2、前后端交互?
https://www.cnblogs.com/chentingk/p/6073963.html
2、MVC层用过哪些注解?
@Controller
@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。
@RequestMapping 用于映射Web请求,包括访问路径和参数(类或方法上),这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上。
@Resource和@Autowired
@Resource和@Autowired都是做bean的注入时使用,只不过@Autowired按照byType自动注入。
@Repository
用于注解dao层,在daoImpl类上面注解。
@Service
项目的redis怎么用?

项目Spring MVC如何接收参数?
https://blog.csdn.net/qq_33721382/article/details/82931388

Linux如何查看端口冲突?
netstat -anp |grep 端口号
netstat -nultp(此处不用加端口号)
该命令是查看当前所有已经使用的端口情况

如何查看项目日志?

Mysql如何加锁?
用SELECT … IN SHARE MODE获得共享锁,主要用在需要数据依存关系时来确认某行记录是否存在,并确保没有人对这个记录进行UPDATE或者DELETE操作。
但是如果当前事务也需要对该记录进行更新操作,则很有可能造成死锁,对于锁定行记录后需要进行更新操作的应用,应该使用SELECT… FOR UPDATE方式获得排他锁。

接口中能否定义常量?
只能定义常量,因为接口中的方法都是抽象的,我们无法通过行为修改属性,如果通过实现类来修改,那每个实现类都可以修改,会造成混乱。

类的静态变量和静态方法能否被子类继承?
静态属性、静态方法和非静态的属性都可以被继承和隐藏而不能被重写,因此不能实现多态(没有意义)

子类中能否调用父类的静态变量和静态方法?

String a = New string (“a”);在jvm中如何存储?
String a存储在栈里,New String(“a”)存储在堆里

MyBatis编程步骤是什么样的?
① 创建SqlSessionFactory
② 通过SqlSessionFactory创建SqlSession
③ 通过sqlsession执行数据库操作
④ 调用session.commit()提交事务
⑤ 调用session.close()关闭会话

Mybatis的一级和二级缓存
一级缓存的作用域是同一个SqlSession,在同一个sqlSession中两次执行相同的sql语句,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次会从缓存中获取数据将不再从数据库查询,从而提高查询效率。当一个sqlSession结束后该sqlSession中的一级缓存也就不存在了。Mybatis默认开启一级缓存。
二级缓存是多个SqlSession共享的,其作用域是mapper的同一个namespace,不同的sqlSession两次执行相同namespace下的sql语句且向sql中传递参数也相同即最终执行相同的sql语句,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次会从缓存中获取数据将不再从数据库查询,从而提高查询效率。Mybatis默认没有开启二级缓存需要在setting全局参数中配置开启二级缓存。

什么是数据结构
数据结构是计算机存储组织数据的方式,是相互之间存在一种或多种特定关系的数据元素的集合。良好的数据结构能够带来更高的运行效率。

数据结构和数据类型的区别
数据类型是指一类事物的集合以及这类事物可以进行的操作,数据结构定义了数据存储及组织数据的方式,是一种解决问题的思想。

说说网络七层结构
物理层:用于传输比特流
数据链路层:传输有地址的帧以及错误检测功能
网络层:路由选择
传输层:提供端对端的接口
会话层:建立和管理应用程序之间的通信
表示层:解决不同系统之间的通信语法问题。
应用层:应用程序通信

传输层协议端对端是什么意思
负责把上层交付的数据从发送端传输到接收端,不论其中间跨越多少节点。缺点是发送方要一直参与传输。

你了解的应用层协议有什么?它们用的传输层协议是什么
FTP协议(File Transfer Protocol,文件传输协议)–TCP/IP可靠的运输服务
简单邮件传送协议(Simple Mail Transfer Protocol, SMTP)
超文本传输协议(HyperText Transfer Protocol,HTTP)–TCP

JQuery中$和#的区别
$() 方法是在DOM中使用过于频繁的 document.getElementById() 方法的一个便利的简写
#是jquery里面使用的,一般使用#是获取一个标签的id

来不及了解了,之后再说

dubbo的底层原理知道吗

dubbo消费者调用服务的时候要不要通过注册中心

nginx配置过吗?谈谈正向代理和反向代理

redis除了做缓存,还有其他地方用到吗?

用redis做缓存遇到过什么问题?缓存同步

那你怎么解决缓存同步问题的?

解决缓存同步时,高并发情况下,重新添加redis缓存是在用户访问的时候进行的吗(不是,如果此时大量用户访问,数据库会崩溃)
MySQL事务隔离级别
MySQL的持久化和redis的持久化
如何配置项目服务器?

玄学拿offer,只要往前走,就离幸福更近,加油!!!

你可能感兴趣的:(工作)