自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(285)
  • 问答 (2)
  • 收藏
  • 关注

原创 Java:接口与抽象类

接口是抽象方法的集合,接口通常以interface来声明。一个类通过实现接口的方式,从而来继承接口的抽象方法。 -除非实现接口的类是抽象类,否则该类要实现接口中的所有方法。  接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法(所有方法都是抽象的方法),否则就必须声明为抽象类。 接口没有构造方法,支持多重继承,不能包含成员变量,除了static和final变

2017-09-27 17:31:26 691

原创 Java:switch参数

在jdk 7 之前,switch 只能支持 byte、short、char、int 这几个基本数据类型和其对应的封装类型。switch后面的括号里面只能放int类型的值,但由于byte,short,char类型会自动转换为int类型(精精度小的向大的转化),所以它们也支持。 对于精度比int大的类型,long、float、double,不会自动转换成int。要想使用就得加强转如(int)long。

2017-09-27 17:08:57 673

原创 Java:override重写与overload重载

override重写重写是子类对父类的允许访问的方法的实现过程进行重新编写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。 重写规则:参数列表必须完全与被重写方法的相同;返回类型必须完全与被重写方法的返回类型相同;访问权限不能比父类中被重写的方法的访问权限更高。 例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明

2017-09-27 16:42:04 823

原创 Java:Object

每一个类都继承于Object类,所有的对象(包括数组)都实现Object类中的方法。protected Object clone() 创建并返回此对象的一个副本。、boolean equals(Object obj) 指示其他某个对象是否与此对象“相等”。protected void finalize() 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方

2017-09-27 16:27:26 1859 1

原创 Java:hashcode

hashcode方法返回该对象的哈希码值。主要作用有:hashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用来在散列存储结构中确定对象的存储地址的;如果两个对象相同,就是适用于equals(java.lang.Object) 方法,那么这两个对象的hashCode一定要相同;两个对象的hashCode相同,并不一定表示两个对象就相同,也就是不

2017-09-27 13:27:24 486

原创 Java:HashMap、HashTable

HashMap继承于AbstractMap抽象类 Hashtable继承于Dictionary字典,实现Map接口HashMap键和值都可以是空对象 HashTable键、值都不能是空对象HashMap多次访问,映射元素的顺序可能不同HashTable多次访问,映射元素的顺序相同HashMap 非线程安全 ,HashTable线程安全。 HashMap可以通过下面的语句进行同步: M

2017-09-26 22:15:17 296

原创 Java:异常

异常种类ThrowableThrowable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类或其子类之一的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出,才可以是 catch 子句中的参数类型。   Throwable 类及其子类有两个构造方法,一个不带参数,另一个带有 String 参数,此参数可用于生成详细消息。   Throwable 包含了其线程创建时线

2017-09-26 21:58:38 323

转载 Java: ArrayList、LinkedList、Vector

ArrayList、LinkedList、Vector都实现了List的接口。ArrayListList 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于 Vector 类,除了此类是不同步的。)每个 ArrayList 实例都有一个容量。该容量是指用来存储列表

2017-09-26 21:24:58 369

转载 数据结构学习笔记:红黑树

红黑树(Red Black Tree) 是一种自平衡二叉查找树,红黑树和AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。它可以在O(log n)时间内做查找,插入和删除,这里的n 是树中元素的数目。性质红黑树是每个节点都带有颜色属性的二叉查找树,颜色为红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求:节点是红色

2017-09-26 20:49:05 773

原创 数据结构学习笔记:数组与链表的区别

