自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Power of N(N=2/3/4)

1、power of 2解法一:利用int范围内最大的2的整数次幂,跟n做%运算,如果能被整除,说明n是2的整数次幂解法二:我们知道二的整数次幂的一个特征(对于一个正数),二进制表示中只有一个‘1’。而n&(n-1)恰好消除最低位的‘1’.public boolean isPowerOfTwo(int n) { if(n<=0) return false...

2018-09-11 09:19:29 482

原创 Bit Watch

题目:略思路:本题的实质在于,在一个集合中选取算法的实现。可以将亮灯的数量,分为两个部分:小时灯的数量、分钟灯的数量难点:集合中选区一定数量的元素的实现(递归),递归函数的参数有:需要选取的集合,最后输出返回的集合, 递归结束的标志,递归中循环的起始位置,放入返回集合的中间存储变量。详情见代码。code:import java.util.*;class Solution {...

2018-09-10 11:02:11 233

转载 String StringBuffer StringBuilder

转载自:http://www.cnblogs.com/dolphin0520/p/3778589.html探秘Java中String、StringBuilder以及StringBuffer  相信String这个类是Java中使用得最频繁的类之一,并且又是各大公司面试喜欢问到的地方,今天就来和大家一起学习一下String、StringBuilder和StringBuffer这几个类,分析它们的...

2018-09-02 11:41:25 175

原创 Java的伪泛型

【参考】https://www.cnblogs.com/dcz2015/p/5356146.html 问题1:对于带有泛型的java文件编译得到的class文件,反编译,结果还是带有泛型。 【参考】https://blog.csdn.net/liboyang71/article/details/72772583 问题2:package bigIntT;import static ...

2018-09-02 10:59:25 766

原创 二进制运算基础

1、十六进制的表示 例子: 0xaa | 0x55。 将十六进制表示进行二进制运算,首先要把十六进制表示成二进制。规则是,两个十六进制位等于一个字节(8个二进制位),其实就是一个十六进制位占4个二进制位。 对于0xaa中的a为十进制中的10,用二进制表示就是1010,所以0xaa用二进制表示就是10101010.同理对于十六进制的5,也就是十进制的5,用二进制表示就是0101,所以0x55用...

2018-09-01 21:28:45 5584

转载 Java是不是面向对象的程序

转载自:https://blog.csdn.net/a21700790yan/article/details/80129053 Java——是否确实的 “纯面向对象”?让我们深入到Java的世界,试图来证实它。在我刚开始学习 Java 的前面几年,我从书本里知道了 Java...

2018-09-01 16:34:15 253

原创 位操作(Bit Manipulation)—— Sum of Two Integers

目录题目:思路:解法补充题目:用二进制实现两个整数相加,但是不使用+思路:这是一道二进制加法实现的题目,我们知道数字的每一位加法都包含了该位本身的两个数和一个Carry位,那么我们能否把这分成两个过程呢?只计算对应位置相加和只计算carry位,如 343 + 567 = 800(只计算对应位置),343 + 567 = 0110(只计算carry位),最终结果位 8...

2018-09-01 14:15:09 120

原创 Java Integer的相关蹊跷

问题一 Integer的装箱拆箱问题【参考】Integer的装箱和拆箱Integer a = 1;Integer b = 2;Integer c = 3;Integer d = 3; Integer e = 321;Integer f = 321; Long g = 3L;Long h = 2L; System.out.println(c == d);System...

2018-09-01 14:00:43 157

原创 位操作(Bit Manipulation)—— Single Number 2/3

目录Single Number 2 :思路:难点:code:Single Number 3 :思路:难点:code:补充:Single Number 2 :给定一个非空的整数数组,每个元素都会出现三次,只有一个出现一次。找到那个只出现一次的元素思路:对每一个位上出现的所有元素的1的个数统计,如果是出现三次的数,那么模3的结果为0;如果是出现1次的...

2018-09-01 10:26:51 396

原创 5.2 用户数据报协议UDP

5.2.1概述UDP只是在IP的数据报服务之上增加在很少的功能,就是复用和分用的功能以及差错检测的功能。其主要特点:1)UDP是无连接的,2)UDP是尽最大努力交付的,3)UDP是面向报文的。ps:关于UDP是面向报文的理解,UDP对应用层交下来的报文,只加上首部,就交给IP层传输。所以应用层在使用UDP协议的时候,需要注意报文的长度,因为,如果报文太长,IP层会因为需要分片而降低效率...

