自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试用Java知识点小结

Object类Object类主要方法equals hashcode notify(all) toString wait clone finalizeString类支持正则表达式的方法matches,replaceAll,replaceFirst,splitnew和""的区别常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包括了关于类、方法、接口等中的常量,也包括字符串常量。在常量池中存储字符串常量的内存空间,即字符串常量池,当需要

2021-09-28 10:52:55 222

原创 Go语言基础拾遗

杂项iota 值在枚举中从0开始逐行增加,即使有的行无iota也会增加go的指针、数组和切片定义中,*,[...],[] Type定义格式,特殊符号要放在类型前面,与C/Java不同基础数据类型数组与切片go不允许指针直接参与运算,但可以返回本地变量的指针,原理是返回时将局部变量分配到堆上,这一机制称为“栈逃逸”。数组与切片// 创建 arr := [...]int{1, 2, 3} // 数组一旦创建就是定长的 arr2 := [10]int{1, 2, 3}// 可以显式指定长

2021-09-01 15:20:02 217 1

原创 深入探讨线程池

一、线程池十问十答《阿里Java开发手册》中强调,线程资源必须通过线程池提供,而创建线程池必须使用ThreadPoolExecutor。手册主要强调利用线程池避免两个问题,一是线程过渡切换,二是避免请求过多时造成OOM。但是如果参数配置错误,还是会引发上面的两个问题。所以本节我们主要是讨论ThreadPoolExecutor的一些技术细节,并且给出几个常用的最佳实践建议。我在查找资料的过程中,发现有些问题存在争议。后面发现,一部分原因是因为不同JDK版本的现实是有差异的。因此,下面的分析是基于当下最常用

2021-08-30 14:42:26 273

原创 框架学习杂记

文章目录训练参数及其含义机器学习技巧及意义梯度累加(Gradient Accumulation)残差(residual)训练参数及其含义学习率(lr):梯度下降反向传播时的学习速率,可以通过不同分布生成变化的学习率weight_decay:实际上就是L2正则化向中的λ\lambdaλ机器学习技巧及意义梯度累加(Gradient Accumulation)在GPU内存被限制的时候,使用相对小的batch进行训练,但不在每个batch训练完成后更新参数,而是在若干个batch完成后,一次性更新参

2021-08-04 14:02:40 331

原创 redis基本操作与Java连接

基本信息与操作redis支持5种基本数据类型:字符串、哈希表、有序列表、无序集合和有序集合。字符串最典型的数据结构,以KV方式存储:> set iamkey iamvalue> get iamkey> del iamkeyset成功时打印OK,get成功返回值,del成功返回key值映射的元素数(在字符串中,value数量永远是1)Redis一个键能存储的value最大为512MB哈希表哈希表适用于存储对象,在key-哈希表的键值对下存储键值对(俄罗斯套娃)。一

2021-06-15 16:02:34 125

原创 Random walk算法及其各种延伸、应用笔记

Random Walk随机过程中定义的随机游走是每过一个单位时间,游走点固定向左或向右移动一个单位推广到多维,一般情况下是:对于点x0∈RNx_0\in R^Nx0​∈RN,每个单位时间内:随机生成一个n维向量uuu将其标准化为u′=u∑i=1nui2u'=\frac{u}{\sqrt{\sum_{i=1}^nu_i^2}}u′=∑i=1n​ui2​​u​以可变步长λ\lambdaλ为幅度进行一次随机游动,即x1=x0+λu′x_1=x_0+\lambda u'x1​=x0​+λu′对于图

2021-04-06 14:13:03 3514 1

原创 多线程进阶 Java的锁及其实现

Lock接口基本API:队列同步器(AQS)AQS是构建锁或者其他同步组建的基础框架,它使用一个volatile int成员变量表示同步状态,内置一个队列来完成资源获取线程的排队工作。对状态的修改主要使用getState(),setState(int newState),compareAndSetState(int expect,int update),从而保证状态改变安全。 支持共享和独占的同步AQS主要可重写的方法:同时,同步器也提供了模板方法,用于在重写同步状态获取模式后,提供同步器的

2021-03-23 18:23:22 186

原创 深入理解JVM(3) 虚拟机类加载模式

类加载的生命周期有且只有以下需要立即初始化的情况:用new实例化对象时、读取或设置一个直接定义(非继承)的类型的静态非常量字段时、调用类的直接定义(非继承)的一个静态方法时使用java.lang.reflect包的方法对类型进行反射调用的时候,如果类型没有进行过初始化,则需要先触发其初始化(-XX:+TraceClassLoading参数也会导致子类加载)初始化子类时要先初始化父类先初始化带main的主类当使用JDK 7新加入的动态语言支持时,如果一个java.lang.invoke.Met

