自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(261)
  • 资源 (2)
  • 收藏
  • 关注

转载 TCP的粘包现象

 看面经时,看到有面试官问TCP的粘包问题。想起来研一做购物车处理数据更新时遇到粘包问题,就总结一下吧。1 什么是粘包现象  TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。2 为什么出现粘包现象  (1)发送方原因  我们知道,TCP默认会使用Nagle算法。而Nagle算法主要做两件事:1)只有上一个分组得到确...

2019-03-20 17:06:58 137

转载 TCP粘包问题分析和解决(全)

TCP通信粘包问题分析和解决(全)在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。因此TCP的socket编程,收发两端(客户端和服务器端)都要有成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小、数据量小的数据,合并成一个大的数据块,然后进行封包。这样,接收端,就难于分辨出来了,必须提供科学的拆包...

2019-03-20 17:06:14 273

转载 HashTable和HashMap的区别详解

一、HashMap简介      HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。      HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。      HashMap 实现了Serializable接口...

2019-02-27 15:21:53 888

转载 mysql数据库引擎常用面试总结

一次面试被问到了MySQL的相关问题,一个是对mysql了解多少,引擎有什么,主要区别是什么?第二个被问的更多,给你一个百万级别的表怎么查询优化:今天整理了一些资料回答第一个问题:总的思想:MyIASM引擎是为了查和增加,效率高。所有功能都围绕这这个Innodb引擎功能更强(事务等)效率低一些。MySQL数据库引擎详解第一篇:原文链接:http://www.2cto.com/d...

2019-02-27 14:30:51 151

转载 Spring中Model、ModelMap及ModelAndView之间的区别

Spring中Model、ModelMap及ModelAndView之间的区别1. Model(org.springframework.ui.Model)Model是一个接口,包含addAttribute方法,其实现类是ExtendedModelMap。ExtendedModelMap继承了ModelMap类,ModelMap类实现了Map接口。public class Extend...

2019-02-27 11:17:20 331

转载 Java final 修饰符知识点总结

final从字面上理解含义为“最后的,最终的”。在Java中也同样表示出此种含义。final可以用来修饰变量(包括类属性、对象属性、局部变量和形参)、方法(包括类方法和对象方法)和类。1. final修饰类:final修饰类即表示此类已经是“最后的、最终的”含义。因此,用final修饰的类不能被继承,即不能拥有自己的子类。如果视图对一个已经用final修饰的类进行继承,在编译期间或...

2019-02-27 10:57:58 132

转载 有关线程安全的探讨--final、static、单例、线程安全

我的代码中已经多次使用了线程,然后还非常喜欢使用据说是线程不安全的静态方法,然后又看到很多地方最容易提的问题就是这个东西线程不安全 于是我不免产生了以下几个亟待解决的问题:什么样的代码是天生线程安全的?而不用加锁 线程是否安全的本质是什么? 什么是快速把一段代码变成线程安全的通用方法 final static 单例 线程安全 之间的关系 1、首先我们知道,如果线程只是执行自...

2019-02-26 22:38:37 249

转载 单例模式,防止反射和反序列化漏洞

一、懒汉式单例模式,解决反射和反序列化漏洞package com.iter.devbox.singleton; import java.io.ObjectStreamException;import java.io.Serializable; /** * 懒汉式(如何防止反射和反序列化漏洞) * @author Shearer * */public class Singl...

2019-02-26 16:18:01 299

转载 数据库事务的四大特性以及事务的隔离级别

本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。  如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一...

2019-02-26 10:30:18 93

转载 Java范型中? extendsE 和? superE 的作用和区别

这篇文章谈一谈Java泛型声明<? extends E>和<? super E>的作用和区别<? extends E>           <? extends E> 是 Upper Bound(上限) 的通配符,用来限制元素的类型的上限,比如List<? extends Fruit> fruits;  表示集合中的元素类型...

2019-02-21 15:19:56 397

