java进阶
文章平均质量分 86
Tiger--Chen
这个作者很懒,什么都没留下…
展开
-
三次握手四次挥手
1、前言尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。本文将分别讲解经典的TCP协议建立连接(所谓的“3次握手”)和断开连接(所谓...原创 2018-05-18 09:51:47 · 165 阅读 · 0 评论 -
redis面试题总结
(1)什么是redis? Redis 是一个基于内存的高性能key-value数据库。 (有空再补充,有理解错误或不足欢迎指正)(2)Reids的特点Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写...原创 2018-06-08 18:49:01 · 232 阅读 · 0 评论 -
三次握手与四次挥手详解(以及常见问题)
ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1SYN(SYNchronization) : 在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此, SYN置1就表示这是一个连接请求或连接接受报文。FIN (finis):即完,终结的意思, 用来释放一个...原创 2018-06-19 16:36:40 · 2423 阅读 · 0 评论 -
java socket编程中backlog的含义
使用java.net.ServerSocket能够方便的创建一个服务端套接字,这个类的构造函数有一个参数backlog。下面这段代码,在本机的8888端口上建立了一个套接字,backlog设置为5。[java] view plain copy// port:8888,backlog:5 ServerSocket server = new ServerSocket(8888, 5); 下面的Cl...转载 2018-06-20 15:36:14 · 244 阅读 · 0 评论 -
数据库三级范式
范式:范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三个范式,即:第一范式(1NF),第二范式(2NF),第三范式(3NF)。下面就简单介绍下这三个范式。◆ 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。 考虑这样一个...原创 2018-07-16 16:24:18 · 1719 阅读 · 0 评论 -
数据库并发事务详解
本章将从数据库事务的基本要素、并发事务带来的问题、数据库事务的隔离级别、封锁技术方面来进行详细解读。 一、数据库事务正确执行的四个基本要素(事务的四个属性) 当事务处理系统创建事务时,将确保事务有某些特性。组件的开发者们假设事务的特性应该是一些不需要他们亲自管理的特性。这些特性称为ACID特性。 ACID就是:原子性(Atomicity )、一致性( Consistency )、隔离性或独...原创 2018-07-17 12:18:57 · 11197 阅读 · 2 评论 -
Spring中IOC与AOP实现原理
Spring的Ioc底层是怎么实现的?一、SpringIoc是什么IOC:控制反转,就是把对象的创建交给Spring来做二、SpringIoc所使用的技术1、xml配置文件2、dom4j解析XML文件3、工厂设计模式4、反射三、SpringIoc的具体实现第一步:配置xml文件 <bean id="dic" class="com.zhy.springIoc.model.Dic"><...原创 2018-07-05 17:14:31 · 25697 阅读 · 0 评论 -
数据库访问量很大时,如何做优化?
如果有一个特别大的访问量到数据库上时,往往查询速度会变得很慢,所以我们需要进行优化。优化从三个方面考虑:SQL语句优化、主从复制,读写分离,负载均衡、数据库分库分表。一、SQL查询语句优化 1、使用索引 建立索引可以使查询速度得到提升,我们首先应该考虑在where及order by,group by涉及的列上建立索引。 2、借助explain(查询优化神器)选择更好的...原创 2018-07-12 17:07:00 · 18191 阅读 · 0 评论 -
数据库的范式理解
范式:范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三个范式,即:第一范式(1NF),第二范式(2NF),第三范式(3NF)。下面就简单介绍下这三个范式。◆ 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。考虑这样一个...原创 2019-03-28 08:52:55 · 185 阅读 · 0 评论 -
redis持久化
1. Redis的持久化a) 为什么需要持久化因为Redis是一个内存性的数据库,为了保证数据在内存掉电时的安全,所以需要进行持久化操作b) Redis的持久化(2种方案)1. Snapshotting(RDB) :全本式复制 快照复制 建立临时文件的目的是减少IO的次数 因为在内存中先写入临时文件,等一定的时间后再把这个临时文件写入dump.rdb文件(在磁盘中)中可以减少IO的次数。RDB存...原创 2018-06-08 17:07:01 · 182 阅读 · 0 评论 -
MYSQL的基本操作与演示(MYSQL这一篇文章就够了)
常用的关系型数据库语言有三种:SQL、Mysql、Oracle。这三种数据库语言基本操作是很相近的,目前大公司的主流使用的Mysql,所以本文将对MySql语言的基本操作进行演示与分析说明。 数据库的操作分为三大模块:一、对数据库的操作。二、对数据库表的操作。三、对数据库表记录进行操作(主要部分,也是我们常说的增删改查等基本操作的主战场)。 一、 对数据库的操作 1....原创 2018-05-30 09:36:40 · 1279 阅读 · 1 评论 -
Http协议-请求与响应解析
一、Http协议1.什么是Http协议HTTP,超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的 一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为 了提供一种发布和接收HTML页面的方法2.Http协议的组成Http协议由Http请求和Http响应组成,当在浏览器中输入网址访问某个网站时, 你的浏览器会将你的请求封装成一个...原创 2018-05-21 14:44:47 · 417 阅读 · 0 评论 -
Java 内存区域和GC机制
目录Java垃圾回收概况Java内存区域Java对象的访问方式Java内存分配机制Java GC机制垃圾收集器Java垃圾回收概况 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存...原创 2018-05-22 14:59:07 · 161 阅读 · 1 评论 -
Java 类加载与初始化
目录类加载器动态加载链接初始化示例类加载器在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如何加载的,这对后面理解java其它机制将有重要作用。每个类编译后产生一个Class对象,存储在.class文件中,JVM使用类加载器(Class Loader)来加载类的字节码文件(.class),类加载器实质上是一条类加载器链,一般的,我们只会用到一个原生的类加载器,它只加载Java ...原创 2018-05-22 15:05:34 · 176 阅读 · 0 评论 -
JVM监控与调优
目录参数设置收集器搭配启动内存分配监控工具和方法调优方法调优实例 光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之。通过学习,我觉得JVM监控与调优主要的着眼点在于如何配置、如何监控、如何优化3点上。下面就将针对这3点进行学习。 (如果您对Java的内存区域划分和内存回收机制尚不明确,那在阅读本文前,请先阅读我的前一篇博客《Jav...转载 2018-05-22 15:14:57 · 167 阅读 · 0 评论 -
Redis是单线程的为什么这么快!
一、前言近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”、什么是“热数据和冷数据”,复杂一点的会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题,这些看似不常见的概念,都与我们的缓存服务器相关,一般常用的缓存服务器有Redis、Memcached等,而笔者目前最常用的也只有Redis这一种。如果你在以前面试的时候还没有遇到过面试官问你《为什么说Redis...原创 2018-05-16 20:00:40 · 293 阅读 · 0 评论 -
jvm的5个区和垃圾回收机制
一直对jvm看了又忘,忘了又看的。今天做一个笔记整理存放在这里。我们先看一下JVM的内存模型图:上面有5个区,这5个区干嘛用的呢?我们想象一个场景:我们有一个class文件,里面有很多的类的定义是不是,类的定义放在什么地方呢?类的定义就放在方法区里面。程序在运行时会产生很多的对象,比如LinkList等这些对象就存放在堆里面。一、JAVA栈:我们的程序在运行时本质上就是启动线程在运行,比如main...原创 2018-05-16 20:10:48 · 1518 阅读 · 0 评论 -
MyISAM与InnoDB索引原理剖析
MySQL索引实现 注:在读本文之前建议先研读我的前一篇博客,不然一方面本文读起来费力,另一方面只知表象,不明内里。 在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,本文主要讨论MyISAM和InnoDB两个存储引擎的索引实现方式。MyISAM索引实现 MyISAM引擎使用B+Tree作为索引结构,叶节点的data...原创 2018-06-05 16:13:41 · 3193 阅读 · 7 评论 -
B+Tree在数据库索引上拥有独特优势的原因(为什么比红黑树更合适)
二叉树、平衡树、红黑树等数据结构也可以用来实现索引,但是文件系统及数据库系统为什么普遍采用B-/+Tree作为索引结构?如果对B+Tree和B-Tree不太了解的同学可以先去看一下我的上一篇博客,这样对本文才能更好地了解(https://blog.csdn.net/qq_21993785/article/details/80576642)。 在数据之外,数据库系统还维护着满足特定查找算...原创 2018-06-05 14:16:26 · 13043 阅读 · 4 评论 -
RandomAccessFile详解
RandomAccessFile的常见用法 2018年06月11日 09:54:18 我是楠楠 阅读数:4075 ...转载 2019-03-28 20:00:31 · 3055 阅读 · 0 评论