牛客网刷题Day 1--网络基础、数据库

网络基础

1、ATM网络的“打包”特点是采用短的定长的快速分组交换方式

2、在故障排除的过程中,为测试本地 TCP/IP 协议,通常可以ping127.0.0.1,因为127.0.0.1是回送地址,指本地机,一般用来测试使用.

3、下列哪个IP地址可以分配给一台计算机?  

  • 256.1.3.4
  • 197.3.11.0
  • 199.5.89
  • 11.15.33.235

解析:

互联网的网络地址分为A~E五类,由:网络号+主机号组成,每个 IP 地址分为 4 段,段与段之间用小数点隔开,每段再用一个十进制整数表示,每个十进制整数的取值范围是 0-255 。其中

A类地址:0.0.0.0 ~ 127.255.255.255  主机号是后24位

B类地址:128.0.0.0 ~ 191.255.255.255  主机号是后16位

C类地址:192.0.0.0 ~ 223.255.255.255  主机号是后8位

D类地址:224.0.0.0 ~ 239.255.255.255  后28位为多播组号

E类地址:240.0.0.0 ~ 255.255.255.255  后27位待用

我们能使用的只有A~C类,D类为多播地址,E类保留使用。

主机号全为0的时候,表示一个网段,主机号全为1的时候,是一个指向网络的广播。

答案A中,256的点分十进制IP地址不存在,最大为255

答案B中,197的网络号对应C类地址,不能使用全0的主机号

答案C不符合表述

答案D是符合的A类地址

4、TCP/IP五层协议

在这里插入图片描述

TCP:传输层协议     --传输控制协议,传输效率低,可靠性强

DHCP:应用层协议   --动态主机配置协议,发现协议中的引导文件名、空终止符、属名或空,DHCP供应协议中的受限目录路径名 Options –可选参数字段,参考定义选择列表中的选择文件

ICMP:网络层协议;一般我们在ping命令时就用到 ICMP协议 。ICMP协议的功能主要有:

  1. 确认IP包是否成功到达目标地址
  2. 通知在发送过程中IP包被丢弃的原因

HTTP:应用层协议  --超文本传输协议,最基本的客户机/服务器的访问协议;浏览器向服务器发送请求,而服务器回应相应的网页

5、在 RS-232C 接口信号中,数据终端就绪 (DTR) 信号的连接方向为DTE→DCE

数据终端设备DTE (Data Terminal Equip-ment)与数据通信设备DCE (Data Communication Equipment)

DTR:数据终端DTE准备就绪信号,输出,用于DTE向DCE发送联络。

DSR则反向,即数据通信设备DCE向数据终端设备DTE发送联络。

6、分组交换的特点

1:高效。在传输过程中是动态分配传输带宽,对通信链路是逐段占用的。分组数据是暂时保存在节点的内存中,节点暂时存储的是一个个分组数据,而不是整个数据文件

2:灵活。 为每一个分组独立的选择最适合的路由。

3:迅速。 可以不先建立连接就能向主机返送分组。

4:  可靠。 保证可靠性的网络协议;分布式多路由的分组交换网,是网络有很好的生存性。

缺点:分组数据在各节点存储转发时会因排队而造成一定的延时

7、路由器、网桥、集线器

路由器可以隔绝广播域,也可以隔绝冲突域,交换机只能隔绝冲突域,不能隔绝广播域。集线器只起信号发达和转发的作用。

8、FTP的双重连接

FTP需要建立双重连接,一个控制连接,一个是数据连接。

控制连接用于传输FTP的控制命令和服务器的回送信息;21 控制端口

数据连接用于数据的传输,完成文件内容的传输;20 数据端口


数据库

1、数据库的四种语言

DDL:数据库定义语言,CREATE、DROP/TURNVATE(删除)、ALTER(修改)、SHOW/DESC(查看)

DML:数据库操纵语言,INSERT、UPDATE、DELETE

DQL:数据库查询语言:SELECT、FROM、WHERE

DCL:数据控制语言:GRANT、ROLLBACK、COMMIT

2、三级模式间存在两种映射,它们是模式与子模式间,模式与内模式间。

==数据库的三级模式==

外模式,又称子模式、用户模式,用户级;

概念模式,又称模式、逻辑模式,概念级;

内模式又称存储模式,物理级。

可以这样来记:内模式,内部用的,底层描述,和存储相关,物理级别的;

概念模式是数据库设计者DBA从用户需求分析中提取的概念级的模式,然后划出一个子模式便于程序员增删改查的用户模式。

外模式有多个,概念模式和内模式只有一个

 3、任何一个包含两个属性的关系模式一定满足3NF;任何一个包含两个属性的关系模式一定满足BCNF;任何一个关系模式都一定有码.

错误的说法:任何一个包含三个属性的关系模式一定满足3NF,错误原因是假如主键包含2个属性,可以存在部分依赖,因此不一定满足3NF。

==数据库三大范式==

  • 1NF: 字段是最小的的单元不可再分
  • 2NF:满足1NF,表中的字段必须完全依赖于全部主键而非部分主键 (一般我们都会做到)
  • 3NF:满足2NF,非主键外的所有字段必须互不依赖
  • 4NF:满足3NF,消除表中的多值依赖

4、数据库技术的奠基人之一E.F.Codd从1970年起发表多篇论文,主要论述的是关系数据模型

5、SQL语句

赋权、修改权限

GRANT TO  是给某个用户赋权,REVOKE FROM 是收回某个用户的权限

删除触发器

DROP TRIGGER        触发器是定义在关系上的由事件驱动的特殊过程

<比较符

6、关系规范化中的删除操作异常是指不该删除的数据被删除

7、数据模型的逻辑结构