2021-03-23 00:22:09 90

原创 深入理解JVM(2) 垃圾回收机制原理

GC的基本思想C++的内存回收机制是依靠程序员手动实现的,但是面对智能指针循环引用的情况也需要一些特殊机制才能解决,Java中循环引用的情况也相当复杂,所以垃圾回收机制的基本思路都是通过可达性分析实现的。这个算法的基本思路就是通过一系列称为“GC Roots”的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,搜索过程所走过的路径称为“引用链”(Reference Chain),如果某个对象到GC Roots间没有任何引用链相连,或者用图论的话来说就是从GC Roots到这个对象不可达时,则

2021-03-21 15:38:10 877

原创 linux基础知识与命令行(1)常用基础命令

ls具体参数可用man查看,ls匹配特定文件名的时候可用一部分正则表达式匹配:?代表一个字符*代表任意个字符[abc]代表匹配a或b或c[!a]代表不匹配a[a-d]代表匹配a到d的字符touch可以创建一个大小为0的文件cp基本用法 cp src dest当source和destination参数都是文件名时,cp命令将源文件复制成一个新文件,并且以destination命名。新文件就像全新的文件一样,有新的修改时间。...

2021-03-15 14:23:29 87

原创 深入理解JVM(1) Java内存模型

内存分块两个区分点:运行时数据区与代码区、线程共享数据区与线程隔离数据区heap是共享的,VM stack是线程隔离的私有内容如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是本地(Native)方法,这个计数器值则应为空(Undefined)VM stack的生命周期与线程相同。VM stack有局部变量表,记录局部变量、引用和返回地址,double和long(它们的长度为64bit)占2个slot,其余占1个,但slot则是不定长的

2021-03-05 22:12:01 84

原创 matlab笔记(1) 矩阵相关函数拾遗

创建串联和扩展对矩阵进行范围外的赋值可以扩展,其他位置用0填充find接受基于每个元素的布尔表达式,并返回满足条件的索引列向量(这也意味着,矩阵也可以用一维索引访问)isempty返回判空的布尔表达式magic接受size参数,用于产生魔方矩阵,行列与对角线的和相等horzcat和vertcat可以在水平方向和数值方向上拼接矩阵删除&修改对指定的行列赋值为[]即可删除对应行列:重构&重排reshape(Mat,a,b,c,...)首先接受一个矩阵,再接收各个维度

2021-02-12 23:04:49 145

原创 数学建模学习(1) 线性规划

使用numpy+scipy编写经典线性规划经典线性规划可被描述为下列问题:min cTxsuch that Aubx≤bubAeqx=beql≤x≤umin\ c^Tx\\such\ that\ A_{ub}x\leq b_{ub}\\A_{eq}x=b_{eq}\\l\leq x\leq umin cTxsuch that Aub​x≤bub​Aeq​x=beq​l≤x≤u其中x,c,l,u都是n维向量,A是(m,n)矩阵,.

2021-01-26 14:32:00 958

原创 计网笔记(8) 网络安全

对称密钥算法使用同样的的密钥进行加密和解密

2021-01-23 14:51:54 138

原创 计网笔记(2) 物理层

数据传输的定理Nyquist定理(理想条件):最大数据传输率=2Blog2V2Blog_2V2Blog2​V(bit/s),B是单位为Hz的带宽香农定理(基于信噪比):maximum number of bits/sec = Blog2(1+SN)log_2 (1+\frac{S}{N})log2​(1+NS​),S/N并被称为信噪比,单位是分贝。数字信号调制和复用方法数字数据->数字信号:RZ:每个周期中间归零NRZ:正常编码NRZI:信号反转代表0,不反转代表1Manc

2021-01-21 16:17:13 147

原创 LKD 文件系统部分

内存操作系统原理的frame就是下图定义的linux物理页page被分为zones:使用alloc_page()或alloc_pages()获取页(struct page*) ,而用void* page_address(struct page* page)返回页的逻辑地址kmalloc/kfree:内核用于申请和释放内存的方法,返回的是连续的逻辑内存vmalloc:类似,但不是连续的buddy system allocator:管理物理连续的大块内存的机制,以frame为单位课件:从

2021-01-13 14:03:03 424

原创 (13)IO系统

I/O Hardware通用概念:portbuscontroller(连接bus和host CPU)IO设备具有地址,可用于特殊IO指令Memory-mapped I/OIO Port Registers四种概念寄存器:Data-in: read by the host to get input,CPU从IO设备中读数据Data-out: written by the host to send output,CPU向设备中写数据Status: device status r

2021-01-12 16:22:34 126 1

原创 solidity笔记

