自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

胖子

0.0

  • 博客(51)
  • 收藏
  • 关注

原创 Java知识整理——正则表达式

规则字符在java.util.regex.Pattern类中常用组成规则字符字符类预定义字符类边界匹配器数量词字符类. 任何字符(与行结束符可能匹配也可能不匹配)如果我就想表示这个点. 用\.\d 数字:[0-9]\D 非数字: [^0-9]\w 单词字符:[a-zA-Z_0-9] \W 非单词字符:[^\w]预定义字符类^ ...

2019-08-13 20:41:45 137

原创 Java知识整理——反射、枚举、注解、泛型

(1)、类的加载当程序要执行某个类的时候,如果这个类还没有被加载到内存中,系统会通过加载、链接、初始化三步来实现对这个类的初始化。加载: 加载就是把class文件读入到内存中,并对应的创建一个Class对象,任何类被使用的时候系统都会建立一个Class对象 链接: 验证 内部结构是否是正确的,并且和其他类协调一致 准备 负责为类的静态成员分配内存空间,并设置默认初始化值 解析 把类的二进制...

2019-08-12 22:53:35 319

原创 Java知识整理——网络编程

(1)、InetAddress类InetAddress的实例对象包含以数字形式保存的IP地址,同时还可能包含主机名(如果使用主机名来获取InetAddress的实例,或者使用数字来构造,并且启用了反向主机名解析的功能)。InetAddress类提供了将主机名解析为IP地址(或反之)的方法。程序:public static void main(String[]args) thr...

2019-08-12 22:46:37 180

原创 Java知识整理——IO流

(1)、JavaIO流使用了一种装饰器设计模式,将IO流分成底层节点流和上层处理流。(2)、Flie(java.io.File)类文件和目录路径名的抽象表示形式,与平台无关File 能新建、删除、重命名文件和目录,但 File不能访问文件内容本身。构造方法public File(String pathname):如果pathname是相对路径,则默认的当前路径在系统属性user...

2019-08-01 23:52:28 194

原创 Java知识整理——集合

(1)、为什么要有集合?面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象进行操作我们就需要把这多个对象进行存储,要存储多个对象,不能是一个基本的变量。需要的是一个容器变量。我们前面所学,只有数组和StringBuffer是容器,但是StringBuffer的结果是一个字符串,不一定能满足我们的要求,所以只能选择数组,但是数组的长度不能变化,又满足不了变化的需求,所以,java就提供...

2019-07-31 22:29:50 119

原创 Java知识整理——JavaAPI

