自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 多路复用I/O:select、poll、epoll的实现原理,epoll惊群现象

多路复用I/O与客户端建立连接后,内核会为客户端分配一个fd(文件描述符,能标志一个客户端)多路复用IO指内核监控客户端(fd)是否有数据到来,当我们知道有数据到来时,只需要调用多路复用的select/poll/epoll提供系统调用即可,将我们想知道的客户端(fd)传入,内核就会返回哪些客户端的数据准备好了。原先是有几个fd,就进行几次系统调用,一次只能判断一个客户端(fd)是否有数据传输,频繁的从用户态和内核态中切换。现在允许传入多个fd,根据fd进行一次系统调用即可,大大降低了系统的开销。其中

2021-08-30 21:51:55 355

原创 Go Module模式:基本命令、导入第三方库

概述当我们在使用import导入包的时候,无法指定版本号,但我们知道不同版本的包存在大大小小的差异,版本不可控是十分危险的。因此我们需要使用module模式来进行版本控制。使用:需要将代码仓库放到环境变量的GOPATH/src目录外,然后在代码目录下创建一个go.mod文件,然后在代码目录下执行go命令。go mod文件内容module 当前模块名称go 版本号require 所需第三方库go mod命令输入go mod help可以查看到所有go mod命令:以下命令前缀是go m

2021-08-30 20:20:50 2912

原创 Android:加载网络图片

方式:通过引入第三方库:实现网络加载图片API文档:https://github.com/bumptech/glide实现步骤1、在app/buid.gradle下添加内容repositories { mavenCentral()}dependencies { compile 'com.github.bumptech.glide:glide:4.0.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.

2021-08-30 11:17:24 390

原创 Android:动态加载下拉列表

1、创建文件menu/catagory.xml文件文件名可自定义,后续操作保持同样即可。注意:这里的文件中如果添加了<item>,那么可能会出现后期多了一个item<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"></menu>2、初始化菜单项/** * 初始化菜单项

2021-08-30 11:16:20 526

原创 Android:实现文字跑马灯效果

在activity的xml文件中的<TextView>标签中设置以下属性:设置属性android:singleLine=trueandroid:ellipsize="marquee"循环次数android:marqueeRepeatLimit,当值为“-1”或者“marque_forever”时会一直跑。设置获得焦点状态android:focusable="true"和android:focusableInTouchMode="true"...

2021-08-30 11:10:26 496

原创 Android Studio:向虚拟机相册中添加图片

1、直接鼠标拉动图片到虚拟机中然后查看相册是否显示,如果显示,则无需查看后续操作。如果没有显示,打开手机download文件夹,会发现图片就在该文件夹下面,向下继续操作。2、弹出sd卡(设置>存储>sd卡)3、重新装载(Mount)4、重启虚拟机后刷新相册,即可看到图片...

2021-08-30 11:01:17 8568

原创 地址转换技术 NAT

概述为了解决IPv4地址不足的问题,提出了私有地址,而私有地址只能在内部网络内使用,当要与外界进行通信的时候,需要转换为公有IP。NAT技术的作用:将私有地址转换成公网地址。专业术语内部本地网络:连接到属于私有路由器接口的网络。对内部网络中主机发送到外部的分组,必须对私有IP地址进行转换。外部全局网络:与外部路由器相连的网络,无法识别私有IP地址。内部本地地址:私有IP地址,仅在内部网络内有效。这类IP地址离开内部本地网路前,必须转换成公有IP。内部全局地址:外部网络看到的内部主机IP

2021-08-29 16:20:08 1648

原创 golang:协程goroutine、管道通信channel

协程原先使用的进程线程,在进行切换的时候都要切换到内核态:在进程控制块PCB中保存中断现场,然后再将CPU恢复到下一个进程的现场。使用协程,可以将中断现场信息保存在用户空间,对内核来说是透明的。在切换协程的时候无需切换到内核态,大大地减少了开销。如下图,协程和线程是M:N的关系,效率高与否具体取决于协程调度器的调度。GMPG:表示goroutine协程。M:表示thread线程。P:表示processor处理器。当创建新的协程的时候,优先将其加入某一个processor处理器的本地队列,若

2021-08-27 23:16:54 654

原创 进程和线程的比较

进程线程调度的基本单位传统OS未引入线程的时候,进程作为独立调度和分派的基本单位,因此进程是能独立运行的基本单位。每次被调度的时候,都需要进行上下文切换,开销较大。在引入线程的OS中,已把线程作为调度和分派的基本单位,因而线程是能独立运行的基本单位。当线程切换时,仅需保存和设置少量寄存器内容,切换代价远低于进程。在同一进程中,线程的切换不会引起进程的切换,但不同进程中的线程切换,必然会引起进程切换。并发性不同进程间可以并发一个进程中的多个线程、不同进程的线程均可并发...

