美团点评 2019校园招聘 后台开发方向

试题链接:https://exercise.acmcoder.com/answer?paperId=317

1.线程

可以通过创建Thread的实例来创建新的线程

线程的五种状态:

1)创建状态:生成线程对象

2)就绪状态:调用线程对象的start方法,该线程便进入就绪状态,但此时线程调度程序还没有把该线程设置为当前线程。

3)运行状态:线程调度程序将处于就绪状态的线程设置为当前线程,此时线程就进入了运行状态,开始运行run()函数。

4)阻塞状态:线程正在运行的时候,被暂停,通常是为了等待某个时间的发生(比如某项资源就绪)之后再继续运行。sleep、suspend、wait等方法都可以导致线程阻塞。

5)死亡状态:如果一个线程的run方法执行结束或者调用stop方法后,该线程就会死亡。对于已经死亡的线程,无法再使用start方法令其进入就绪。

由于在线程的生命周期中,线程的状态由new-->运行状态只会发生一次,因此,一个线程只能调用start()方法一次,多次启动一个线程是非法的。

2.接口:

1)成员变量:public static final

static:假设有两个接口A和B,而类C实现了这两个接口,此时接口A和接口B中都有一个变量N,如果N不是static类型的,那么在C类中该如何区分N到底是A的还是B的?如果是static就好了,可以通过(类名.变量名)A.N和B.N来调用以此区分是A还是B中的变量N.

final:如果不是不可变的,那么每个实现接口的类就可以改变这个变量的值,这是不行的。

2)成员方法:public abstract

3)接口没有构造方法,不能被实例化。

4)一个类实现某个接口,如果该类为非抽象类,则必须实现接口中的所有方法;若是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在。

3.字符串的拆分:

链接参考:https://blog.csdn.net/pigdreams/article/details/70449891

1)split()方法:lang包String类的split()方法

2)StringTokenizer类:util包下的StringTokenizer类

拆分原理:通过生成StringTokenizer对象,运用对象属性进行字符串拆分。

tokenizer的默认分隔符集:" \t\n\r\f"  空白字符、制表符、换行符、回车符、换页符

 4.积累

1)sqrt求平方根

2)当 break 关键字用于 while、for 循环时,会终止循环而执行整个循环语句后面的代码

5.设计模型

1)享元模式:使用共享物件,尽可能减少内存使用量以及分享资讯给尽可能多的相似物件

2)单例模式:一个类只有一个对象实例

3)组合模式:将对象组合成树形结构以表示“部分--整体”的层次结构,例子:系统目录结构、网站导航结构

4)原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象

6.数据库的三级封锁协议

两种锁:S锁(共享锁,读锁),X锁(排他锁,写锁)

加S锁后,本事务就只能读取数据而不能修改,其它事务可以加S锁来读取数据,但不能加X锁修改数据。只要数据上有S锁,任何事务都只能再对其加S锁读取,而不能加X锁修改。加X锁后,本事务可以读取和修改数据,其它事务不能加任何锁,从而也不能读取和修改数据。

1)一级封锁协议:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。一级封锁协议可以防止丢失修改,并保证事务T是可恢复的。在一级封锁协议中,如果仅仅是读数据不对其进行修改,是不需要加锁的,它不能保证可重复读和不读“脏”数据。

2)二级封锁协议:在一级封锁协议之上,事务T在读取数据R之前必须先对其加S锁,读完后方可释放S锁,可进一步防止读“脏”数据。但在二级封锁协议中,由于读完数据后即可释放S锁,所以它不能保证可重复读。

3)三级封锁协议:在一级封锁协议之上,事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。可防止丢失修改、不读“脏”数据和不可重复读。

7.E-R图

矩形框:表示实体

菱形框:表示联系

椭圆形框:表示属性

8.处理器的两级调度

输入井:磁盘上用来存放作业信息的专用区域成为输入井

后备作业:输入井中等待处理的作业成为后备作业

作业调度:需要从输入井中选取后备作业装入主存储器

进程调度:当作业调度选取一个作业,进入主存储器中后,就为该用户创建一个进程,但是在单处理器的计算机系统中,每一时刻只能让一个进程占用处理器,如果有多个进程占用处理器,就必须制定一定的规则让每个作业都有机会进入进程中。

 9.CSMA/CD协议

所有节点都共享网路传输信道,节点在发送数据之前,首先检测信道是否空闲,如果信道空闲则发送,否则就等待;在发送出信息后,再对冲突进行检测,当发现冲突时,则取消发送

1)可抢占性:若信道正忙,如果坚持侦听,发送的站一旦停止就立即抢占信道,但是有可能几个站同时侦听,同时都抢占信道,从而发生冲突。

2)半双工:一个站不能同时进行发送和接收,因为在每次传送过程中,接收模块被用于侦听冲突了。

链接:https://mp.weixin.qq.com/s?src=11&timestamp=1566556543&ver=1808&signature=zVGJtFKLSlaGlvnJHom*aKMleEGjGoZxIaV0jOySPL0YKXVX1ZbVO1GSjvth31TiUG2pX1SdLb1EdGxCYqm6IwVezyjwauZTG0HyYGAanRTG3I7XzA-*8esZ7dLgC9yQ&new=1

https://blog.csdn.net/weixin_40752764/article/details/83176343

10.应用层协议

 

 11.二叉排序树

又叫二叉查找树,它或者是一棵空树,或者是具有以下性质的二叉树:

1)若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值

2)若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值

3)它的左右子树也分别为二叉排序树

 

平均查找长度

链接https://blog.csdn.net/qq_25244495/article/details/83536591

12.广度、深度

广度优先遍历用队列

深度优先遍历用栈

链接:https://zhuanlan.zhihu.com/p/24649804

13.KMP算法

题目:

解决过程:

 

转载于:https://www.cnblogs.com/lick468/p/11396152.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值