Lll Blog


  • 首页

  • 标签

  • 分类

  • 归档

注释规范

发表于 2020-03-16

注释规范

  1. 【强制】类、类属性、类方法的注释必须使用Javadoc规范,使用/*内容/格式,不得使用//xxx方式。说明:在IDE编辑窗口中,Javadoc方式会提示相关注释,生成Javadoc可以正确输出相应注释;在IDE中,工程调用方法时,不进入方法即可悬浮提示方法、参数、返回值的意义,提高阅读效率。
  2. 【强制】所有的抽象方法(包括接口中的方法)必须要用Javadoc注释、除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。说明:对子类的实现要求,或者调用注意事项,请一并说明。
  3. 【强制】所有的类都必须添加创建者和创建日期。
  4. 【强制】方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用/**/注释,注意与代码对齐。
阅读全文 »

面试总结(一)-网络 & IO

发表于 2021-03-23

网络基础知识

TCP 连接

客户端与服务器之间数据的发送和返回的过程当中需要创建一个叫TCP connection的东西;

由于TCP不存在连接的概念,只存在请求和响应,请求和响应都是数据包,它们之间都是经过由TCP创建的一个从客户端发起,服务器接收的类似连接的通道,这个连接可以一直保持,http请求是在这个连接的基础上发送的;

在一个TCP连接上是可以发送多个http请求的,不同的版本这个模式不一样。

在HTTP/1.0中这个TCP连接是在http请求创建的时候同步创建的,http请求发送到服务器端,服务器端响应了之后,这个TCP连接就关闭了;

HTTP/1.1中可以以某种方式声明这个连接一直保持,一个请求传输完之后,另一个请求可以接着传输。这样的好处是:在创建一个TCP连接的过程中需要“三次握手”的消耗,“三次握手”代表有三次网络传输,如果TCP连接保持,第二个请求发送就没有这“三次握手”的消耗。

HTTP/2.0中同一个TCP连接里还可以并发地传输http请求。

阅读全文 »

面试总结(二)-数据库

发表于 2021-03-29

MySQL

MySQL 存储引擎

MySQL 给用户提供了多种存储引擎,可 通过命令 SHOW ENGINES 查看。在 MySQL 中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求可以对每个表使用不同的存储引擎。

InnoDB
  • InnoDB 是 MySQL 默认的事务型引擎,也是最重要、最广泛的存储引擎。它的设计是用来处理大量短期事务,短期事务大部分是正常提交的,很少回滚。InnoDB 的性能和自动崩溃恢复特性,使得它在非事务型存储的需求中,也很流行。
  • InnoDB 最小的锁粒度是行级锁,通过间隙锁(next-key Lock)防止幻读的出现。InnoDB 基于聚簇索引建立,聚簇索引对主键查询有很高的性能,不过它的二级索引(非主键索引)必须包含主键列。使用非主键索引查询需通过回表查询获取行数据。
  • InnoDB 支持外键。
MyISAM
  • MyISAM 是 MySQL 5.1 及之前的版本默认的存储引擎。MyISAM提供了大量的特性,包括全文索引、压缩、空间函数等。但有一个很大的缺陷是崩溃后无法安全恢复。对于只读的数据,或者表比较小,可以忍受修复操作,则依然可以使用MyISAM。
  • MyISAM 不支持事务,最小的锁粒度为表级锁。读取的时候对表加共享锁,写入的时候加排他锁。MyISAM 使用非聚簇索引,数据与索引分离存储。
  • MyISAM 不支持外键。
阅读全文 »

面试总结(三)-Java底层知识

发表于 2021-04-15

平台无关性

平台无关性就是一种语言在计算机上的运行不受平台的约束,一次编译,到处运行。也就是说,用 Java 创建的可执行二进制程序,能够不加改变的运行于多个平台。
对于不通的平台,不同的硬件和操作系统,最主要的区别就是指令不同。因此,想要做到跨平台,最重要的就是可以根据对应的硬件和操作系统生成对应的二进制指令。而这一工作,主要由 Java 虚拟机完成。虽然 Java 语言是平台无关的,但是JVM却是平台有关的,不同的操作系统上面要安装对应的JVM。

  1. Java源文件被编译器编译成字节码文件。
  2. JVM将字节码文件编译成相应的操作系统机器码。
  3. 机器码调用相应操作系统的本地方法库执行相应的方法。

Q1: 为什么要先编译成字节码再解析成机器码,而JVM不直接将字节码解析成机器码呢?

  1. 准备工作:每次执行都需要各种检查,都要重新编译重新分析,所以引入了中间字节码,多次执行程序不需要反复编译。
  2. 兼容性:也可以将别的语言解析成字节码。也可以被jvm执行,增加兼容扩展能力。
阅读全文 »

面试总结(四)-Java多线程

发表于 2021-04-23

进程与线程

进程和线程都是一个时间段的描述,是CPU工作时间段的描述。是运行中的程序指令的一种描述。

进程:进程就是上下文切换之间的程序执行的部分。是运行中的程序的描述,也是对应于该段CPU执行时间的描述。与之相关的东西有寻址空间,寄存器组,堆栈空间等。不同的进程,这些都不同,从而能相互区别。

线程:线程是共享了进程的上下文环境,更为细小的CPU时间段。线程有自己的程序计数器、堆栈、局部变量,线程主要共享的是进程的地址空间。线程的上下文切换代价远小于进程的上下文切换。

阅读全文 »
1…456

紫苏

30 日志
2 分类
8 标签
© 2022 紫苏
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4