2021-08-26 15:33:19 170

原创 操作系统之进程通信:高级通信机制四大类

概述进程通信是指进程之间的信息交换。在进程同步之中,也需要进程间交换一些信息,所以也可以归入进程通信中,但只能称为低级的进程通信。因为进程同步间的消息交换效率低、对用户不透明。在进程间要传送大量数据的时候,可以使用OS提供的高级通信工具,该工具的最主要特点是:使用方便、高效。进程通信的类型目前,高级通信机制可归结为四大类:共享存储器系统、管道通信系统、消息传递系统以及客户机-服务器系统。共享存储器系统在共享存储器系统中,相互通信的进程共享某些数据结构或共享存储区,进程间能够通过这些空间进行通信

2021-08-25 22:18:58 9110

原创 golang:基础语法学习

包名每个go文件第一句是包名 package 包名若想要当前main作为项目的入口,则包名必须为main,即package main导包使用import "包名"// 导一个包import "fmt"// 导多个包 方式一import( "fmt" "time")// 导多个包 方式二import "fmt"import "time"注意:导入的包必须要在程序中使用,如果没有用到则会报错。声明变量单变量声明以下是四种方式定义变量,使用var定义。import "f

2021-08-24 14:08:38 383

原创 IPv4地址:编址方式的历史发展

1.分类编址

2021-08-23 13:45:05 1183

原创 初识 Golang

概述优点缺点Helloworld

2021-08-23 10:25:37 4299

原创 操作系统之进程同步:硬件同步机制、信号量、管程

前提:通过单处理机系统中的进程同步机制,保证程序执行的可再现性。基本概念进程同步机制的主要任务:对多个相关进程在执行次序上进行协调,使并发执行的进程之间能按照一定规则共享系统资源,并能相互合作,使程序的执行具有可再现性。制约关系进程共享系统中的资源,或为完成某一任务而相互合作,它们之间可能存在以下两种形式的制约关系。由于制约关系的存在,进程以什么样的速度运行,并不是由进程自身控制,这也是进程的异步性。间接相互制约关系:多个程序在并发执行时,需要使用如打印机的临界资源,必须保证多个进程间只能互斥

2021-08-22 18:52:44 2199

原创 自动重传请求协议 ARQ

概述是OSI中的数据链路层协议传统的自动重传请求分为三种:停止-等待 ARQ(stop and wait)、回退N帧 ARQ(go-back-n)、选择重传 ARQ(selective repeat)。优点:比较简单 。因而被广泛的应用在分组交换网络中。缺点:通信信道的利用率不高,即信道还远远没有被数据比特填满;需要接收方发送ACK,这样增加了网络的负担也影响了传输速度,通过重复发送数据包来纠正错误的方法也严重的影响了它的传输速度。停止等待 SW工作原理:发送方每次发送一个分组后,不马上删

2021-08-22 16:33:11 3534 1

原创 操作系统之进程控制:进程的创建、终止、阻塞与唤醒、挂起与激活

进程控制是进程管理中最基本的功能,主要包括创建新进程、终止已完成的进程、将因发生异常情况而无法继续运行的进程置于阻塞状态、负责进程运行中的状态转换等功能。进程控制一般由OS的内核中的原语来实现的。操作系统内核OS内核:通常将一些与硬件紧密相关的模块(中断处理程序…)、各种常用设备的驱动程序以及运行频率较高的模块(时钟管理、进程调度…),都安排在紧靠硬件的软件层次中,将它们常驻内存,即通常被称为OS内核。这种安排方式的目的:①便于对这些软件进行保护,防止遭受其他应用程序的破坏。②提高OS运行效率。区

2021-08-21 21:48:27 6113 1

原创 操作系统之进程的描述:进程状态转换、进程控制块 PCB

程序执行程序的执行方式有顺序执行和并发执行两种方式。程序顺序执行程序顺序执行时特征:顺序性:处理机严格按照程序所规定的顺序执行。封闭性:程序在封闭环境下运行,即程序运行时独占全机资源,资源的状态只有本程序才能改变它。程序一旦开始执行,其执行结果不受外界因素影响。可再现性:只要程序执行时的环境和初始条件相同,当程序重复执行时,不论从头到尾是否有停顿,都可获得相同的结果。缺点:虽然实现方便,但系统资源的利用率很低。程序并发执行前提:只有不存在前趋关系的程序之间才有可能并发执行。程序并发