合约之前pragma solidity >=0.4.25 <0.7.0;指定版本import "./ConvertLib.sol";:导入库合约内容contract CName{ ...}合约本体constructor() public { ... }是合约的构造器,这里面的msg.sender就是合约的创建者。modifier用于参数校验引用类型array,struct,mapping异常处理require(条件,'打印错误字符串')可见性ext

2021-01-12 14:08:20 103

原创 (12)大容量存储系统(Mass-Storage Systems)

Disk Structure结构与术语:数个platter中的同一半径长的一圈构成了一个cylinder(圆柱面)每个sector存储了固定数量的数据(但是长度不同)磁盘驱动将磁盘映射为1维数组,是logical block最里面的第一个sector是第0号扇区,存储关键信息Disk AttachmentNetwork-attached storage (NAS) is storage made available over a network rather than over a loc

2021-01-05 18:58:47 696

原创 计网作业(传输层)

1.2.3.4.D5.D???

2020-12-06 16:49:01 228

原创 操作系统笔记(9):Virtual Memory

重点demand paging:请求式分页页替换算法allocation of page framesThrashing背景虚存用户使用的逻辑内存和物理内存之间的媒介,它的一部分在内存,一部分在交换区可以使得逻辑地址大于实际地址可以使多个进程共享地址空间通过共享进程地址空间,可以使得进程创建更高效(COW,懒加载)虚地址空间典型的虚地址空间往往中间的hole的比例是非常大的,所以将虚地址到实际地址做映射是有意义的。hole往往可以映射到磁盘交换区对应的虚存。另外,两个进程

2020-12-01 17:27:48 135

原创 计网笔记(7) 应用层

文章目录一、DNS协议域名服务器域名解析过程一、DNS协议最上面的是根服务器,没有对应的名字。下一级节点就是最高一级的顶级域名。顶级域名可往下划分子域,即二级域名,之后可以依次往下划分:域名服务器一个服务器管辖的范围叫做区(zone),每个取设置相应的权限域名服务器,用来保存该曲中所有主机的域名到IP地址的映射。DNS服务器的管理单位是区而不是域,但是区必定小于等于域,区是域的子集。具体结构如下:从图中可以看出,域名服务器可划分为4部分:根域名服务器:最该层次的域名服务器,本地域名服务器

2020-12-01 13:15:47 128

原创 计网笔记(6) 传输层

上课内容用于在不可靠网络中建立可靠链接网络层的复用,让多个应用层应用使用一个网络连接(通过端口及其相关机制区分)服务原语简单传输层服务的原语:服务原语的使用:TCP的socket原语(Berkeley Socket)这里的accept相当于之前的listen,...

2020-11-24 09:54:45 474

原创 操作系统(8):内存管理

文章目录背景交换(swapping)连续相邻内存的分配(Contiguous Memory Allocation)背景CPU只能,访问到寄存器和内存CPU存在L1,L2,L3的cache,L4实际上指的是主存交换(swapping)连续相邻内存的分配(Contiguous Memory Allocation)...

2020-11-12 17:25:20 394

原创 GNS3命令与踩坑

asd

2020-11-12 13:53:35 684

原创 Java基础(4) 线程(Threads)与并发

课上内容线程的生命周期调用start前不参与调度只有在run结束后,该线程才会结束(不会被强制关闭)yield()有让的意思,指正在运行的程序主动让出CPU。线程操作其中sleep和yield是静态成员函数,这意味着sleep和yield只能对当前正在运行的线程起作用函数的synchronized当函数所有的操作都需要被同步,并且它的key是this时,可以为函数加synchronized关键字。解决死锁的方案是放弃synchronized??...

2020-11-11 20:05:19 227 2

原创 Linux的进程调度

Linux是preemptive multitasking(抢占式多任务)类型的操作系统。表示系统会主动中断任务,并切换到另一个任务。另一种方法是Cooperative multitasking调度策略需要平衡:进程响应时间和CPU利用率linux设计的初衷是提升响应速度(降低延时),倾向于提供更多交互性的IO-bound process。时间片太长导致交互性下降,太短提升cpu的overheadIO-bound喜欢短,CPU-bound喜欢长基于priority的时间片分配但是一般优先

2020-11-05 15:39:33 100

原创 equals与==的区别

首先,“==”的比较方法是比较两个对象的内存地址(因为java只有引用对象),如果二者相同则意味着==返回true.之后,Java源码的Object类的equals函数如下:public boolean equals(Object obj) { return (this == obj);}这表明了对于Object类,以及所有继承树中没有重写过equals方法的类,equals和==的作用是相同的。而String和Integer等的类重写了equals方法,所以它们的equals的作用以重写

2020-11-04 19:51:50 61

原创 操作系统笔记(7)死锁