数组中的元素在内存中连续存放,可以通过下标快速访问元素。 链表中的元素不是顺序存储的,通过指针相连。数组从栈中分配空间,方便快速但自由度小 链表从堆中分配空间,自由度高但申请和管理比较麻烦数组访问元素时间为O(1),但插入和删除元素都要移动大量元素,时间为O(n) 链表访问元素需要通过指针寻找,时间为O(n),但删除和插入元素只需更改指针指向,时间为O(1)数组必须事先定义固定的长度(元

2017-09-26 20:32:51 556

转载 数据结构学习笔记:图

定义图G是由顶点的有穷集合,以及顶点之间的关系组成,顶点的集合记为V,顶点之间的关系构成边的集合E,G=(V,E).如果给图的每条边规定一个方向,那么得到的图称为有向图,其边也称为有向边。在有向图中,与一个节点相关联的边有出边和入边之分,而与一个有向边关联的两个点也有始点和终点之分。 相反,边没有方向的图称为无向图。图的存储邻接表 需要保存一个顺序存储的顶点表和每个顶点上的边的链接表。 相邻

2017-09-26 09:22:03 533

转载 数据结构学习笔记:KMP

KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。给定两个字符串T和W,长度分别为m和n,判断W是否在T中出现,如果出现则返回出现的位置。常规方法是遍历T的每一个位置,然后从该位置开始和W进行匹配,但是这种方法的复杂度是O(mn)。kmp算法通过一个O(n)的预处理,使匹配的复杂度降为O(m+n)。比如我们要在 字符串T=“ABCDABCDABDE”中查找

2017-09-24 22:57:14 476

原创 数据结构学习笔记:哈希表

哈希表(Hash table,也叫散列表),是根据key而直接进行访问的数据结构。也就是说,它通过把key映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。以数据中每个元素的关键字K为自变量,通过散列函数H(k)计算出函数值,以该函数值作为一块连续存储空间的的单元地址,将该元素存储到函数值对应的单元中。(也就是通过散列函数将关键字k映射为一个地址,然

2017-09-24 22:33:16 837

原创 操作系统面试笔试题

操作系统的四个特性并发性:在计算机系统中存在着许多并发执行的活动共享性:系统中各个并发活动要共享计算机系统中的各种软、硬件资源,因此操作系统必须解决在多道程序间合理地分配和使用资源问题。虚拟性:虚拟是操作系统中的重要特征,所谓虚拟是指把物理上的一台设备变成逻辑上的多台设备。例如,在操作系统中采用了spooling技术,可以利用快速、大容量可共享的磁盘作为中介,模拟多个非共享的低速的输入输出设备

2017-09-23 22:22:40 1023

原创 数据结构学习笔记:B-/B+树

B-树B-树是一种非二叉的查找树,即一般化的BST,除了要满足查找树的特性外,还满足以下特性: 一棵m阶的B树:定义任意非叶子结点最多只有M个儿子;且M>2根结点的儿子数为[2, M];除根结点以外的非叶子结点的儿子数为[M/2, M];每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字)非叶子结点的关键字个数=指向儿子的指针个数-1;非叶子结点的关键字:K[1

2017-09-23 21:46:16 2019

原创 数据结构学习笔记:二叉树

二叉树二叉树:每个节点最多有两个子树的树结构。 二叉树的性质:二叉树的第i层最多有2^(i-1)个子节点深度为k的二叉树最多共有 2^k-1个节点对于任意一颗二叉树,如果其叶子节点数为n0,度为2的节点数为n2,那么n0 = n2+1满二叉树:深度为k且有2^k-1个节点的二叉树为满二叉树。 完全二叉树:深度为k,有n个节点的二叉树,当且仅当其每个节点都与深度为k的满二叉树中编号从1到n

2017-09-23 12:27:45 518

原创 操作系统学习笔记

二进制机器码:用最高位0表示正、1表示负, 这种正负号数字化的机内表示形式就称为“机器数” 真值:而相应的机器外部用正负号表示的数称为“真值”将一个真值表示成二进制字串的机器数的过程就称为编码。原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。 [+1]原 = 0000 0001 [-1]原 = 1000 0001由于第一位为符号为,因此

2017-09-21 21:07:53 473

原创 java学习笔记(三)

继承class 父类 {}class 子类 extends 父类 {}子类拥有父类非private的属性,方法。子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。子类可以用自己的方式实现父类的方法。Java的继承是单继承提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系)。所有的类都是默认继承于 java.lang.Objectsuper可以通过super关键字

2017-09-21 11:03:54 314

转载 简单的字符串模板

var TemplateEngine = function(tpl, data) { var re = /<%([^%>]+)?%>/g, match; while(match = re.exec(tpl)) { tpl = tpl.replace(match[0], data[match[1]]) } return tpl;}var templat

2017-09-20 23:13:21 399

原创 java学习笔记(二)

Number类Java 语言为每一个内置数据类型提供了对应的包装类。 与数字相关的包装类(Integer、Long、Byte、Double、Float、Short)都是Number类的子类 这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。Number 类属于 java.lang 包。Math

2017-09-20 22:31:17 271

转载 滚动条监听-懒加载

// 简单的节流函数function throttle(func, wait, mustRun) { var timeout, startTime = new Date(); return function() { var context = this, args = arguments, curTime

2017-09-19 17:13:28 1090

原创 jQuery ready方法原理

$(document).ready(function) 在DOM结构就绪时就触发了,但是传统的window.onload则是在DOM加载完毕且所有资源都下载完毕后才触发。ready是浏览器兼容的,那么就分为两种情况标准浏览器:标准浏览器非常简单,有 DOMContentLoaded 事件,当所有DOM解析完以后会触发这个事件 非标准浏览器 非标准浏览器麻烦一些,jquery用两个方式来保证 如

2017-09-19 17:07:53 1358

原创 java:多线程、并发相关问题

Java内存模型Java 内存模型规定和指引Java 程序在不同的内存架构、CPU 和操作系统间有确定性地行为。它在多线程的情况下尤其重要。Java内存模型对一个线程所做的变动能被其它线程可见提供了保证。线程内的代码能够按先后顺序执行,这被称为程序次序规则。对于同一个锁,一个解锁操作一定要发生在时间上后发生的另一个锁定操作之前,也叫做管程锁定规则。前一个对volatile的写操作在后一个vol

2017-09-15 10:18:13 359

原创 数据库:三个范式

第一范式:数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。第二范式:满足第一范式并且表中的非主键字段都依赖于主键字段。第三范式:满足第二范式并且表中的非主键字段必须不传递依赖于主键字段。

2017-09-07 16:31:41 288

原创 数据库:视图

视图是虚拟的表,与包含数据的表不同,视图只包含使用时动态检索数据的查询。比如说我使用一条SELECT语句检索三个表,任何想使用这个查询的人都必须理解相关表的结构,知道如何去对表进行联结。现在我们可以把这一个复杂的查询封装成一个虚拟表XXTABLE,那我们就可以直接SELECT……FROM XXTABLE 就可以了,它封装了复杂的联结。因此视图的常见应用有:简化SQL操作。再编写了查询后,可以通过

2017-09-07 16:27:56 333

原创 数据库:超键、候选键、主键、外键

主键:对数据库表中的每一行数据进行唯一标识。任意两行的主键值都不同包含主键值的列从不修改或更新主键值不能重用使用PRIMARY KEY进行标识外键:是表中的一列,其值必须在另一个表的主键中。超键:在关系中能唯一标识元组的属性集称为关系模式的超键。 比如一张学生信息表,学生表中含有学号或者身份证号的任意组合都为此表的超键。如:(学号)、(学号,姓名)、(身份证号,性别)等。候选键:不含有

2017-09-07 16:07:24 2269

原创 数据库:drop、delete与truncate

delete用于删除表的内容,一般配合where子句使用truncate table用于删除表中的所有行,速度比delete更快drop用于删除一张表

2017-09-07 15:57:48 296

原创 数据库:乐观锁与悲观锁

数据库管理系统中的并发控制的任务就是确保多个事务同时存取数据库中同一数据时不破坏事务的隔离性以及数据库的统一性悲观锁:假设会发生冲突,屏蔽一切可能违反数据完整性的操作即当事务在操作数据时把这部分数据进行锁定,直到操作完毕再解锁,其他事务操作才可操作该部分数据。实现:大多是情况下依靠数据库的锁机制实现。 一般使用 select ...for update 对所选择的数据进行加锁处理,例如selec

2017-09-07 15:50:37 348

原创 数据库:事务

事务处理,保证成批的SQL操作要么完全执行,要么完全不执行,用来保证数据库的完整性。 利用事务处理,可以保证一组操作不会中途停止。如果没有错误发生整组语句提交到数据库表;如果发生错误则进行回退,将数据库恢复到某个已知且安全的状态。这样可以保证数据库不包含不完整的操作结果。事务处理用来管理INSERT、UPDATE、DELETE语句。但不能回退CREATE或者DROP操作,事务处理中可以使用这

2017-09-07 12:18:17 284

原创 数据库:索引

索引是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。概述索引的实现通常使用B树及B+树。上图展示了一种可能的索引方式。 左边是数据库表,一共有两列七条记录,最左边的是数据记录的物理地址。为了加快Col2的查找,可以维护一个右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指针,这样就可以在O(log2n)的复杂度内进行数据查找。创建索引可以大

2017-09-07 11:57:59 352

原创 数据库:存储过程

存储过程就是为以后使用而保存的一条或多条SQL语句。为什么要使用存储过程?简单性:把处理封装在一个单元中,可以简化复杂操作所有用户都使用同一存储过程,保证数据统一性安全性:对基础数据的访问都封装在存储过程中,保证了数据安全性高性能:存储过程通常以编译过的形式存储,因此处理命令所需的工作量少,提高了性能。但是存储过程也存在一些缺陷:可移植性差:不同的数据库管理系统中的存储过程语法都不同

2017-09-07 10:20:19 248

原创 计算机网络:TCP与UDP(二)

TCP报文段的首部格式一个TCP报文段分为首部和数据两部分。TCP报文段首部的前20个字节是固定的,后面有4N字节是根据需要而增加的选项。因此TCP首部的最小长度是20字节。首部固定部分个字段的意义如下:源端口:2个字节目的端口:2个字节序号:4个字节。序号范围为0-2^32-1,当序号增加到2^32-1后,就重新从0开始。 TCP是面向字节流的,在一个TCP连接中传送的字节流中的每一个字节

2017-09-06 19:45:58 529

原创 计算机网络:网络层与IP协议

网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接,每一个IP数据报独立发送,与其前后的分组无关(没有编号)。网络层不提供服务质量的承诺。所传送的分组可能出错、丢失、重复和失序。如果主机中的进程之间的通信需要时可靠的,那么就要由传输层负责。网络层主要的协议有IP、ARP、RARP、ICMP、IGMPIP协议TCP/IP协议在网络互联上采用的做法是

2017-09-06 12:38:22 1481

原创 计算机网络:OSI七层协议,TCP/IP的四层协议

OSI七层协议:法律上的国际标准,但层次划分不合理,实现起来过分复杂,因此没有收到广泛应用。 应用层表示层会话层运输层网络层数据链路层物理层TCP/IP四层协议:事实上的国际标准,使用广泛。 应用层运输层网际层网络接口层 协议是水平的, 控制的是对等实体之间的通信。 而服务是垂直的,是由下层向上层通过层间接口提供的。应用层 直接为用户的应用进程提供服务。主要

2017-09-06 10:59:34 4021

原创 计算机网络:TCP与UDP(一)

TCP与UDP同属传输层的协议。运输层协议概述网络层与运输层之间的区别:传输对象 网络层是为主机之间提供逻辑通信运输层为应用进程之间提供端到端的逻辑通信有无差错检测 运输层要对收到的报文进行差错检测网络层的IP数据报首部中的检验和字段,只检验首部是否出现差错而不检查数据部分传输层向高层用户屏蔽了下面网络核心的细节。当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的,但这种逻

2017-09-04 22:22:27 820

原创 white-space、word-wrap和word-break

white-space 用来设置如何处理元素中的空格、换行符和是否允许内容过长时自动转行。属性值:normal(默认值):合并连续空格、换行符为一个空白符、允许自动换行no-wrap:合并连续空格、换行符为一个空白符、不允许自动换行pre:不合并连续空格、换行符保留,不允许自动换行。 也就是保留内容中原本的格式,但是不自动换行pre-wrap:不合并连续空格、换行符保留,允许自动换行

2017-09-02 13:43:37 530

原创 CSS实现单行、多行文本溢出时显示省略号

text-overflow属性这个属性针对那些在块级元素溢出的内容有效。 文本可能在以下情况下溢出:由于某种原因无法换行,如设置了white-space:no-wrap或者一个单词因为太长而不能被合理地安置为了能让text-overflow属性生效,必须在元素上添加几个额外的属性:overflow:hiddenwhite-space:no-wrap:不换行,只显示单行文本text-ov

2017-08-28 22:46:50 1180

原创 CSS的简写属性

今天的面试中被问到了,半天才理解面试官到底是什么意思,晕……一开始还以为要问margin合并呢……backgroundbackground: [background-color] [background-image] [background-repeat] [background-attachment] [background-position] / [ background-size] [ba

2017-08-28 21:48:28 866

原创 编写jQuery插件

一般编写插件是给jQuery.fn添加一个新的函数属性:jQuery.fn.myPlugin = function(){ ……}但是为了使用我们熟悉的,可以使用一个IIFE函数将jQuery传入,并在内部使用,可以使用一个IIFE函数将jQuery传入,并在内部使用:(function(){ $.fn.myPlugin = function(){ …… }

2017-08-24 22:15:44 316

原创 移动端点击与点击穿透

移动端click事件的300ms延迟由于移动端会有双击缩放的这个操作,因此浏览器在click之后要等待300ms,看用户有没有下一次点击,也就是这次操作是不是双击。解决方案:浏览器开发商 如果在meta中设置了禁止缩放:<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scaleble = no" />表明这

2017-08-24 11:44:45 1892

空空如也

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

TA关注的人

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