2021-08-21 18:13:02 3495

原创 IP协议分组结构

概述网络层协议。提供不可靠、无连接的服务,依靠其他层的协议进行差错控制。IP协议分组结构头部长度:IP报头长度,最大为15个长度,每个长度为4字节。头部长度的范围是5-15单位,即20-60(字节)服务类型:第4-7比特分别代表:延迟、吞吐量、可靠性、代价。这四个比特服务类型中只能置其中一个比特为1,但可以全为0。总长度字段:表明整个数据段的长度,以字节为单位,最大65535字节。标识字段:唯一地标识主机发送的每一份数据包。标识字段的值使分片后各数据报片最后能正确的重装成为原来的数据报

2021-08-20 15:51:51 4161

原创 地址解析协议 ARP

概述出现场景:当电脑A发送一个地址请求访问电脑B的时候,首先会使用电脑A的子网掩码计算电脑A的子网号和访问地址的子网号,如果计算的子网号都是一致的,则说明要访问的电脑和电脑A都在同一子网,这时电脑A通过广播目的IP地址得到目的主机的MAC地址,然后在进行数据的传送。其中通过IP地址找到相应的MAC地址的过程,就是ARP协议的主要工作。前提:目的地址和发送地址在同一链路或网络,不能跨网络使用。作用:通过IP地址找到相应的MAC地址。ARP高速缓冲表功能:记录IP地址和MAC地址的对应关系,以及

2021-08-20 15:14:53 133

原创 计算机网络三种模型(OSI模型、TCP/IP模型、五层通用模型)、各层作用

层次划分国际化标准组织ISO划分七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。网络层次划分初衷:为了让世界各地计算机根据OSI参考模型构建网络,实现网络互联。一台联网计算机只要遵循OSI标准,就能与任意一台同样遵循同一标准的联网计算机进行通信。ISO划分规则:每一层可以使用下层提供的服务,并向其上层提供服务;同一结点内相邻层之间通过接口通信;不同结点的同等层通过协议来实现对等层之间的通信;网中各节点都具有相同层次;不同结点的同等层具有相同功能。其他模型:T

2021-08-19 21:13:29 6701 1

原创 常见的计算机网络性能指标

计算机网络的性能指标:性能指标可以从不同的方面来度量计算机网络的性能。速率:连接在计算机网络上的主机在数字信道上传送比特的速率也称为比特率或数据率。比特是数据量的单位,一个比特就是二进制的1或0。...

2021-08-19 16:23:44 1500

原创 初识操作系统

概述操作系统(OS)是配置在计算机硬件上的第一层软件。是现代计算机系统中最基本和最重要的系统软件,大量的应用软件(编译程序、数据库管理系统…)都直接依赖于操作系统的支持,取得它所提供的服务。操作系统位于应用软件之下,硬件之上,为应用软件提供服务支撑。主要作用是管理好这些设备,提高它们的利用率和系统的吞吐量,并为用户和应用程序提供一个简单的接口,便于用户使用。对上,操作系统是一个控制软件,能够管理应用程序、为应用程序提供服务。对下,操作系统能够对资源进行管理,管理外设、分配资源。操作系统需要权衡:

2021-08-18 22:28:32 2812

原创 百度-欢聚集团Joyy面经:22届 - Java开发实习生

笔试 0726单选+多选+一道编程+三道sql一面 0729自我介绍 掌握了哪些技术实习期间职责JavaSE和JavaEE的区别线程不安全和安全的集合类有哪些jdk1.8新特性Mysql索引了解吗?应该选择什么样的做索引?HTTP1.0和HTTP2.0的区别JVM垃圾收集了解吗?GC Root是如何选择的?虚拟机参数是在哪里配置的了解的Linux命令简单介绍一下ssmSSM和Springboot的区别二面 0803简单介绍一下自己和一个自己最熟悉的项目项目是在什么环境运行的

2021-08-12 15:42:16 308

原创 凡科面经:Java后台开发-校招

笔试 0810单选+多选+解答解答:输出50w个随机字符串 0-9组成 6-15位一面 0812 40minjava是多继承吗string可以被继承吗java基本数据类型有几种 4字节的有哪些如果要拼接多个字符串使用什么类线程安全集合和不安全集合concurrenthashmap8之后不使用synchronized可重入什么意思 有哪些类新生代的区有哪些 怎么回收full gc回收情况top命令堆栈分别存储什么 数组存储在堆还是栈堆栈会溢出吗 什么情况平时有配置过堆栈信息吗

2021-08-12 15:37:50 270

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除