自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 B树、B-树、B+树、B*树介绍

B树、B-树、B+树、B*树之间的关系B树B+树B*树B树B-树就是B树(可能有部分人会习惯上把B-树读为B减树,其实并不存在B减树,只是读法上的不同而已),B就是balanced,平衡的意思。B-树就是指的B树,特此说明一下。先介绍一下二叉搜索树。顾名思义,二叉搜索树,即指最多拥有两个叉,这里的叉即为所有非叶子结点的儿子(Lift和Right);所有的结点存储一个关键字;非叶子结点...

2019-08-17 14:33:46 23267 7

原创 深入理解jvm--再看内存模型

前提:本文讲的基本都是以SunHotSpot虚拟机为基础的,Oracle收购了Sun后目前得到了两个【Sun的HotSpot和JRockit(以后可能合并这两个),还有一个是IBM的IBMJVM】Java程序内存的分配是在JVM虚拟机内存分配机制下完成。Java内存模型(Java Memory Model ,JMM)就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了...

2019-12-18 10:45:01 258

原创 剑指offer——复杂链表的复制(Java)

题目:请实现函数 public Node clone(Node pHead),复制一个复杂链表。在复杂链表中,每个结点除了有一个Next指针指向下一个结点外,还有一个random指向链表中的任意结点或者NULL。结点的定义如下:public class Node { public int val; public Node next; public Node random...

2019-11-14 16:51:11 287

原创 java基础---“128陷阱”

说到java中的128陷阱,就需要先来聊一聊在Java 5中,对于Integer的操作引入了一个新功能来节省内存和提高性能。整型对象通过使用相同的对象引用实现了缓存和重用。这就要求我们具备Java的自动装箱和自动拆箱的知识。简单一点说,装箱就是 编译器调用valueOf方法将基本数据类型转换为包装器类型(即对象)(基本类型->引用类型);拆箱就是 编译器通过调用intValue(),...

2019-11-05 14:46:16 440

原创 JVM内存区域

运行时数据区域java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途,以及创建和销毁的 时间,有的趋向于随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而创建和销毁。根据《java虚拟机规范(javaSE7版)》的规定。java虚拟机所管理的内存将会包括以下几个运行时数据区域,如下图:接下来详细介绍每个区域的作用,及存储什么...

2019-09-03 07:54:37 295

原创 三次握手,四次挥手(TCP请求协议)详解

TCP三次握手所谓的TCP三次握手就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发,整个流程如下图所示:简单来说这个过程就是,首先由客户端向服务端发送连接请求额,然后服务端向客户端返回连接请求,最后客户端在向服务端返回是否连接成功的信息。这样就完成了一次三次握手的连接。详细介绍三次握手连接的过程:...

2019-09-01 23:27:40 448

原创 排序:java实现插入排序

插入排序1、 简述选择排序是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。它的最坏、最好、平均时间复杂度均为为O(n2),选择排序是不稳定的排序方法。2、 算法实现原理1、默认第一个元素为已排序元素...

2019-08-20 23:00:43 322

原创 &(与运算)、|(或运算)、^(异或运算)

按位与运算符(&)运算规则:参与运算的两个操作数转换为二进制按照“与”运算0&0 = 0;1&0 = 0;0&1 = 0;1&1 = 1;即:两个操作数同为“1”的时候为1;例:3&5 即0000 0011 & 0000 0101 = 1;另,负数按补码形式参加按位与运算。“与运算”的特殊用途:(1)清零。如果想将一个单元...

2019-08-20 21:06:01 7898

原创 数组压缩存储原理

1、计算机存储单元(内存)内存中基本的存储单元一般为4kb,计算机保存着每个物理单元的首地址,(如果是文件流的话,一般为文件流的首地址)。这个4kb经过如果小了则会导致,计算机中存储过多的屋里单元地址,如果大了,则会导致空间浪费。2、变量存储如果声明两个变量,且这两个变量的大小之和小于4kb的话,其结果仍然为,每个变量占一个4kb的内存空间,不会出现两个变量共享一个内存单元。3、数组的特性...

2019-06-05 20:32:40 2293 1

原创 关于Java中类型转换精度丢失问题整理

Java中经常需要将一种数值类型转换为另外一种数值类型,下图就给出了数值类型之间的合法转换。实线代表合法转换即无信息丢失的转换,虚线表示转换可能存在精度丢失问题。在进行两个数值的运算时,如果两个操作数中有一个是double类型的,另外一个自动转换为double类型。如果其中一个操作数是float类型的,另外一个操作数也将自动转换为float类型。如果其中一个操作数是long类型的,另...

2019-06-05 19:48:22 2377

原创 Python中的数据类型以及基本运算

Python解释器当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。常见的Python解释器有:CPyt...

2019-05-29 03:20:33 605

原创 JavaScript中创建对象的三种方法以及创建类和类的继承

JavaScript中创建对象的方法有三种:使用new 关键字调用构造器创建对象:适用new关键字调用构造器创建对象,这是最津津面向对象语言 创建对象的方式,new关键字后紧跟函数的方式非常类似于java中new后紧跟构造器的方式,通过这种方式创i结案对象简单直观。看如下代码:function Person (name,age){this.name=name;this.age= age;...

2019-04-17 21:52:19 482

原创 JavaScript中定义函数和调用函数

JavaScript是一中基于对象的脚本语言,JavaScript代码复用的单位是函数,但它的函数比结构化程序设计语言的函数功能更加丰富。定义函数的三种方法:定义命名函数:定义明明函数的语法格式如下:function functionName (parameter-list){statements}定义匿名函数:JavaScript提供了ingyi匿名函数的方式,这种创建匿名函数的...

2019-04-17 20:35:45 2075

原创 javascript中的数据类型和变量

任何语言都离不开数据类型和变量,虽然j语言是弱类型语言,但是它一样支持变量声明,变量一样存在作用范围,既有局部变量和全局变量之分。定义变量的方式:js语言是弱类型语言,所以在定义变量时不需要声明变量的数据类型,js语言支持两种方式来定义变量。隐式变量:直接给变量赋值。如: a = ‘aaaa’;显式变量:适用var关键字定义变量。如:var a;变量作用域:变量还有个重要的概念:作用域...

2019-04-17 19:53:39 373

原创 java中的方法参数

java中的方法参数首先回顾一下程序设计语言中有关参数传递给方法的专业术语。按值调用:表示方法接收的是调用者提供的值。按引用调用:表示方法接收的是调用者提供的变量地址。java中总是采用按值调用。也就是说,方法得到的都是参数值的一个拷贝。按值调用:public class text { public static void main(String args[]){ int a = ...

2019-04-13 20:41:56 660

原创 Java中静态初始化块、初始化块、构造方法的执行顺序

Java中静态初始化块、初始化块、构造方法的执行顺序java里初始化一个类的对象,通过初始化块或者构造方法进行数据赋值。与其相关的执行代码有这么几种:静态初始化块初始化块构造方法静态初始化块静态初始化块是由static修饰的初始化块,只在类加载时执行一次,而且当一个静态初始化块没有执行完成时不会执行下一个静态初始化块。初始化块初始化块在每次初始化实例对象的时候都执行一次,可以...

2019-04-10 23:42:57 2085

原创 级联样式单与CSS选择器

级联样式单与CSS选择器样式单概述样式单具有表达效果丰富、文档体积小、便于信息检索、可读性好的优点。CSS概述CSS样式单可以将数据逻辑和显示逻辑分离,从而提高文件的可读性。CSS样式单的基本适用链接外部样式文件:这种方式可以将央视文件彻底与HTML文档分离,样式文件需要额外引入导入外部样式文件:这种方式与上一种类似,只是适用@import来引入外部样式文件。使用内部样式定义:这种...

2019-03-26 23:31:48 295

原创 form表单相关元素知识点整理

HTML5表单相关的预算和属性HTML原有的表单以及表单控件HTML新增的表单属性HTML5新增的表单元素HTML5新增的客户端校验HTML原有的表单以及表单控件form元素<form…/>元素不会生成可视化部分。可以置顶id、class、style等核心内容,还可以指定onclick等事件属性。除此之外还包括action(指定当单机表内确定按钮时,该表单跳转到那个地址)、met...

2019-03-25 09:50:36 1358

空空如也

空空如也

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

TA关注的人

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