转载 java中synchronized关键字的用法

java中synchronized关键字的用法在java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,下面看看这个关键字的用法。因为synchronized关键字涉及到锁的概念,所以先来了解一些相关的锁知识。java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁成为内置锁。线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方...

2019-02-14 17:05:43 87

转载 Minimax算法及实例分析

计算机科学中最有趣的事情之一就是编写一个人机博弈的程序。有大量的例子,最出名的是编写一个国际象棋的博弈机器。但不管是什么游戏,程序趋向于遵循一个被称为Minimax算法,伴随着各种各样的子算法在一块。   Minimax算法又名极小化极大算法,是一种找出失败的最大可能性中的最小值的算法。Minimax算法常用于棋类等由两方较量的游戏和程序,这类程序由两个游戏者轮流,每次执行一个步骤。我们众所周...

2019-02-06 11:00:02 8654

转载 getResource和getResourceAsStream

1. 前言在Java中获取资源的时候,经常用到getResource和getResourceAsStream,本文总结一下这两种获取资源文件的路径差异。2.Class.getResource(String path)path不以'/'开头时,默认是从此类所在的包下取资源;path以'/'开头时,则是从项目的ClassPath根下获取资源。在这里'/'表示ClassPath的根目录。...

2019-01-21 17:03:31 677

转载 Spring aop的实现原理

Spring aop的实现原理简介  前段时间写的java设计模式--代理模式,最近在看Spring Aop的时候,觉得于代理模式应该有密切的联系,于是决定了解下Spring Aop的实现原理。  说起AOP就不得不说下OOP了,OOP中引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。但是,如果我们需要为部分对象引入公共部分的时候,OOP就会引入大量重复的...

2019-01-09 15:27:25 121

转载 Java中Synchronized的用法

《编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程》一文详细讲述了线程、进程的关系及在操作系统中的表现,这是多线程学习必须了解的基础。本文将接着讲一下Java线程同步中的一个重要的概念synchronized.synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来...

2019-01-08 22:22:51 113

转载 Java反射学习 getClass()函数应用

Java反射学习 所谓反射,可以理解为在运行时期获取对象类型信息的操作。传统的编程方法要求程序员在编译阶段决定使用的类型,但是在反射的帮助下,编程人员可以动态获取这些信息,从而编写更加具有可移植性的代码。严格地说,反射并非编程语言的特性,因为在任何一种语言都可以实现反射机制,但是如果编程语言本身支持反射,那么反射的实现就会方便很多。 1,获得类型类 我们知道在Java中一切都是对象,我们一般所...

2019-01-08 17:33:54 210

转载 浅谈java中类名.class, class.forName(), getClass()的区别

Class对象的生成方式如下:1、类名.class   说明: JVM将使用类装载器, 将类装入内存(前提是:类还没有装入内存),不做类的初始化工作.返回Class的对象2、Class.forName("类名字符串")  (注:类名字符串是包名+类名) 说明:装入类,并做类的静态初始化,返回Class的对象3、实例对象.getClass() 说明:对类进行静态初始化、非静态...

2019-01-08 17:21:28 490

转载 Java中instanceof和isInstance区别详解

Java中instanceof和isInstance区别详解 一次性搞定instanceof和isInstance,instanceof和isInstance长的非常像,用法也很类似,先看看这两个的用法:obj.instanceof(class)也就是说这个对象是不是这种类型,1.一个对象是本身类的一个对象2.一个对象是本身类父类(父类的父类)和接口(接口的接口)的一个对象...

2019-01-08 17:12:39 150

转载 Java中isAssignableFrom的用法

Java中isAssignableFrom的用法class1.isAssignableFrom(class2) 判定此 Class 对象所表示的类或接口与指定的 Class 参数所表示的类或接口是否相同,或是否是其超类或超接口。如果是则返回 true;否则返回 false。如果该 Class表示一个基本类型,且指定的 Class 参数正是该 Class 对象,则该方法返回 true;否则返回 ...

