Stereotyped Writing(二)

写出你用过的linux命令,举例说明其中的几个的具体用法。

命令 含义
shutdown -h now 立刻关机
shutdown -r now 立刻重启
cd 切换路径
ls 查看当前路径下的所有目录和文件
mkdir tools 在当前目录下创建一个名为tools的目录
rm 文件名 删除当前目录下的文件

我最近几个项目都是使用的docker 的命令部署项目

写出TCP的三次握手和四次握手的过程

  • 三次握手
    1. 客户端向服务端发出连接请求,等待服务确认
    2. 服务端收到请求,并发确认连接信息
    3. 客户端收到服务端确认连接信息,建立连接
  • 四次挥手
    1. 客户端发出断开连接请求
    2. 服务端收到请求,向客户端发收到断开请求的确认信息
    3. 服务端确认无数据发送后,向客户端发出关闭连接
    4. 客户端收到关闭连接,发送断开确认,断开TCP连接

接口和抽象类的区别是什么?

接口和抽象类的区别:

  1. 接口中所有的方法隐含的都是抽象的,而抽象类则可以同时包含抽象和非抽象的方法
  2. 类可以实现多个接口,但是只能继承一个抽象类
  3. 类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。
  4. 抽象类可以在不提供接口方法实现的情况下实现接口
  5. java接口中声明的变量默认是final的,抽象类可以包含非final的变量
  6. java接口中的成员函数默认是public的。抽象类的成员函数可以是private,protected或者是public。
  7. 接口是绝对抽象的,不可以被实例化,抽象类也不可以被实例化,但是如果它包含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);
	}
}
posted @ 2024-03-08 21:40  奕帆卷卷  阅读(9)  评论(0)    收藏  举报