自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

见证你的路的博客

相信过程trust the process

  • 博客(30)
  • 收藏
  • 关注

原创 查询性能优化——《高性能Mysql》学习笔记3

1.优化数据访问查询常见问题:向数据库请求了不需要的数据查询不需要的记录,没有加上limit导致返回大量结果集。select*返回全部列,尤其是多表关联时。重复查询相同数据,没有采用缓存。2. 衡量查询开销1. 衡量查询开销的三个指标响应时间:服务时间(数据库处理该查询的时间)+排队时间(等待I/O以及等待锁的时间)。扫描的行数以及返回的行数:它们两个的...

2018-03-12 21:57:21 467

原创 IP学习笔记

1.网络层的主要作用转发:把数据包从路由器的输入端转发到输出端,这是在一个路由器里干的事。路由:决定数据包从源到目的的路径。建立连接。2.IP地址编址1. 分类由两部分组成,网络号和主机号,其中不同类别具有不同的网络号长度,并且是固定的。P 地址 ::= {< 网络号 >, < 主机号 >} 2. 子网划分通过在...

2018-03-11 17:47:38 522 1

原创 java常见设计模式清单

1. 代理模式为其他对象提供一种代理以控制对这个对象的访问。和适配器模式的区别:适配器模式主要改变所考虑对象的接口,而代理模式不能改变所代理类的接口。和装饰器模式的区别:装饰器模式为了增强功能,而代理模式是为了加以控制。代理模式分为静态代理,动态代理以及Cglib代理三种1. 静态代理静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者是...

2018-03-09 09:34:50 444 1

原创 操作系统重点知识整理

1. 并发和并行并发:指宏观上在一段时间内能同时运行多个程序,但任一个时刻点上只有一个程序在处理器上运行,是逻辑上的同时发生(并行更多是侧重于物理上的同时发生)。并行:指同一时刻能运行多个指令,需要硬件支持,如多流水线或者多处理器。2. 同步与异步同步:所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。(总结:由调用者主动等待这个调用的结果。)异步:...

2018-03-08 20:10:31 5228

原创 HTTP学习笔记

1. HTTP请求方法1. GET用来请求已被URL识别的资源。GET请求是幂等的,也就是说,每次请求GET的结果必须一样。GET请求的参数放在url后面,大部分浏览器对url的长度有限制,因此,使用GET请求上传数据有大小限制。GET上的数据类型只允许使用ASCII字符GET请求的资源可以缓存2. POST用于向服务器传送数据POST请求的数据放在请求实体...

2018-03-08 16:52:23 295

原创 计算机网络原理概述部分

1. 互联网的组成互联网 = 网络边缘+网络核心网络边缘:所有连接在互联网上的主机网络核心:由大量的网络和连接这些网络的路由器组成,为边缘部分的主机提供服务2. 电路交换和分组交换电路交换:电路交换用于电话通信系统,两个用户要通信之前需要建立一条专用的物理链路,并且在整个通信过程中始终占用该链路。由于通信的过程中不可能一直在使用传输线路,因此电路交换对线路的利用率很...

2018-03-08 15:19:55 221

原创 TCP和UDP学习笔记

1. TCP和UDP的区别TCP是面向连接的,提供可靠服务的、提供流量控制和拥塞控制的、面向字节流传输层协议。UDP是无连接的、不可靠的、面向报文的传输层协议。 2. 面向报文和面向字节流的区别:应用层交给UDP多长的报文,UDP就照样发送。即一次发送一个报文。只不过交给IP层的报文如果太长,则IP层需要分片,降低效率。若太短,则报文太短,携带数据少,效率也会降低。...

2018-03-08 12:21:03 444

原创 创建高性能索引——《高性能Mysql》笔记2