2018-08-30 15:26:55 191

原创 5.1运输层协议概述

5.1.1进程之间通信网络层为上层提供逻辑通信,而应用层为上层提供端到端的逻辑通信。5.1.2 使用tcp和udp的应用层协议osi规定的运输协议数据单元TPDU在tcp和udp中分别称之为TCP报文段和UDP用户数据报。udp用户数据包协议:不需要建立连接,也不需要任何确认,但是有时却是最有效的工作方式;tcp传输控制协议:tcp不提供广播或多播服务。tcp提供可靠的、面向连...

2018-08-29 21:01:03 386

原创 位操作(Bit Manipulation)—— Binary Number with Alternating Bits

目录题目:思路:要点:解法:题目:给定一个正整数,检查它是否有交替位:也就是说,两个相邻位是否总是有不同的值。思路:一、检查一个位是0还是1的同时,与保留状态比较。二、构造一个跳动信号,每次循环跳动,并且与输入数字比较更多思路参考:0/1交替要点:1、使用思路一时,我们知道逐一检查一个数字的各个位有两种方法,一是令flag = 1,将flag左移,与...

2018-08-29 12:12:17 152

原创 位操作(Bit Manipulation)—— Number Complement

目录题目:思路:要点:1、如何计算取反?2、如何计算掩码?3、如何计算上述valid(num最高位1所在的位置)?解法:题目:略思路:首先计算取反的结果,然后计算掩码,最后将两者相与。要点:1、如何计算取反?利用运算符 ~2、如何计算掩码?首先计算num最高位1所在的位置,valid;然后利用mask = (1<<vali...

2018-08-29 10:49:27 210

原创 位操作(Bit Manipulation)—— Hamming Distance

目录题目:思路:要点:1、如何计算整数的二进制表示中有几个1?解法:补充:1、负数的二进制表示方法2、将1左移多少次会变成0?3、位运算的优先级题目:略;思路:先将输入的两个数做异或运算,得到结果n,再统计n二进制序列中有几个1.要点:1、如何计算整数的二进制表示中有几个1?方法一:解释见方法注释;注意这里对1进行左移运算,而不是对n...

2018-08-29 09:41:43 175

原创 4.3划分子网和构造超网

4.3.1划分子网1、从两级IP到3级IP早期IP地址的设计不合理:1、IP地址的利用率很低:A、B、C三类IP地址所包含的主机数量不够灵活。 2、给每一个物理网络分配一个网络号,会使路由表变得太大,网络性能变坏:每一个路由器应该能够从路由表查出怎么样到达其他网络的下一跳路由器。这会使得,路由表中的项目很多,路由器之间定期交换的路由信息也急剧增加。 3、两级IP不够灵活:想办法使得...

2018-08-23 14:17:03 1226

原创 4.2网际协议IP

互联网的设计思路是这样的:网络层只向上提供简单灵活的、无连接的、尽最大努力交付的数据报服务。这里所讲的都是IP的第四个版本,即IPv4,版本1~3以及版本5都是未曾使用过的。与IP协议配套的三个协议:地址解析协议ARP 网际控制报文协议ICMP 网际组管理协议IGMP4.2.1虚拟互联网络1、连接网络的中间设备物理层使用的中间设备,叫做转发器 数据链路层使用的中间设备,...

2018-08-23 10:18:50 218

原创 3.4扩展的以太网

这里分别讨论物理层和数据链路层对以太网的扩展,所以扩展的以太网在网络层看起来仍然是一个网路。3.4.1在物理层的扩展使用光纤可以扩展主机和集线器之间的距离。 使用多级集线器,可以连通多个集线器通信,并且扩大了以太网的范围。多级集线器的缺点:对于三个吞吐量均为10Mbit/s的星型以太网,如果不连接,总的吞吐量为30Mbit/s;如果通过一个主干集线器连通,会导致三个碰撞域合并,总的吞吐...

2018-08-22 11:00:23 1699

原创 3.3使用广播信道的数据链路层(下)

3.3.3使用集线器的星状拓扑1、星型拓扑结构的组成,中间是一个集线器,每个站都有两个双绞线与集线器相连,分别用于上传和下载。2、双绞线的绞合度非常重要,复杂有效的绞合可以减少失真并减小干扰。3、集线器内部使用电子元器件模拟电缆线的作用,使用集线器的以太网在逻辑上依然是一个总线网,各站使用逻辑上的总线,使用的还是CSMA/CD协议。4、集线器工作在物理层,只进行简单的转发,不做碰撞...

2018-08-22 10:00:55 318

原创 3.3使用广播信道的数据链路层(上)

3.3.1局域网的数据链路层现在,以太网几乎成为了局域网的同义词,局域网的主要特点是:网络为一个单位所有,且地理范围和站点数目均有限。共享信道的方法:静态划分信道,如前面介绍的时分复用、波分复用、频分复用和码分复用。用户一旦分配到信道,就可以无冲突的通信。但是这样的划分代价太高,不适合局域网使用。 动态媒体接入控制,又称多点接入,其特点是信道并非在用户通信的时候固定分配给用户。 随...

2018-08-21 21:28:14 682

原创 3.2点对点协议PPP

对于点对点链路,PPP是目前使用最广泛的数据链路层协议。PPP就是用户计算机和ISP进行通信时所使用的数据链路层协议。3.2.1PPP协议的特点1.PPP协议应该满足的需求简单:IETF在设计互联网体系结构时,把最复杂的部分放在了TCP协议中,网际层协议IP相对简单,而数据链路层没有必要提供更复杂的功能。 封装成帧 透明性 多种网络层协议:PPP必须能够在同一条物理线路上同事支持...

2018-08-20 12:04:36 1961

原创 3.1使用点对点信道的数据链路层

数据链路层使用的信道主要有一下两种:点对点信道、广播信道。不同段的数据链路层可能使用不同的数据链路层协议。3.1.1数据链路和帧链路:从一个节点到另外一个节点的物理线路(有线的或者无线的);数据链路:物理链路+通信协议。把实现这些通信协议的硬件或者软件加到链路上,就构成了数据链路。最常用的要数使用网络适配器来实现这些协议。帧:点对点信道的数据链路层的协议数据单元。3.1.2 三...

2018-08-20 10:42:46 1506

原创 2.5数字传输系统&2.6宽带接入技术

2.5数字传输系统早期数字传输系统的两个缺点:速率标准不统一、不是同步传输;1、同步光纤网络SONET。整个同步光纤网络的主时钟来自于一个非常昂贵的铯原子钟;其基础传输速率是51.82Mbit/s,此速率对电信号称为第1级同步传送信号,即STS-1;对光信号称为第1级光载波,即OC-1。2、同步数字系列SDH(以SONET为基础),一般认为SDH和SONET是同义词,不同点在于 SDH...

2018-08-10 16:47:47 1445

原创 2.4信道复用技术

2.4.1 频分复用、时分复用和统计时分复用频分复用(FDM)用户在同样的时间占用不同的带宽资源;时分复用(TDM)用户在不同的时间占用相同的频带宽度。TDM帧:采用时分复用时,将时间划分为一段段等长的时分复用帧,每一个时分复用用户在TDM中占有固定序号的时隙。TDM信号又称为等时信号。时分复用的利用率问题:当某用户暂时没有数据发送,在TDM帧中分配给该用户的时隙只能处于空闲状...

2018-08-10 14:14:10 1442

原创 2.2数据通信的基础知识

2.2.2有关信道的几个基本概念信道一般都是用来表示向某一个方向传送信息的媒体。因此一条通信电路往往包含一条发送信道和一条接收信道。 三种基本的信息交互方式:(1)单向通信(单工通信),只有一个方向的交互,没有反向交互;(2)双向交替通信(半双工通信),通信双方都可以发送消息,但是不能同时发送;(3)双向同时通信(双工通信),双方可以同时发送。 来自信源的信号常称为...

2018-08-09 16:39:50 504

原创 1.7计算机网络体系结构

1.7.2 协议与划分层次一、分层可以带来的好处1、各层之间是独立的,易于实现和维护。每一层只需要实现一种相对独立的功能,因此可以将复杂问题分解。2、灵活性好。当任何一层发生变化时,只要接口发生不变,其他层不受影响;另外各层都可以以最合适的方式实现。3、能促进标准化工作。二、各层的主要功能差错控制                     使相应层次对等方的实现更加可靠流...

2018-08-09 11:59:40 364

原创 1.6计算机网络的性能

1.速率网络技术中的速率一般是指数据的传送速率,也称数据率或者比特率,单位是bit/s(bps),当提到网络的速率时,往往指的是额定速率或标定速率。2.带宽网络带宽是指在单位时间内网络中的某信道做能通过的“最高数据率”,单位也是bit/s.3.吞吐量吞吐量表示在单位时间内通过某个网络(信道、接口)的实际数据量。举例来说,一个1Gbit/s的网络,即额定速率时1Gbit/s,这也...

2018-08-05 17:41:41 1365

原创 1.5计算机网络的类别

1.5.2几种不同类别的计算机网络1.按照网络的作用范围进行分类(1)广域网WAN(Wide Area Network),有时也成远程网,其各节点交换机的链路一般都是高速链路,具有较大的通信容量(2)城域网MAN(MetroPolitan Area Network),作用范围跨街区或覆盖整个城市,其作用范围约为5~50km。(3)局域网LAN(Local Area Network)...

2018-08-05 16:40:13 221

原创 1.3互联网的组成

边缘部分 由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信和资源共享。核心部分 由大量网络和链接这些网络的路由器组成。这部分是为边缘部分提供服务的。1.3.1 互联网的边缘部分端系统:互联网边缘部分中,连接在互联网中的所有主机,这些主机又被成为端系统。互联网之间的通信:主机A上的某个进程和主机B上的另一个进程进行通信。端系统之间的通信方式:客户-服务器方式(...

2018-08-04 16:16:35 929

原创 1.2 互联网概述

1.2.1 概念计算机网络由若干个节点和连接这些节点的链路组成。计算机网络中的节点可以是 交换机、路由器、集线器、计算机等。互联网是网络的网络,网络直接利用路由器连接起来,形成覆盖范围更大的网络,成为互联网。与网络相连的计算机通常称为主机。网络把许多计算机连接在一起,互联网把许多网络通过路由器连接在一起。与网络连接的计算机常称为主机。1.2.2 三大发展阶段第一阶段19...

2018-08-03 17:14:25 393

原创 2019年秋招前

    最近忙于应付校招,在加紧知识点的复习。可惜越复习,越觉得寒酸,甚至找不到一点优势。    本人985学校本科,后来考了母校的专硕,非计算机专业。硕一主要时间都花在2个arcgis add-ins 开发的项目上了,用的是c#,老师的项目。现在想起来,实在是当时目光短浅,明明想去互联网公司做研发,却没有充分的调研,大好时光白白浪费。找实习的时候面试被问起来,你的项目有什么难点,竟然垭口无言...

2018-07-22 20:15:20 1276

原创 约束

1、约束提供了一种强大而简易的途径来保证数据库中数据的完整性2、数据完整性的三种形式实体完整性保证表中有一个主键域的完整性保证每列的值满足特定的条件参照的完整性保证两张表之间的关系3、几种约束Primary Key、Unique Key、Foreign Key、Default4、约束与索引约束更是一个逻辑的概念、用来保证数据的完整性。索引是一个数据结构,既有逻辑上的概念,在数据库中还代表着物理的存...

2018-07-14 18:44:09 145

原创 MyISAM与Innodb

1、对事物支持的不同:MyISAM不支持事务,Innodb支持事务2、锁机制的不同,MyISAM支持表锁,Innodb支持行锁3、索引机制不同,MyISAM天生非聚簇索引,Innodb是聚簇索引4、查询效率上MyISAM更胜一筹5、count(*),MyISAM可以直接返回,Innodb需要遍历...

2018-07-14 17:47:48 106

原创 数据库知识总结

1、三大范式第一范式:字段不可分,比如不能将父亲母亲整体作为一个单元素 第二范式:非主键字段必须依赖主键,即出了主键值外不能存在另外一种可能存在的主键字段,一个团队只能有一个领导。主键一旦确定,非主键字段就只能跟着主键变化。课程不依赖于学号 第三范式:非主键字段不能相互依赖,即非主键两个字段不能是一个整体(只需要一个字段就能表达),如年龄和出生日期可以表示一个性质,只需要一个就可以点击打开链接2、...

2018-07-14 17:38:04 107

原创 MySQL基础知识 插入、删除

1、插入多条insert into cust_info(cust_name,    cust_tele,    cust_address)values(    'Pep E',    '15988888888',    'shanghai'),values(    'M.Martian'    '17799999999',    'beijing');2、insert se...

2018-07-13 10:42:32 182

原创 MySQL基础 函数

1、文本处理函数Soundex()对字符串进行发音比较的函数select name,contact from person_info where Soundex('Y.Lee')=Soundex(name)\g2、日期处理函数注:首选的日期格式是‘1900-11-03’示例:可靠的检索某一天的记录(用Date(...)提取日期) select name from person_info where...

2018-07-12 11:31:49 228

原创 MySQL基础知识 查询

1、DBMS与数据库,DBMS是操纵数据库的软件,数据库是存放数据的容器,MySQL是一种DBMS2、模式(scheme):关于数据库和表的布局和特性信息3、基于共享文件系统的DBMS:Access、FileMaker;基于客户端和服务器的DBMS:MySQL、Oracle、SQLServer4、MySQL命令行:用;或者\g标志语句结束,仅仅按enter键,不会执行语句;quit、exit用于退...

2018-07-12 10:31:32 193

原创 4、跳跃表

概念跳跃表是一种有序的数据结构,它通过在每个节点维护多个指向其他节点的指针,以达到快速访问的目的。跳跃表支持平均O(logN)最坏O(N)的复杂度查找节点。大多数情况下,其性能可以和平衡树媲美。跳跃表是有序集合键的底层实现之一,如果有序集合键包含的元素较多,或者成员是比较常的字符串的时候。Redis只有两个地方使用到了跳跃表:有序集合键、集群节点中用作内部数据结构。结构描述描述节点相关信息的zsk...

2018-07-11 20:18:10 134

原创 3、字典

概念一种用于保存键值对的抽象数据结构。又常被称作 符号表、关联数组、映射。Redis的数据库就是使用字典作为底层实现的、字典还是哈希键的底层实现之一。实现由于字典底层是有哈希表(分清哈希表和哈希键)实现,首先介绍哈希表1、哈希表typedef struct dictht{    dictEntry **table;        //指向哈希表数组    unsigned long size;...

2018-07-11 18:10:20 91

原创 2、链表

链表节点和链表链表节点typeof struct listNode{struct listNode *prev; //前置节点struct listNode *next; //后置节点void *value;        //节点的值}链表typeof struct list{listNode *head;                    //头结点listNode *ta...

2018-07-11 17:00:09 70

原创 1、简单动态字符串

参考书本 《Redis设计与实现》SDS的概念Redis没有直接使用c语言中的字符串,而是自己定义了一种简单动态字符串(SDS)的抽象类型,SDS作为redis的默认字符串表示SDS的结构    SDS的由三部分组成,分别为:保存字符串长度的int len,保存未使用字节数量的int free,存储字符串的字节数组。如下:struct sdshdr{    int len;        //b...

2018-07-11 16:43:17 1438

空空如也

空空如也

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

TA关注的人

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