1. The Deadlock Problem2. System Model资源类型(resource type):R1,R2,...,RmR_1,R_2,...,R_mR1​,R2​,...,Rm​例如CPU cycle,内存空间,IO设备认为每个资源类型Ri拥有Wi数量的实例,这些实例被process利用每个进程使用一系列的protocol利用这些资源类型的实例:requestuserelease3. Deadlock Characterization如果以下情况同时发生,死锁就

2020-10-29 15:35:11 664 1

原创 计网笔记(5) 网络层

IP 协议是无连接协议单位是包/分组(packet)。上图是IPv4中包的header的结构图version:v4或v6Differenctiated services:指指定的优先级,可靠性等Identification:指DatagramID,是这个包所属datagram唯一的身份Fragment offset:是fragmentID,将上层的message分包,包号就是这个ID。DF,MF:Dont Fragment(不要分段),More Fragment(要分段)。这样设置的原因

2020-10-27 12:52:35 372

原创 计网与操作系统习题(3)

计网1.A group of N stations share a 56-kbps pure ALOHA channel. Each station outputs a 1000-bit frame on an average of once every 100 sec, even if the previous one has not yet been sent (e.g., the stations can buffer outgoing frames). What is the maximum v

2020-10-25 11:22:44 4610

原创 Java native关键字

含义与用途native关键字修饰的方法(只能用于修饰方法)表明这些方法是本地化的方法,也即不是在源码中实现,而是在更底层的途径(如c/c++编写的dll文件等等)。被native关键字修饰的方法不需要在源码中编写实现,而是由编译器在系统库中寻找对应的实现。显然这样的写法是通过低层次的语言加速一些操作的处理速度,大多用于系统类库,但也可以自行编写并引用自己的native调用。详情可以参考博客自己实现一个Native方法调用。...

2020-10-24 00:53:09 104

原创 Java源码阅读与理解(1):二进制IO流篇

文章目录0. 前言0. 前言

2020-10-24 00:31:08 564

原创 计网与操作系统习题(2)

计网1.18 signals, each requiring 1000 Hz, are multiplexed on to a single channel using FDM. How much minimum bandwidth is required for the multiplexed channel? Assume that the guard bands are 100 Hz wide.ans:N个信号要使用N-1个保护带,所以共需要100018+10017=19700HZ2.C

2020-10-21 13:19:59 1082

原创 操作系统笔记(6) 进程同步(Process Synchronization)

1. Background对共享数据的并发访问会导致数据不一致性(数据的处理结果与人规定的既定规则下的结果不同)

2020-10-20 19:22:36 710

原创 计网笔记(4) Media Access Sublayer(MAC层)

文章目录1. 信道类型2. ALOHAPure ALOHA(类似对讲机使用的技术,抢占信道式,)效率情况Slotted ALOHA(时隙ALOHA)效率3. CSMA(Carrier Sense Multiple Access,载波侦听多路访问)CSMA/CD(CSMA with Collision Detected)冲突检测的方法802.3 & Ethernet!!!802.3帧格式Binary Exponential Backoff Algorithm(二进制指数重发算法)Switched Et

2020-10-20 11:50:05 406

原创 Java基础(3) 异常与IO

可以探究一下:JVM默认的最大内存占用是多少1. 异常部分try内可能有多个大括号,对于throw和这些大括号的交互:exception的匹配在一系列的catch中,处于上层的异常不能是下面异常的祖先类,否则就会报错故而正确的方法是,上层的异常是继承树中的近叶节点,上下层也可以是无关的或同层次的节点throws的声明可以吹牛但不能瞒报可以在函数前声明抛出很多异常,但在函数内部可以一个不抛出它们但是,所有调用声明抛出一些异常的函数,必须能够处理这些异常,如果无法处理,就只能更.

2020-10-19 20:07:38 144

原创 gnuplot学习笔记

最简单的2D绘图plot sin(x)

2020-10-18 21:55:42 129

原创 gnuplot绘图备份

# 格式确定信息# put fig file, $2 input data file, $3 x-axis specs, $4 y-axis specs, $5 plot line specs, $6 key specs (optional)# X-Axis Specs: column, label, x_tics (colon-separated or 'usecol' or 'none'), x_tics_column, logscale, format (x_tics_column, logsc

2020-10-18 21:55:16 271 1

原创 计网与操作系统作业(3)

计网1.ans:使用多项式除法,可以得到商、余,用bit string表示多项式即可2.A channel has a bit rate of 4 kbps and a propagation delay of 20 msec. For what range of frame sizes does stop-and-wait give an efficiency of at least 50 percent?ans:4*20/0.5 = 160,delay中能传80bit,所以50%效率的

2020-10-17 16:08:01 3183

空空如也

空空如也

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

TA关注的人

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