知识点记录 改善用户体验:长连接可以让应用程序实现实时数据传输,从而改善用户体验,例如在聊天应用中实时显示消息,而不是等待新消息时重新连接服务器。减少网络开销:长连接可以在一个TCP连接上连续发送多个数据包,避免了频繁的网络连接和断开,从而减少了网络开销,提高了网络传输效率。提高传输效率:长连接可以在一个TCP连接上连续发送多个数据包,避免了频繁的网络连接和断开,从而减少了网络延迟,提高了数据传输效率。总之,长连接可以提高网络传输效率和用户体验,减少网络开销,是实现实时通信的重要手段之一。
virtualbox - docker - 相关组件安装 虚拟机下载安装VirtualBox下载Vagrant下载Box下载 - 类比镜像详细安装参考:[Vagrant 与 VirtualBox 的保姆级安装教程]
linux常用命令 - 高级 通过 ss -tnlp 命令,可以方便地查看当前系统的网络连接情况,识别哪些进程在运行,哪些端口正在被占用,以及哪些连接是监听状态的。这对于网络故障排除和安全管理非常有用。ss -tnlp 是一个命令,用于显示当前系统中所有的 TCP 连接和监听端口信息,以及正在运行的进程和它们所占用的端口。
Spring 原理 1、Spring 特点1.1、轻量级从大小和开销两方面而言 Spring 都是清轻量的。完整的 Spring 框架可以在一个大小只有 1M 多的 Jar 文件里发布,并且 Spring 所需的处理开销也是微不足道的。此外,Spring 是非侵入式的:典型的 Spring 应用中的对象不依赖与 Spring 的特定的类。1.2、控制反转Spring 通过控制反转(IOC)技术促进了低耦合。当应用了IOC,一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖。
Java 基础 - 异常注解反射 1、Java 异常 (Throwable)1.1、概念如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常处理器。1.2、异常分类Throwable 是 Java 语言中所有错误或异常的超类。下一层分为 Error 和 Exception。1.2.1、错误 ErrorError 类是指 java 运行时系统的内部
Java 多线程 1、继承 Thread 类Thread 类本质上是实现了 Runnable 接口的一个实例,代表一个线程的实例。启动线程的唯一方法就是通过 Thread 类的 start() 实例方法。start() 方法是一个 native 方法,它将启动一个新线程,并执行 run()方法2、实现 Runnable 接口如果自己的类已经 extends 另一个类,就无法直接 extends Thread,此时,可以实现一个 Runnable 接口。
JVM 基础 1、基本概念JVM 是指可运行 Java 代码的假想计算机,包括一套字节码指令集、一组寄存器、堆、栈、垃圾回收和存储区域。JVM 是运行在操作系统之上的,与硬件无直接的交互。3、运行过程Java 源文件通过编译器编译,得到 .class 字节码文件。.class 文件通过 JVM 解释器,解释成特定机器上的机器码。3、Java 虚拟机运行时数据区线程私有:1、程序计数器:内存空间小,线程私有。字节码解释器就是通过改变这个计数器的值来选取下一条需要执行的指令。字节码指令、分支、
IPV4地址划分 IPV4地址分为网络号和主机号两个部分。如果主机号全0,IP地址代表仅网络号指向的那个网段,该IP代表一个网段。如果主机号全1,IP地址代表网络号指向的全部主机,IP地址代表广播地址。其他就是普通的IP地址,指向网域中的一个主机了。
MySQL 基础 MySQL 基本介绍最流行的关系型数据库管理系统(RDBMS,Relational Database Management System)。MySQL 常用命令连接数据库。指定主机、用户、密码进行连接。mysql -h localhost -u root -p新建数据库 create 、删除数据库 drop 、选择数据库 use 。create database 数据库名; # 新建drop database 数据库名; # 删除use 数据库名; # 选择
Java 多线程 - 编码 多线程进程与线程进程: 是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程。线程: 是程序执行的最小单元,多个线程可共享进程的资源。线程直接切换效率更高,更节省系统资源。线程是并发编程的基础,使用它可以有效的提高程序整体的运行速度。创建线程的方式继承Thread类重写run方法。然后,new MyThread().start(),启动线程。class MyThread extends Thread{ @Override public void run()
Linux常用命令 - 基础 vim Hello.java打开Hello.java文件(无则创建)i进入编辑模式yy复制光标所在行(p粘贴)5yy复制光标及向下共5行(p粘贴)dd删除光标所在行5dd删除光标及向下共5行u撤销、回退gg跳到文件的第一行G跳到文件的最后一行/hello查找"hello"(n跳到下一个):set nu显示行号:set nonu取消显示行号:wq保存并退出
Linux之运行级别、权限相关、任务调度、包管理 运行级别说明0: 关机1: 单用户【找回丢失密码】2: 多用户状态,没有网络服务3: 多用户状态,有网络服务4: 保留,系统未使用保留给用户5: 图形界面6: 系统重启常用运行级别是3,5,要修改默认的运行级别可改文件。系统的运行级别配置文件:/etc/inittab文件权限-rw-rw-r--. 1 lizhihui lizhihui 111 7月 22 09:36 Hello.java【-】: 文件类型 【- d l c b …】【-】:普通文件;【d】:目录;【l】
Linux目录结构 /bin (/user/bin、user/local/bin)是Binary的缩写,这个目录存放着最经常使用的命令。/home存放普通用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。/root该目录为系统管理员,也称作超级权限者的用户主目录。/etc所有系统管理所需要的配置文件和子目录。/user这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于Windows下的program files目录。
TCP协议,及三次握手和四次挥手 TCP协议概括名称: 传输控制协议(Transmission Control Protocol)。类别: 传输层协议。特点: 面向连接的、可靠的、基于字节流的、可流量控制、拥塞避免。详解数据包组成源端口、目的端头: 确定通信双方所用的进程。各占16 bit,范围0-65535。序号: 传送的数据按字节编号,序号指该TCP包数据部分第一个字节的编号。占32 bit,表示0-232 byte。确认号: 接收方给发送方的响应,指下个数据包从这个编号开始发。占32 bit。
UDP协议 UDP协议概括名称: 用户数据保协议(User Datagram Protocol)。类别: 传输层协议。特点: 无连接、不可靠、快速传输。数据包最大长度: 理论长度65507 byte、内网传输1472 byte、Internet传输548 byte,具体场景。1适用场合: 多媒体通信(QQ,视频),DNS域名解析等。详解数据包组成伪首部占12个字节:源IP地址、目的IP地址、填充位(0)、协议号(UDP为17)、UDP长度。
计算机网络专业术语大全 阿帕网(Arpanet)是互联网( Internet )的始祖。主要是用于军事研究目的,它主要是基于这样的指导思想:网络必须经受得住故障的考验而维持正常的通信工作。在技术上的重大贡献是 TCP/IP 协议簇的开发和利用。作为 Internet 的早期骨干网, ARPANET 的试验并奠定了 Internet 存在和发展的基础,较好地解决了异种机网络互联的一系列的理论和技术问题。
单例模式的五种实现,破解以及反破解 单例模式(Singleton Pattern)介绍意图: 保证一个类仅有一个实例。并提供一个访问它的全局访问点。主要解决: 一个全局使用的类频繁的创建与销毁对象。何时使用: 一个类只需要有一个对象时。如何解决: 判断是否已有该类实例,有则返回,无则创建。关键代码: 类自己创建自己的实例,构造器私有化,提供全局访问点。应用实例: 任务管理器。注意事项: 防止多线程环境下创建多个实例对象。
十大经典排序算法 十种常见的排序算法可分为以下两大类:比较类排序:通过比较来决定元素间的相对位置,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对位置,它可以突破基于比较排序的时间下限,以线性时间运行,因此也称为线性时间非比较类排序。时间复杂度: 从序列的初始状态到经过排序算法的变换移位等操作变到最终排序好的结果状态的过程所花费的时间度量。