(1)、String类字符串是由多个字符组成的一串数据(字符序列),字符串可以看作是字符数据,通过API,我们知道字面值"abc"也是一个对象,字符串是常量,一旦被赋值就不能改变。1)构造方法public String() public String(byte[] bytes)把字节数据转成字符串public String(byte[] bytes,int offset,int l...

2019-07-30 22:52:42 176

原创 Java知识整理——多线程

(1)、java命令会启动java虚拟机(jvm),相当于启动了一个应用程序,也就是启动了一个进程。然后该进程启动一个主线程,由主线程调用某个类的mian方法,所以main方法运行在主线程中的,前面的程序都是单线程程序。(2)、jvm虚拟机启动是多线程的。因为垃圾回收线程也启动,否则就很容易出现内存溢出。一个主线程加上垃圾回收线程,至少都是2个线程,所以,jvm启动是多线程的。(3)、线程...

2019-07-30 21:38:25 142

原创 算法归纳(五)二叉树相关问题

(1)、在二叉树中找到一个节点的后继节点【题目】 现在有一种新的二叉树节点类型如下:public class Node { public int value; public Node left; public Node right; public Node parent; public Node(int data) { this....

2019-07-26 22:18:13 189

转载 设计模式之抽象工厂模式

一、介绍抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的...

2019-07-25 23:11:49 90

转载 设计模式之观察者模式

一、介绍当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目标对象)的状态发生改变...

2019-07-25 23:06:55 83

转载 设计模式之工厂模式

一、介绍在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用:我们明确地计划不同条件下创建不同实例时。如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。关键代码:创建过程在...

2019-07-25 23:03:48 66

转载 设计模式之装饰器模式

一、介绍装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。意图:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。主要解决:一般的,我们为了...

2019-07-25 22:52:47 199

转载 设计模式之适配器模式

一、介绍适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。我们通过下面的实例来演示适配器模式的使用...

2019-07-25 22:50:01 76

转载 设计模式之单例模式

一、GOF与设计模式GOF四位作者合著出版了一本名为 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素)他们所提出的设计模式主要是基于以下的面向对象设计原则。对接口编程而不是对实现编程。优先使用对象组合而不是继承。二、设计模式分类模式可以分为三大类...

2019-07-25 14:47:56 97

原创 算法归纳(四)二叉树的先序中序后序遍历

(1)、实现二叉树的先序、中序、后序遍历,包括递归方式和非递归方式1)递归方式public static class Node { public int value; public Node left; public Node right; public Node(int value) { this.value = value; ...

2019-07-24 22:47:42 223

原创 算法归纳(三)

排序及其汇总1)、冒泡:O(N^2) 最好:O(N) 空间复杂度:O(1) 稳定在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。最好情况是因为队列有序。(2)、选择:O(N^2) 空间复杂度:O(1) 不稳定每趟从待排序的记录序列中选择关键字最小的记录放置到已排序表的最前位置,直到全部排完...

2019-07-22 23:45:29 157

原创 算法归纳(二)排序算法

(1)、冒泡:O(N^2) 最好:O(N) 空间复杂度:O(1) 稳定在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。最好情况是因为队列有序。public void bubbleSort(int arr[]) { boolean didSwap; for(int i = 0, len = ...

2019-07-21 11:56:37 152

原创 算法归纳(一)

(1)、给定一个数组arr,和一个数num,请把小于等于num的数放在数组的左边,大于num的数放在数组的右边。要求额外空间复杂度O(1),时间复杂度O(N)public class Demo1 { /*** * 给定一个数组arr,和一个数num,请把小于等于num的数放在数组的左边, * 大于num的数放在数组的右边。要求额外空间复杂度O(1),时间复杂度O(...

2019-07-21 00:10:27 131

原创 Java知识整理——面向对象

一、基础知识(1)、面向对象的编程关注于类的设计(2)、成员变量 vs 局部变量相同点:遵循变量声明的格式、都有作用域不同点:声明的位置、修饰符、初始化值、内存中位置、生命周期局部变量:方法局部变量、代码块局部变量(3)、两同:同名、同参 两小:返回值类型、异常类型 一大:访问权限(4)、每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的...

2019-05-19 23:10:45 132

原创 Java知识整理——Java基础

一、JDK目录bin:用于存放一些可执行程序db:小型数据库jre:java运行时环境include:JDK是通过C和C++实现的,启动时需要引入一些C和C++的头文件lib:java类库或库文件src.zip:JDK核心类的源代码二、配置临时环境变量临时配置方式:通过dos命令中set命令完成这种配置方式只在当前dos窗口有效。窗口关闭,配置消失。从JDK...

2019-05-19 22:49:59 282

原创 模拟CAS算法

CAS是一种无锁的非阻塞算法的实现。CAS包含了 3 个操作数:需要读写的内存值V(修改前读取的旧值)、进行比较的值A(新写入时读取的数值)、拟写入的新值B当且仅当V的值等于A时,CAS通过原子方式用新值B来更新V的值,否则不会执行任何操作。public class TestCompareAndSwap { public static void main(Strin...

2019-05-18 16:13:20 325

原创 JavaNIO实现阻塞式UDP通信

服务端import java.io.IOException;import java.net.InetSocketAddress;import java.net.ProtocolFamily;import java.net.SocketAddress;import java.nio.ByteBuffer;import java.nio.channels.DatagramChannel;...

2019-05-18 13:46:42 253

原创 Java7自动资源管理

一、Java7自动资源管理Java 7增加了一个新特性,该特性提供了另外一种管理资源的方式,这种方式能自动关闭文件。这个特性有时被称为自动资源管理(Automatic Resource Management, ARM), 该特性以 try 语句的扩展版为基础。自动资源管理主要用于,当不再需要文件(或其他资源)时,可以防止无意中忘记释放它们。二、自动资源管理基于try语句的扩展形式try(需...

2019-05-17 22:31:17 484

原创 Charset(字符集)操作

一、编码与解码编码:字符串 -> 字节数组解码:字节数组 -> 字符串二、查看所有字符集public void Test05(){//获得字符集并输出 SortedMap<String, Charset> so = Charset.availableCharsets(); for (String s : so.keySet()) { ...

2019-05-15 19:18:14 15917

原创 MySQL性能分析

(1)、MySQL常见瓶颈CPU :SQL中对大量数据进行比较、关联、排序、分组IO:实例内存满足不了缓存数据或排序等需要,导致产生大量 物理 IO。查询执行效率低,扫描过多数据行。锁:不适宜的锁的设置,导致线程阻塞,性能下降。死锁,线程之间交叉调用资源,导致死锁,程序卡住。服务器硬件的性能瓶颈:top,free, iostat和vmstat来查看系统的性能状态(2...

2019-05-11 20:32:36 149

原创 MySQL索引分类

(1)、主键索引设定为主键后数据库会自动建立索引,innodb为聚簇索引语法:#随表一起建索引:CREATE TABLE customer (id INT(10) UNSIGNED AUTO_INCREMENT ,customer_no VARCHAR(200),customer_name VARCHAR(200), PRIMARY KEY(id) );#使用AUTO_I...

2019-05-10 14:35:23 11976 2

原创 聚簇索引、全文索引与哈希索引

(1)、聚簇索引聚簇索引并不是一种单独的索引类型,而是一种数据存储方式。术语“聚簇”表示数据行和相邻的键值进错的存储在一起。如下图,左侧的索引就是聚簇索引,因为数据行在磁盘的排列和索引排序保持一致。聚簇索引的好处:按照聚簇索引排列顺序,查询显示一定范围数据的时候,由于数据都是紧密相连,数据库不用从多个数据块中提取数据,所以节省了大量的io操作。聚簇索引的限制:对于m...

2019-05-09 21:02:56 1457

原创 B-Tree与B+Tree索引

(1)、B-Tree(平衡多路查找树)索引【初始化介绍】 一颗b树,浅蓝色的块我们称之为一个磁盘块,可以看到每个磁盘块包含几个数据项(深蓝色所示)和指针(黄色所示),如磁盘块1包含数据项17和35,包含指针P1、P2、P3,P1表示小于17的磁盘块,P2表示在17和35之间的磁盘块,P3表示大于35的磁盘块。【查找过程】如果要查找数据项29,那么首先会把磁盘块1由磁盘加载到内存...

2019-05-09 21:00:50 212

原创 数据库索引简介

(1)、什么是索引?MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。可以得到索引的本质:索引是数据结构。可以简单理解为“排好序的快速查找数据结构”。(2)、 索引介绍在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。下图就是...

2019-05-09 20:59:36 231

原创 SQL执行顺序与JOIN图

(1)、SQL执行顺序手写机读随着Mysql版本的更新换代,其优化器也在不断的升级,优化器会分析不同执行顺序产生的性能消耗不同而动态调整执行顺序。下面是经常出现的查询顺序:总结(2)、JOIN图...

2019-05-09 20:57:10 1304

原创 MySQL的用户与权限管理

(1)、创建用户:create user zhang3 identified by '123123';(2)、了解用户表查看用户:select host,user,password,select_priv,insert_priv,drop_priv from mysql.user;同一用户通过不同方式链接的权限是不一样的(3)、权限管理1)、权限授予grant...

2019-05-04 13:37:26 95

原创 MySQL逻辑架构

(1)、概述和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。(2)、分层连接层:最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的...

2019-05-04 13:34:50 112

原创 MySQL字符集问题

(1)、查看数据库字符集show variables like '%char%';(2)、修改my.cnf在/usr/share/mysql/ 中找到my.cnf的配置文件,拷贝其中的my-huge.cnf 到 /etc/ 并命名为my.cnfmysql 优先选中 /etc/ 下的配置文件,然后修改my.cnf。以下几种配置文件分别用于不同的硬件环境my-small.cn...

2019-05-04 13:33:44 96

原创 MySQLRPM方式安装

一、概述MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。二、MySQL安装(1)、下载地址:https://dev.mysql.com/downloads/mysql/(2)、rpm安装:执行安装命令前,先执行查询命令rpm -qa|grep mysql如果存在mysql-libs的旧版...

2019-05-04 13:25:01 264

原创 TCL-事务控制语言

一、事务的特性ACID原子性:一个事务不可再分割,要么都执行要么都不执行一致性:一个事务执行会使数据从一个一致状态切换到另外一个一致状态隔离性:一个事务的执行不受其他事务的干扰持久性:一个事务一旦提交,则会永久的改变数据库的数据.二、事务的创建隐式事务:事务没有明显的开启和结束的标记比如insert、update、delete语句显式事务:事务具有明显的开...

2019-04-30 19:34:52 359

原创 [Java8新特性]:接口中的默认方法与静态方法

接口中的默认方法与静态方法(1)、接口中的默认方法Java8中允许接口中包含具有具体实现的方法,该方法称为“默认方法”(也称为扩展方法或虚拟扩展方法或防护方法),默认方法使用 default 关键字修饰,它的使用方式类似于抽象类中非抽象成员方法。扩展方法不能够重写Object 中的方法,却可以重载Object 中的方法。默认方法允许我们在接口里添加新的方法,而不会破坏实现这个接口的...

2019-04-23 22:27:33 135

原创 [Java8新特性]:新时间日期API

新时间日期API(1)、java.time包构成java.time:包含值对象的基础包java.time.chrono:提供对不同的日历系统的访问java.time.format:格式化和解析时间和日期java.time.temporal:包括底层框架和扩展特性java.time.zone:包含时区支持的类(2)、java.time 本地日期时间类LocalDate...

2019-04-23 21:22:04 220

原创 [JavaAPI]:日期类

一、Date类Date类概述表示特定的瞬间,精确到毫秒Date类的构造方法public Date()根据当前默认的毫秒值创建日期对象public Date(long date)根据给定的毫秒值创建日期对象Date类的成员方法public long getTime()public void setTime(long time)二、DateFormat类概述...

2019-04-23 19:02:58 172

原创 [Java8新特性]:Stream API

Stream API(1)、Stream 是Java8中处理集合的关键抽象概念,它可以指定用户希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用SQL执行的数据库查询。也可以使用Stream API来并行执行操作。简而言之,Stream API提供了一种高效且易于使用的处理数据的方式。(2)、什么是 Strea...

2019-04-23 17:01:05 152

原创 文件权限管理

一、文件系统权限(vfs提供)devic->filesystem->vfs(虚拟文件系统)vfs提供了权限控制二、文件系统普通/标准权限(1)、UGO权限ls -l:查看权限UGO权限:文件所属人:文件所属组UGO,不包括第一位文件类型和最后一位,三位为一组U(user):所属人G(group):所属组O(other):其他人访问文件先...

2019-04-19 08:52:00 191

空空如也

空空如也

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

TA关注的人

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