1. 索引基础及优点索引在MYSQL中也称作“键(Key)”,是一种存储引擎快速找到记录的数据结构。索引优化是对查询性能优化的最有效手段。MYSQL的索引有很多种类型,不同的存储引擎支持的索引类型可能不一样。相关链接:Mysql索引基础B-tree和B+tree实例:假设有如下数据表CRATE TABLE People( last_name varcha...

2018-02-25 19:54:14 207

原创 数据库与数据类型优化——《高性能Mysql》学习笔记1

1. 记住几条简单的原则更小的通常更好 尽量使用正确存储数据的最小数据类型。更小的数据类型通常更快,因为他们占用更小的磁盘,内存和CPU缓存,并且处理时需要的CPU周期也更少。简单就好 简单数据类型的操作通常需要更少的CPU周期。例如,整型比字符操作代价更低,因为字符集和校对规则使字符比较复杂与整型比较。例如,使用Mysql的內建类型而不是字符串来存储日期和时间。例如:用整型...

2018-02-25 12:10:48 309

原创 Mysql索引基础B-tree以及B+tree

1. B-tree以及B+tree的原理1. B-treeB 树是为了磁盘或其它存储设备而设计的一种多叉(相对于二叉,B树每个内结点有多个分支,即多叉)平衡查找树。结构描述 结构特点一个节点为一个二元组[key, data]每个叶子节点最少包含一个key和两个指针,最多包含2d-1个key和2d个指针叶子节点的指针均为null 所有叶节点具有相同的深度,等于树高h每...

2018-02-24 23:01:00 486

原创 并发基础一:线程

1. 区分概念:并发和并行并发是逻辑上的同时发生,并行更多是侧重于物理上的同时发生。并发往往是指程序代码的结构支持并发,并发的程序在多cpu上运行起来才有可能达到并行,并行往往是描述运行时的状态。在操作系统中,并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。并发关注的三个问题: 安全性,也...

2018-02-24 17:51:09 171

原创 并发基础二:Java内存模型

1. Java内存模型1. 定义Java内存模型规定所有变量都存储在主内存中(Main memory),每个线程还有自己的工作内存(working memory)。线程的工作内存中保存了被该线程使用到的变量的拷贝(从主内存中拷贝过来),线程对变量的所有操作都必须在工作内存中执行,而不能直接访问主内存中的变量。不同线程之间无法直接访问对方工作内存的变量,线程间变量值的传递都要通过主...

2018-02-24 16:11:30 204

原创 java并发包之ConcurrentHashMap

1. 概览ConcurrentHashMap 和HashTable类很相似,但 ConcurrentHashMap 能够提供比 HashTable 更好的并发性能。在你从中读取对象的时候 ConcurrentHashMap 并不会把整个 Map 锁住。此外,在你向其中写入对象的时候,ConcurrentHashMap 也不会锁住整个 Map。它的内部只是把 Map 中正在被写入的部分进行锁定...

2018-02-24 13:58:52 232

原创 java并发包之阻塞队列BlockingQueue

1. 原理概述阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。 如图,负责生产的线程不断的制造新对...

2018-02-24 12:27:52 251

原创 java并发包之原子类Automic

1.概述Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便程序员在多线程环境下,无锁的进行原子操作。原子变量的底层使用了处理器提供的原子指令,但是不同的CPU架构可能提供的原子指令不一样,也有可能需要某种形式的内部锁,所以该方法不能绝对保证线程不被阻塞。原子类其内部实现不是简单的使用synchronized,而是一个更为高效的方式CAS (com...

2018-02-24 10:58:06 14410 1

原创 java并发包之Condition

1. 概括Condition是java条件队列的实现,这就意味着Condition的强大之处在于它可以为多个线程间建立不同的Condition。作为一个多线程间协调通信的工具类,每个条件Contition对象内部维护了一个属于自己的等待队列,它使得某个或者某些线程一起等待某个条件(Condition ,只有当该条件具备( signal 或者 signalAll方法被带调用)时,这些等待线程...

2018-02-24 10:14:55 357

原创 java并发包之Lock

1. synchronize的限制synchronized 是Java的关键字,是Java的内置特性,在JVM层面实现了对临界资源的同步互斥访问,但 synchronized 粒度有些大,在处理实际问题时存在诸多局限性它无法中断一个正在等候获得锁的线程也无法通过投票得到锁,如果不想等下去,也就没法得到锁同步还要求锁的释放只能在与获得锁所在的堆栈帧相同的堆栈帧中进行,多数情况下,这没问...

2018-02-23 20:13:00 211

原创 并发基础三:synchronized

1.概括把代码块声明为 synchronized,有两个重要后果,通常是指该代码具有 原子性(atomicity)和 可见性(visibility)。 1. 原子性:一个操作或多个操作要么全部执行完成且执行过程不被中断,要么就不执行 2. 可见性:当一个线程修改了该变量的值,另外一个线程可以立刻得知2. 使用方法1. 普通同步方法:锁对象默认是 this在...

2018-02-23 19:24:06 295

原创 HashMap的学习笔记

1. 相关数据结构HashMap概括的讲就是数组+线性链表,首先回顾一下HashMap涉及到的三种数据结构。数组:一组连续的内存存储数据,根据下标的查找复杂度为O(1),根据给定的值查找复杂度为O(n)。(查找快,插入删除慢)。线性链表:如果能直接定位,新增和删除只需要O(1)的复杂度,但是查找定位需要遍历,平均复杂度为O(logn)(查找慢,插入删除快)。哈希表:在哈希表中进行添...

2018-02-13 20:25:05 164

原创 java中相对路径的常见用法

java中相对路径的常见用法利用类加载器 InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt"); 不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录 利用类加载器,会在所在类的所在包的第一级目录(上一级目录)下面寻找文件 (比如,test...

2018-02-13 19:53:06 350

原创 java的内部类

java的内部类java的内部类分为四种:成员内部类,静态内部类,方法内部类,匿名内部类 成员内部类内部类定义在外部类的内部,相当于外部类的一个成员变量的位置,内部类可以使用任意访问控制符,如public,protected,private等内部类可以访问既可以访问自身的数据域,也可以访问创建它的外围类对象的数据域。内部类总有一个隐式引用,指向创建它的外部类对象。定义了成员...

2018-02-13 17:21:24 112

原创 java中的static关键字

1. static修饰方法static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问。禁止在静态成员方法中访问非静态成员方法。即使没有显示地声明为static,类的构造器实际上也是静态方法。2. static修饰成员变量static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时...

2018-02-13 16:32:06 163

原创 final、finally、finalize的区别

final、finally、finalize的区别final类被声明为final: 意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。变量或方法被声明为final: 可以保证它们在使用中不被改变。被声明为final的变量必须在new一个对象时初始化(即只能在声明变量或构造器或代码块内初始化),而在以后的引用中只...

2018-02-13 16:14:18 107

原创 java抽象类和接口的对比

java抽象类和接口的对比抽象类:含有abstract修饰符的class即为抽象类,abstract类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必都是抽象的,抽象类中可以包含不带abstract关键字的方法。abstract class类中定义抽象方法必须在具体的子类中实现,所以,不能有抽象构造...

2018-02-13 16:00:04 131

原创 java中的Equals和==

java中的Equals和==java中的数据类型,可分为两类:基本数据类型:包括了byte,int,char,long,float,double,boolean,short,他们之间的比较,应用双等号(==),比较的是他们的值。因为它们不是对象,所以没有equals方法。复合数据类型:即是对象的引用 使用==比较:比较的是他们在内存中的存放地址,所以,如果他们的引用指向堆中的同一个...

2018-02-13 15:49:26 124

原创 Struts2学习

概要是一个基于MVC模式的web应用框架,它本质上相当于一个servlet。在MVC设计模式中,struts作为控制器(controller)来建立模型与视图之间的交互。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求。2. Web层框架的前端控制器模式传统模式的开发中,一个请求对应一个servlet,这样会导致出现很多servlet。Struts2的所有请求先经过一个前端控...

2017-08-16 12:23:37 327

原创 java反射

1、定义JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。JAVA反射(放射)机制:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是

2017-08-16 11:04:46 153

原创 Java异常

1、定义:异常(Exception):Java代码在运行时期发生的问题就是异常。在Java中,把异常信息封装成了一个类。当出现了问题时,就会创建异常类对象并抛出异常相关的信息(如异常出现的位置、原因等)。首先来看一下Throwable类定义:Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Javathrow ...

2017-08-14 11:15:09 268

原创 java多线程学习二

运行线程目前在java的线程学习中,我学到的运行线程的方法主要有三种。一、第一种是直接构造Thread类的一个实例,调用它的start()方法。要让线程完成一些操作,可以对Thread类派生子类,覆盖其run()方法。下面的例子源于书本,该程序用于计算多个文件的安全散列算法(SHA)的摘要。 DigestThread是Thread的子类,它的run()方法为指定文件计算一个25

2017-03-07 13:40:51 403

原创 java多线程学习一

新建状态(New):新创建了一个线程对象。就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。 运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。 死亡状态(Dead)线程执行完了或者因异常退出了run()方法,该线程结束生命周期。阻塞状态(Blocked):阻塞状态是线程因...

2017-03-06 11:34:58 191

空空如也

空空如也

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

TA关注的人

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