- 博客(16)
- 收藏
- 关注
原创 Java源码阅读笔记——Collections.reverse方法
首先看一下源码的reverse()方法是怎么写的注意到有两个地方需要弄清楚一下REVERSE_THRESHOLD:阈值,设置的是18。RandomAccess:这是jdk中的一个空接口,空接口一般只是作为一个标记接口。jdk文档中是这么说的:RandomAccess是一个被用于List接口的实现类,用来标记该实现类支持快速随机访问,比如ArrayList,当程序遍历这个实现类时,...
2019-04-30 14:59:53
1403
原创 Java源码阅读笔记——Integer
Integer是一个最终类:final修饰符继承:Number实现:Comparable接口属性:public static int MIN_VALUE:负2的31次方,即-2 147 483 648 public static int MAX_VALUE:正2的31次方减1,即2 147 483 647 public static Class<Integer> t...
2019-04-30 13:46:23
319
原创 常见字符的ASCII码,java中如何获取字符的ASCII码
一、常见字符的ASCII码ASCII 码使用指定的7 位或8 位的二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(最高的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制符号。具体对照情况如下表。这128个字符可以分为以下两种:(使用ASCII码对应的十进制数表示顺序)1...
2019-04-07 15:47:33
42663
2
原创 MySQL数据库引擎
数据库引擎是数据库的底层软件组织系统,数据库管理系统使用数据库引擎进行创建、查询、更新、删除数据的操作。不同存储引擎提供不同的存储机制、索引技巧和锁定水平等。不同的数据库管理系统支持多种不同的数据库引擎。MySQL支持的数据库引擎有InnoDB,MyISAM,Memory,Merge,Archive,Federated,CSV,BLACKHOLE等,在mysql的shell中可以使用命令sho...
2019-04-03 23:52:37
192
原创 深入理解JVM虚拟机笔记——第2章 JAVA内存区域与内存溢出异常
一、JVM运行时数据区域JVM在执行JAVA程序的时候会将它管理的内存划分为几个数据区域,如下图所示:1、程序计数器程序计数器是一块较小的内存空间,其作用是作为当前线程所执行字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。分支、循环、跳转、异常处理、线程恢复等功能都是依靠这个计数器来实现的。Java虚拟机实现多线程是通过线程轮流...
2019-03-31 17:06:50
218
原创 Socket套接字——应用程序跨网络的通信
一、什么是socket?TCP连接的两个端点称为socket,它右端口拼接到ip地址后构成(socket=ip地址:端口号)。每一条tcp连接唯一地被通信两端的两个socket确定。socket是应用进程和运输层协议之间的接口,它定义了应用进程为了获得网络通信服务时与操作系统交互的机制。在套接字以上的进程受应用程序的控制,套接字以下的运输层协议软件受操作系统的控制。所以,应用程序需要使...
2019-03-23 01:05:59
1642
原创 排序算法——其他算法(那些不是很常见的排序算法)
一、计数排序基本思想:计数排序的思想和桶排序类似。对于一个给定的序列,统计出序列中比每个数小的个数,就能知道这个数最终在序列中的位置。比如序列[2, 5, 3, 0, 2, 3, 0, 3],序列中比5小的数有7个,那么5在最终的排序序列中就位于第8位(下标为7)。计数排序适用于最大值与最小值相差不大的整数序列的排序。它比快速排序更快,但是不具有普遍适用性。排序过程:现有一个长度为n的待排...
2019-02-19 14:53:22
366
原创 排序算法——十大排序算法总结与对比
一、十大排序算法复杂度对比 二、关于排序算法的总结1、基数排序仅仅适用于整型数的排序,一般不与另外的排序方法一起比较。2、关于算法的稳定性:不稳定的算法有 “快希选堆”——快速排序,希尔排序,选择排序和堆排序。3、关于问题的规模(1)数据规模较大时,应该选择平均复杂度较好的算法:优先考虑排序、归并排序、堆排序树形选择排序、希尔排序等。(2)数据规模较小时选择较简单的...
2019-02-18 19:40:37
1099
原创 排序算法——基数排序
基数排序称桶排序。它按照记录的各位值逐步进行排序。适用于整数类型的排序。基数排序不同于别的排序方法通过比较和交换来排序,它是通过按照桶来分配和收集的方法实现的。基本思想:假设待排序的记录都是m位d进制(不足m位的高位补0)。设置d个桶(0,1,...,d-1)。首先将序列中的记录按照最低位值的大小分配到各个桶中,然后按照桶号的大小收集记录,如果一个桶内有多个记录,按照进桶的先后顺序收集,形成一...
2019-02-18 18:05:11
530
原创 排序算法——归并排序(二路归并)
二路归并的基本思想:将含有n个记录的原始序列看做n个长度1的子序列。从第一个子序列开始,将相邻的两个子序列合并,得到长度为2或1(最后只剩下1个子序列的情况)的子序列。如此重复成对归并,直到序列的长度等于原始序列的长度时为止。基本过程:两个有序序列的合并。排序过程如下图:C++代码://一次二路归并过程//对序列a[0]...a[length-1]进行一次二路归并排序,每个...
2019-02-16 18:40:23
4444
原创 排序算法——交换排序(冒泡排序、快速排序)
交换排序:利用交换数据元素位置的方法进行排序的方法一、冒泡排序基本思想:将序列中第一个记录与第二个记录比较,若前一个大于后一个,则交换位置。然后比较第二个和第三个,第三个和第四个,以此类推,一轮之后,序列中最大的元素就到了序列最后的位置上。继续进行第2轮,第3轮,第n-1轮。若其中某一轮途中没有元素交换,则证明序列已经排好序,后面的轮次不需要再进行。冒泡排序是稳定的排序。排序过程如图所...
2019-02-14 21:17:57
1362
原创 排序算法——分类、插入排序
一、排序算法的分类1、稳定排序和不稳定排序稳定排序:关键字相同的记录排序前和排序后的顺序不变。反之则为不稳定排序稳定排序有:直接插入排序,折半插入,冒泡排序,直接选择排序,基数排序,归并排序不稳定排序有:希尔排序,快速排序,堆排序 2、内排序和外排序按排序时记录存储的位置划分。内排序:只使用计算机内存存放待排序记录。包括插入排序、选择排序、交换排序、归并排序和基数排...
2019-02-14 14:58:42
397
原创 数据结构和算法——基础概念
一、数据结构1、什么是数据结构数据结构是研究计算机中数据存储的组织形式(逻辑结构和物理结构),定义且实现对数据相应的高效运算,以提高计算机数据处理能力(目的)的一门科学。 2、数据元素和数据结构类型数据元素是数据存储的基本单位,例如:在商品数据信息中,每一个商品数据就是一个数据元素。商品数据元素由商品名、商品价格、商品编号、商品数量组成。这些项目叫做数据项。数据项中,能起到标识...
2019-01-27 14:53:18
715
原创 CentOS7+mysql5.6 Master-Slave主从数据库设置
一、安装CentOS7主机1:10.175.201.254 master主机2:10.175.201.253 slave 二、安装mysql,初始配置,并实现远程连接1、安装# yum install mysql# yum install mysql-server# yum install mysql-develMysql-server会安装失败,因为C
2017-11-24 22:34:06
754
原创 正则表达式的创建
正则表达式的创建方式分为两种:1、 直接量创建,例如: varreg=/\w/g;2、 通过构造器创建,例如:var reg=new RegExp(“\\w”,”g”);这两种创建是有区别的。具有标志g,即表示全局模式的RegExpObject中有个属性为lastIndex,它存放上一次匹配文本之后的第一个字符的位置。上次匹配的结果是由方法 RegExp.exec() 和 Re
2017-07-26 23:29:54
815
原创 Java输入输出体系
1、Java IO体系2、File:访问本地文件系统,能够新建、删除和重命名文件和目录,但是不能访问文件内容本身,要访问文件内容必须通过输入/输出流。3、如何理解Java的IO流:Java中把不同的输入/输出源(键盘、文件、网络连接等)抽象表述为“流”,IO流是实现输入/输出的基础。通过流的方式允许Java程序使用相同的方式来访问不同的输入/输出源。Stream是从起源(
2017-07-25 23:15:55
517
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人