Stereotyped Writing(二)
写出你用过的linux命令,举例说明其中的几个的具体用法。
命令 | 含义 |
---|---|
shutdown -h now | 立刻关机 |
shutdown -r now | 立刻重启 |
cd | 切换路径 |
ls | 查看当前路径下的所有目录和文件 |
mkdir tools | 在当前目录下创建一个名为tools的目录 |
rm 文件名 | 删除当前目录下的文件 |
我最近几个项目都是使用的docker 的命令部署项目
写出TCP的三次握手和四次握手的过程
- 三次握手
- 客户端向服务端发出连接请求,等待服务确认
- 服务端收到请求,并发确认连接信息
- 客户端收到服务端确认连接信息,建立连接
- 四次挥手
- 客户端发出断开连接请求
- 服务端收到请求,向客户端发收到断开请求的确认信息
- 服务端确认无数据发送后,向客户端发出关闭连接
- 客户端收到关闭连接,发送断开确认,断开TCP连接
接口和抽象类的区别是什么?
接口和抽象类的区别:
- 接口中所有的方法隐含的都是抽象的,而抽象类则可以同时包含抽象和非抽象的方法
- 类可以实现多个接口,但是只能继承一个抽象类
- 类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。
- 抽象类可以在不提供接口方法实现的情况下实现接口
- java接口中声明的变量默认是final的,抽象类可以包含非final的变量
- java接口中的成员函数默认是public的。抽象类的成员函数可以是private,protected或者是public。
- 接口是绝对抽象的,不可以被实例化,抽象类也不可以被实例化,但是如果它包含main方法可以被调用
Spring的IOC和AOP是什么?Spring有哪些优点,谈谈你对spring的理解。
IOC就是控制反转,是指创建对象的控制权的转移,以前创建对象的主动权和时机是由自己把控的,而现在这种权力转移到Spring容器中,并由容器根据配置文件去创建实例和管理各个实例之间的依赖关系,对象与对象之间松散耦合,也利于功能的复用,DI依赖注入,和控制反转是用一个概念的不同角度的描述,即应用程序在运行时依赖IOC容器来动态注入对象需要的外部资源。
AOP一般称为面向切面编程,作为面向对象的一种补充,用于将那些与无关业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为切面,减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性,可用于权限认证,日志,事物处理
Spring优点:
- Spring输入低侵入式设计,代码的污染极低
- Spring的DI机制将对象之间的依赖关系交由框架处理,减低组件的耦合性
- Spring提供了AOP技术,支持将一些通用任务,如安全,事物,日志,权限进行几种管理
- Spring对于主流的框架提供了继承支持
Java实现一个栈,包含栈的基本操作?
/** * 栈的基本操作 * */ public class MyStack { private int Size;// 栈的大小 private char[] arr; private int top;// 指向栈顶元素 public MyStack(int size) { this.Size = size; this.arr = new char[Size]; this.top = -1; } /** * 压入数据 * * @param value */ public void push(char value) { arr[++top] = value; } /** * 返回栈顶元素 * @return */ public char peek() { return arr[top]; } /** * 出栈 * * @return */ public char pop() { if (isEmpty()) throw new NullPointerException("此栈为空!!"); return arr[top--]; } /** * 查看压入的栈的结果 * */ public void print() { if (isEmpty()) { System.out.printf("此栈为空!!!"); } System.out.printf("栈的大小为:%d\n", Size); int i = Size - 1; while (i >= 0) { System.out.print(arr[i]); i--; } } /** * 判断栈是否为空 * * @return */ public boolean isEmpty() { return (top == -1); } /** * 判断栈是否已满 * * @return */ public boolean isFull() { return (top == Size - 1); } }
本文作者:奕帆卷卷
本文链接:https://www.cnblogs.com/yifan0820/p/18061921
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步