2019-01-08 16:54:49 2427

转载 Struts2 继承ActionSupport的用处

Action 跟 Actionsupport 的区别      当我们在写action的时候,可以实现Action接口,也可以继承Actionsupport这个类.到底这两个有什么区别呢?Action接口有:public static final java.lang.String SUCCESS = "success";public static final java.lang.S...

2019-01-07 17:50:14 168

转载 Servlet 生命周期、工作原理

Servlet 加载—>实例化—>服务—>销毁。init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。service():它是Ser...

2019-01-07 17:40:07 150

转载 设计模式-----桥接模式(Bridge Pattern)

 学习设计模式也有一段时间了,今天就把我整理的一篇课程和大家分享,有不妥之处欢迎指出. 生活中的一个例子:    就拿汽车在路上行驶的来说。即有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶。这你会发现,对于交通工具(汽车)有不同的类型,然而它们所行驶的环境(路)也在变化,在软件系统中就要适应两个方面的变化?怎样实现才能应对这种变化呢?概述:在软件系统中,某些类型由...

2019-01-06 21:51:30 116

转载 java设计模式之外观模式(门面模式)

  针对外观模式,在项目开发和实际运用中十分频繁,但是其极易理解,下面就简要介绍一下。一、概念介绍  外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。 二、角色及使用场景  简单来说,该模式就是把一些复杂的流程封装成一个...

2019-01-06 21:27:44 141

转载 c++拷贝构造函数详解

一、什么是拷贝构造函数      首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=100;int b=a;  而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。  下面看一个类对象拷贝的简单例子。    #include<iostream>using namespace std;class CExample...

2018-12-31 17:08:06 2831

转载 拷贝构造函数的参数类型必须是引用

   在C++中, 构造函数,拷贝构造函数,析构函数和赋值函数(赋值运算符重载)是最基本不过的需要掌握的知识。 但是如果我问你“拷贝构造函数的参数为什么必须使用引用类型?”这个问题, 你会怎么回答? 或许你会回答为了减少一次内存拷贝? 很惭愧的是,我的第一感觉也是这么回答。不过还好,我思索一下以后,发现这个答案是不对的。原因:       如果拷贝构造函数中的参数不是一个引用,即形如CCla...

2018-12-31 11:37:22 3357

转载 C++中指针和引用的区别

从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数和引用传...

2018-12-30 17:47:46 133

转载 const关键字对C++成员函数的修饰

const对C++成员函数的修饰分为三种:1. 修饰参数;2. 修饰返回值;3. 修饰this指针。简述一下知识点如下,以后找功夫再完善。1. 对函数参数的修饰。  1)const只能用来修饰输入参数。输出型参数不能用const来修饰。  2)如果输入参数采用“指针传递”,那么加const修饰可以防止意外地改动该指针,起到保护作用。  3)如果输入参数采用“值传递”,函数将产生临时...

2018-12-30 17:30:14 199

转载 c++访问私有(private)成员变量的常用方法

类的对象不能直接访问类声明的私有成员变量,否则破坏了信息隐藏的目的。在C++中,为了防止某些数据成员或成员函数从外部被直接访问,可以将它们声明为private,这样编译器会阻止任何来自外部非友元的直接访问。私有成员变量的常用访问方法如下:(1)通过公共函数为私有成员赋值#include <iostream>  using namespace std;   class...

2018-12-30 16:56:28 3287

转载 C++中指针和引用的区别

从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数和引用传...

2018-12-30 12:28:08 95

转载 C++传递引用与传指针、传值的区别

引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;引用最大的好处就是提高函数效率以及节省空间;关键问题一、传递引用与传指针、传值的区别?     值传递 (pass by value),指针传递(pass by pointer),当发生函数调用时,需要给形参分配存储单元、当传递是对象时,要调用拷贝构造函数...

2018-12-29 19:20:35 373

转载 C++传递引用与传指针、传值的区别

