概述
试题链接: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的默认分隔符集:" tnrf" 空白字符、制表符、换行符、回车符、换页符
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×tamp=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
最后
以上就是激动宝马为你收集整理的美团点评 2019校园招聘 后台开发方向的全部内容,希望文章能够帮你解决美团点评 2019校园招聘 后台开发方向所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复