关系数据模型的逻辑结构是关系结构(二维表结构);层次数据模型的逻辑结构是二叉树

8、死锁和活锁

活锁就是事务T有可能永远等待,而死锁是指T1和T2 两个事务永远不能结束

9、数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统以及其开发工具、应用系统、数据库管理员构成。

10、模糊查询

  • _:代表的是任意单个字符
  • %:任意长度的字符串
  • []:代表指定范围内的任意单个字符
  • [^]:代表指定范围内或者集合中的任意单个字符

11、E-R图

E-R图的主要元素是实体、属性和联系。 就数据库而言,实体往往指某类事物的集合。

实体之间的联系有一对一、一对多、多对多。属性为实体或联系在某一方面的特征。

12、处理数据库中读取的日期数据时,以下那种方法有助于避免bug?

  • 如果日期需要被转换成 UNIX 时间戳进行操作,要确保结果不会溢出
  • 用数据库功能测试日期的合法性
  • 如果可能,用数据库功能计算日期的值

13、复合索引

复合索引: Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分

例如索引是key index (a,b,c). 可以支持a | a,b | a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。


Spring

1、Spring事务管理

在spring中有两种事务的实现方式,分别是编程式事务管理声明式事务管理

编程式事务一般使用的是TransactionTemplate工具类来实现,实际应用中很少使用

声明式事务一般使用的是@Transactional注解,实际是通过 AOP 实现,可以作用于接口、接口方法、类以及类方法上。当作用于类上时,该类的所有 public 方法将都具有该类型的事务属性。

可以作用于接口、接口方法、类以及类方法上。当作用于类上时,该类的所有 public 方法将都具有该类型的事务属性。

 2、Spring AOP的五种通知方式

  • 前置通知 Before advice:在连接点前面执行,前置通知不会影响连接点的执行,除非此处抛出异常
  • 后置通知 After returning advice:在连接点正常执行完成后执行,如果连接点抛出异常,则不会执行
  • 异常通知 After throwing advice:在连接点抛出异常后执行
  • 最终通知 After (finally) advice:在连接点执行完成后执行,不管是正常执行完成,还是抛出异常,都会执行返回通知中的内容
  • 环绕通知 Around advice:环绕通知围绕在连接点前后,能在方法调用前后自定义一些操作,还需要负责决定是继续处理 join point (调用 ProceedingJoinPoint 的 proceed 方法)还是中断执行。

3、Spring AOP的实现方式

JDK动态代理,是Java提供的动态代理技术,可以在运行时创建接口的代理实例。Spring AOP默认采用这种方式,在接口的代理实例中织入代码。

CGLib动态代理,采用底层的字节码技术,在运行时创建子类代理的实例。当目标对象不存在接口时,Spring AOP就会采用这种方式,在子类实例中织入代码。

4、@ComponentScan注解

@ComponentScan 的作用就是根据定义的扫描路径,把符合扫描规则的类装配到spring容器中。注解默认规则是对当前包及其子包中的Bean进行扫描。

常用参数如下:

  • basePackages与value:  用于指定包的路径,进行扫描
  • basePackageClasses: 用于指定某个类的包的路径进行扫描
  • nameGenerator: bean的名称的生成器
  • useDefaultFilters: 是否开启对@Component,@Repository,@Service,@Controller的类进行检测
  • includeFilters: 包含的过滤条件
            FilterType.ANNOTATION:按照注解过滤

            FilterType.ASSIGNABLE_TYPE:按照给定的类型

            FilterType.ASPECTJ:使用ASPECTJ表达式

            FilterType.REGEX:正则

            FilterType.CUSTOM:自定义规则
  • excludeFilters: 排除的过滤条件,用法和includeFilters一样

5、SpringApplication调用的run方法的执行流程

  1. 初始化监听器,以及添加到SpringApplication的自定义监听器。
  2. 发布ApplicationStartedEvent事件,如果想监听ApplicationStartedEvent事件,你可以这样定义:public class ApplicationStartedListener implements ApplicationListener,然后通过SpringApplication.addListener(..)添加进去即可。
  3. 装配参数和环境,确定是web环境还是非web环境。
  4. 装配完环境后,就触发ApplicationEnvironmentPreparedEvent事件
  5. 如果SpringApplication的showBanner属性被设置为true,则打印启动的Banner
  6. 创建ApplicationContext,会根据是否是web环境,来决定创建什么类型的ApplicationContext。
  7. 装配Context的环境变量,注册Initializers、beanNameGenerator等。
  8. 发布ApplicationPreparedEvent事件
  9. 注册springApplicationArguments、springBootBanner,加载资源等
  10. 遍历调用所有SpringApplicationRunListener的contextLoaded()方法。
  11. 调用ApplicationContext的refresh()方法,装配context beanfactory等非常重要的核心组件。
  12. 查找当前ApplicationContext中是否注册有CommandLineRunner,如果有,则遍历执行它们。
  13. 发布ApplicationReadyEvent事件,启动完毕,表示服务已经可以开始正常提供服务了。通常我们这里会监听这个事件来打印一些监控性质的日志,表示应用正常启动了。

6、@Autowired

==解决@Autowired歧义性==

@Primary
如果有多个相同类型的SpringBean,我们可以使用@Primary注解,优先注入带该注解标识的类,@Primary可以在多个类上标注,那就会抛异常。

@Qualifier

使用SpringBean的名称(SpringBean的名称都是唯一的)进行注入。

==@Autowired匹配规则==

首先根据类型找到对应的Bean, 如果对应类型的 Bean 不是唯一的,那么就根据属性名称和Bean的名称进行匹配。如果匹配得上,就会使用该Bean;如果还无法匹配,就会抛出异常

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值