引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;引用最大的好处就是提高函数效率以及节省空间;关键问题一、传递引用与传指针、传值的区别?     值传递 (pass by value),指针传递(pass by pointer),当发生函数调用时,需要给形参分配存储单元、当传递是对象时,要调用拷贝构造函数...

2018-12-29 19:20:30 716

转载 C++指针和数组的区别(不能混用的情况)

通常情况下,C++中指针和数组是可以混用的,但是,在编写字符数组的全排列的时候,混用却出了问题,因此,今天特地mark一下,以备日后查找 这里整理的,不包括用new开辟的动态数组1.数组一旦声明,我们就不能再给它赋值,但是我们可以给指针赋值如下:5、6行都错,因为数组s不能作为左值被赋值报错阶段:程序会在编译时报错int main(){ char s[]="1...

2018-12-29 18:55:30 350

转载 C++中为什么构造函数不能定义为虚函数

关于C++为什么不支持虚拟构造函数,Bjarne很早以前就在C++Style and Technique FAQ里面做过回答Avirtual call is a mechanism to get work done given partialinformation. In particular, "virtual" allows us to call afunction knowing onl...

2018-12-29 17:00:39 528

转载 3个数字相加等于0,时间复杂度O(n2)

3位数字相加等于0题目Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note: The solution set must no...

2018-12-29 16:58:34 1591

转载 C++:多维数组的动态分配(new)和释放(delete)

对于简单的一维数组动态内存分配和释放,相信大家都是知道的,不过还是举个例子吧:#include<iostream>using namespace std;int main(){ int n; cin>>n; //分配动态一维数组 int *arr=new int[n]; for(int i=0;i<n;i...

2018-12-29 10:32:30 3179 1

转载 十大经典排序算法总结(JavaScript描述)

前言读者自行尝试可以想看源码戳这,博主在github建了个库,读者可以Clone下来本地尝试。此博文配合源码体验更棒哦~~~个人博客:Damonare的个人博客原文地址:十大经典算法总结这世界上总存在着那么一些看似相似但有完全不同的东西,比如雷锋和雷峰塔,小平和小平头,玛丽和马里奥,Java和javascript....当年javascript为了抱Java大腿恬不知耻的让自己变...

2018-12-28 16:42:56 139

转载 希尔排序算法

 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。本文会以图解的方式详细介绍希尔排序的基本思想及其代码实现。基本思想  希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越...

2018-12-28 15:54:26 201

转载 各种排序算法总结和比较

    排序算法可以说是一项基本功,解决实际问题中经常遇到,针对实际数据的特点选择合适的排序算法可以使程序获得更高的效率,有时候排序的稳定性还是实际问题中必须考虑的,这篇博客对常见的排序算法进行整理,包括:插入排序、选择排序、冒泡排序、快速排序、堆排序、归并排序、希尔排序、二叉树排序、计数排序、桶排序、基数排序。       代码都经过了CodeBlocks的调试,但是很可能有没注意到的B...

2018-12-27 22:40:57 186

转载 32、64位编译器各类型大小和字节对齐

32位编译器:32位系统下指针占用4字节      char:1个字节      char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)      shortint :2个字节      int:  4个字节      unsigned int: 4个字节      float:  4个字节      do...

2018-12-27 22:06:31 1826

转载 c++中的虚函数

C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的...

2018-12-27 16:41:54 1106

myelcise破解工具

myelcise破解工具myelcise破解工具myelcise破解工具myelcise破解工具myelcise破解工具

2018-06-24

坦克大战小游戏源码

坦克大战小游戏源码,可用于课设参考坦克大战小游戏源码,可用于课设参考坦克大战小游戏源码,可用于课设参考坦克大战小游戏源码,可用于课设参考坦克大战小游戏源码,可用于课设参考坦克大战小游戏源码,可用于课设参考坦克大战小游戏源码,可用于课设参考

2018-06-23

空空如也

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

TA关注的人

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