自定义博客皮肤

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TCP粘包问题

本篇博客从以下四个问题进行分析,来理解TCP粘包问题。 什么是TCP粘包问题? 为什么会存在TCP粘包问题? 如何解决TCP粘包问题? UDP是否存在粘包问题?为什么? 什么是TCP粘包问题? TCP是面向连接的,即客户端和服务端要成对维护socket连接。如果客户端连续不断的向服...

2018-06-22 15:48:40

阅读数 123

评论数 0

ping

当我们遇到网络不通的问题时,会想到ping一下。那你知道ping是如何工作的吗? ping是基于ICMP协议工作的。ICMP全称Internet Control Message Protocol,互联网控制报文协议。 网络包在异常复杂的网络环境中传输时,常常会遇到各种各样的问题。当遇到问题,总...

2018-06-04 19:12:45

阅读数 415

评论数 0

IP地址怎么来的

我们知道MAC地址是在网卡出厂时就确定了,那对于IP地址呢?IP地址的分类和配置都是人为设定的,那具体是怎么来的呢? 我们先来看看如何配置IP地址 如果对命令行比较熟悉的,可以使用ifconfig或者ip addr进行配置 ifconfig eth1 192.168.10.3/24 ifco...

2018-06-04 16:23:52

阅读数 2587

评论数 0

IP地址和MAC地址

网络分层 思考一个问题? 为什么网络要分层? 因为复杂的程序都要分层,这是程序设计的要求 计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决,计算机整个体系从上到下都是按照严格的层次结构设计的。 理解计算机网路中的概念,一个很好的角度就是:想象网络包就是一段buffer,或者一...

2018-06-04 11:09:29

阅读数 453

评论数 2

分布式环境下定时任务如何做到只执行一次

问题: 对于一个部署在多台机器上的应用,程序运行时,如何保证多个机器上的定时任务只有一个机器上的任务被执行? 思路:对于每一个定时任务job都有一个唯一id,当发现改job处于运行状态时,其他机器都不会去调度这个job quartz的分布式解决方案 quartz介绍 Quartz...

2018-05-22 15:45:52

阅读数 5106

评论数 0

Java的类加载器

我们所写的java程序,经过Java编译器把java代码编译为存储字节码的class文件,虚拟机所处理的正是这些Class文件。虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 类加载器 Java语言是在运行期...

2018-05-08 08:29:33

阅读数 60

评论数 0

如何合理确定线程池的大小

在java中,几乎所有需要异步或者并发执行任务的程序都可以使用线程池。在开发过程中,合理的使用线程池能够带来3个好处 首先是降低资源消耗。通过重复利用已创建的线程降低创建线程和销毁线程所带来的开销。 提高相应速度。当任务到达时,任务可以不需要等待线程创建就立即执行。 提高线程的可管理性。线程是...

2018-05-07 22:10:21

阅读数 1213

评论数 0

快速失败(fail-fast)和安全失败(fail-safe)

快速失败(fail-fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Exception。 原理:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。...

2018-04-22 22:01:49

阅读数 121

评论数 0

JDK1.8 HashMap的resize()源码分析

final Node<K,V>[] resize() { Node<K,V>[] oldTab = table; int oldCap = (oldTab == null) ? ...

2018-04-22 21:55:02

阅读数 205

评论数 0

Map按键排序(sort by key), 按值排序(sort by value)

Map排序的方式有很多种,这里记录下自己总结的两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value)。1、按键排序jdk内置的java.util包下的TreeMappublic class MapSortDemo {public static void m...

2018-03-23 22:41:59

阅读数 691

评论数 0

字符串操作的题目

1、按长度为8拆分每个字符串后输出到新的字符串数组; 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。 public static void cutString(String str) { if(str == null || str.length()&am...

2018-03-23 16:02:02

阅读数 82

评论数 0

Spring知识点提炼

原文出处: 朱小厮 1. Spring框架的作用 轻量:Spring是轻量级的,基本的版本大小为2MB 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。 面向切面的编程AOP:Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分...

2018-03-04 20:01:49

阅读数 78

评论数 0

69道Spring面试题和答案

69道Spring面试题和答案 原文地址 目录 Spring 概述 依赖注入 Spring beans Spring注解 Spring数据访问 Spring面向切面编程(AOP) Spring MVC Spring 概述 1. ...

2018-03-04 16:01:53

阅读数 1861

评论数 0

java面试题基础

基础知识 面向对象的特征 final, finally, finalize 的区别 int 和 Integer 有什么区别 重载和重写的区别 抽象类和接口有什么区别 说说反射的用途及实现 说说自定义注解的场景及实现 HTTP 请求的 GET 与 POST 方式的区别 sessio...

2018-03-04 15:59:03

阅读数 72

评论数 0

抽象类和接口的区别

参数 抽象类 接口 默认的方法实现 它可以有默认的方法实现 接口完全是抽象的。它根本不存在方法的实现 实现 子类使用extends关键字来继承抽象类。如果子类不是抽象类的话,它需要提供抽象类中所有声明的方法的实现。 子类使用关键字implements来实现接口。它需要提供接口中所有声明的方法的实现...

2018-02-25 10:38:38

阅读数 63

评论数 0

MySQL的row_format

在mysql中, 若一张表里面不存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫静态表,即该表的row_format是fixed,就是说每条记录所占用的字节一样。其优点读取快,缺点浪费额外一部分空间。若一张表里面存在varchar、text以及其变形、bl...

2018-02-21 13:51:59

阅读数 158

评论数 0

InnoDB存储引擎表

简单来说,表是关于特定实体的数据集合,这也是关系型数据库模型的核心 索引组织表 在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表。 在InnoDB存储引擎表中,每张表都有个主键(primary key),如果在创建时没有显式得定义主键,则会按如下方式选择...

2018-02-21 13:42:50

阅读数 307

评论数 0

MySQL InnoDB存储引擎 聚集和非聚集索引

B+树索引 索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词看一遍才能找到你想要的,如果我想找到m开头的单词呢?或者ze开头的单词呢?是不是觉得如果没有索引,这个...

2018-02-20 13:14:18

阅读数 787

评论数 0

InnoDB存储引擎的关键特性-Insert Buffer

InnoDB存储引擎的关键特性InnoDB存储引擎的关键特性包括: 插入缓冲(Insert Buffer) 两次写(double write) 自适应哈希索引(Adaptive Hash Index) 异步I/O (Async IO) 刷新邻接页(Flush Neighbor Page) 插入缓冲...

2018-02-20 11:53:37

阅读数 210

评论数 0

InnoDB存储引擎 Checkpoint技术

缓冲池的设计是为了协调CPU速度和磁盘速度不一致,对于页的操作首先都会在缓冲池中进行。当我们执行update操作时,改变了页中的记录,那此时的页就是脏页,即缓冲池中的页的数据比磁盘的新。数据库需要把新数据刷新到磁盘,以满足数据一致性。 如果是一个页发生变化,就把新数据刷回磁盘,这个开销是非常大的...

2018-02-19 20:12:21

阅读数 205

评论数 0

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