自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM系列 ---- GC算法 垃圾收集器

概述垃圾收集器 Garbage Collection 通常被称为“GC”,它诞生于1960年MIT的Lisp语言,经过半个世纪,目前已经十分成熟了。jvm中,程序计数器,虚拟机栈,本地方法栈都是随着线程而生随着线程而灭,栈帧随着方法进去和退出做入栈和出栈的操作,实现了自动的内存清理,因此,我们的内存回收主要集中于Java堆和方法区中,在程序运行期间,着部分内存的分配和使用都是动态的对象存活判断判断对象是否存活一般有两种方法引入计数:每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减

2022-01-19 17:14:03 344

原创 Mongo配置

系统日志相关配置systemLog: # 默认的日志信息 冗长级别的组件。详细程度决定了MongoDB输出的Informational和Debug消息的数量 verbosity: <int> #以尝试限制输出量的方式运行mongos或mongod在安静模式下运行 quiet: <boolean> #打印详细信息以进行调试 traceAllExceptions: <boolean> #将消息记录到syslog时使用的工具级别 sysl

2022-01-19 17:11:33 799

原创 设计模式 ---- 单例模式 (Singleton Pattern)

介绍单例模式(Singleton Pattern)是java 中最简单的设计模式之一。这类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供一种访问其唯一对象的方式,可以直接访问,不需要实例化该类的对象单例的要求构造方法必须私有化(确保只有自己能创建)以静态方法返回实例(外界不能通过new来获取对象)确保对象实例只有一个(只对类进行一次实例化,以后都直接获取第一次实例化的对象)单例实现饿汉式

2022-01-19 17:02:46 173

原创 设计模式 ---- 工厂模式

概述工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。该模式用于封装和管理对象的创建,是一种创建型模式。本文从一个具体的例子逐步深入分析,来体会三种工厂模式的应用场景和利弊简单工厂介绍简单工厂模式又叫静态工厂方法(Static Factory Method)是属于创建型模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪种产品的实例。简单工厂模式是工厂模式家族最简单实用的模式,可以

2022-01-18 17:40:49 453

原创 IDEA修改当前使用的git账号

打开控制面板–>用户账户–>凭证管理器如下图点击进入,删除原有的账号当在idea中再提交或下载代码时,就会弹出如下提示框:重新输入你自己的账号就可以了...

2020-04-23 04:18:55 1264 1

原创 java多线程 ---- 死锁

死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止死锁产生的条件java 死锁产生的四个必要条件:互斥使用:即当资源被一个线程使用(占有)时,别的线程不能使用不可抢占:资源请求者不能强制从资源占有者手中夺取资源,资源只能由资源占有者主动释放。请求和保持:即当资源请求者在请求其他的资源的同时保持对原有资源的占...

2020-04-05 21:40:48 123

原创 java多线程 ---- 线程同步

当使用多线程访问同一个资源的时候,非常容易出现线程安全的问题(当多个线程同时对一个数据进行修改的时候,会导致某些线程对数据的修改丢失)。因此,需要采用同步机制来解决这种问题。synchronized关键字每个对象都有一个对象锁与之相关联,该锁表明对象在任何时候只允许被一个线程锁拥有,当一个线程调用对象的一段synchronized代码时,需要先获取这个锁,然后去执行相应的代码,执行结束之后,释...

2020-04-05 14:28:49 142

原创 java多线程 ---- Thread常用方法&线程管理

public class Thread implements Runnable { // 线程名字 private volatile String name; // 线程优先级(1~10) private int priority; // 守护线程 private boolean daemon = false; // 线程id pri...

2020-04-02 23:42:37 156

原创 java多线程 ---- 线程的生命周期

创建(new)状态用new关键字和Thread类或其子类建立一个线程对象后,该线程对象就处于新生状态。处于新生状态的线程有自己的内存空间,通过调用start方法进入就绪状态(runnable)。注意:不能对已经启动的线程再次调用start()方法,否则会出现Java.lang.IllegalThreadStateException异常。就绪(runnable)状态处于就绪状态的线程已...

2020-04-01 23:42:36 111

原创 java多线程 ---- 创建线程

创建线程和启动继承 Thread实现 Runable实现 Callable继承Thread类创建线程类通过继承Thread类创建线程类的具体步骤和具体代码如下:定义一个继承Thread类的子类,并重写该类的run()方法;创建Thread子类的实例,即创建了线程对象;调用该线程对象的start()方法启动线程。class MyThread extends Thread ...

2020-04-01 23:20:51 113

原创 java多线程 ---- 线程与进程的区别

概述几乎所有的操作系统都支持同时运行多个任务,一个任务通常就是一个程序,乜咯运行中的程序就是一个进程。当一个程序运行时,内部可能包括多个顺序执行流,每个顺序执行流就是一个进程什么是进程正在运行中的应用程序,通常称为进程。每个进程都有自己独立的地址空间(内存空间),每当用户启动一个进程时,操作系统就会为该进程分配一个独立的内存空间,让应用程序在这个独立的内存空间中运行什么是线程线程是一个轻...

2020-03-31 07:10:30 274

原创 java反射机制

概述Java反射机制指的是在Java程序运行状态中,对于任何一个类,都可以获得这个类的所有属性和方法;对于给定的一个对象,都能够调用它的任意一个属性和方法。这种动态获取类的内容以及动态调用对象的方法称为反射机制...

2020-03-31 06:27:10 68

原创 类的加载机制

文章目录什么是类的加载类加载过程加载连接验证准备解析初始化JVM初始化步骤类的初始化时机结束生命周期类加载器类的三个加载器加载器的加载顺序类加载机制什么是类的加载当程序主动使用某个类时,如果该类还未被加载到内存中,则JVM会通过 加载、连接、初始化 3个步骤来对该类进行初始化。如果没有意外,JVM将会连续完成3个步骤,所以有时也把这个3个步骤统称为类加载或类初始化类加载过程类从被加载到虚拟...

2020-03-31 04:12:12 63

原创 Listener 监听器

简介监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行监听器的术语事件源: 被监听对象。(目标对象)监听器对象: 用于监听“事件源”的对象注册(绑定...

2020-03-31 01:30:18 163

原创 Servlet

简介Servlet是基于Java技术的Web组件,由容器管理并产生动态的内容。Servlet与客户端通过Servlet容器实现的请求/响应模型进行交互。Servlet通过创建一个框架来扩展服务器的能力,以提供在Web上进行请求和响应的服务。当客户机发送请求至服务器时,服务器可以将请求信息发送给Servlet,并让Servlet建立起服务器返回给客户机的响应。Servlet技术特点高效:在服...

2020-03-29 15:16:20 299

原创 MySQL----索引(Index)

文章目录简介索引优点&缺点使用原则索引的分类单列索引普通索引(INDEX)唯一索引(UNIQUE)主键索引(PROMARY KEY)组合索引全文索引(fulltext index)空间索引索引的创建ALTER TABLE(修改表)CREATE INDEX(创建索引)删除索引简介索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构。类似于字典中的目录,查找字典内容时可以根据目录查找...

2020-03-26 21:48:19 140

原创 MySQL----触发器(trigger)

概念触发器(trigger)是MySQL提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete, update)时就会激活它执行触发器创建的四个要素监视地点(table)监视事件(insert/update/delete)触发时间(after/be...

2020-03-26 16:57:28 137

原创 MySQL---- 自定义函数(FUNCTION)

MySQL 自带的函数可能完成不了我们的业务需求,这时候就需要自定义函数。自定义函数是一种与存储过程十分相似的过程式数据库对象。它与存储过程一样,都是由 SQL 语句和过程式语句组成的代码片段,并且可以被应用程序和其他 SQL 语句调用。创建自定义函数CREATE FUNCTION <函数名> ( [ <参数1> <类型1> [ , <参数2>...

2020-03-26 16:37:23 938

原创 MySQL----游标(Cursor)

概念游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集。 使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。优点允许程序对由查询语句sele...

2020-03-26 16:10:00 125

原创 MySQL----存储过程(Stored Procedure)

存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。是具有名字的一段代码,用来完成一个特定的功能。创建的存储过程保存在数据库的数据字典中存储过程优缺点优点存储过程可封装,并隐藏复杂的商业逻辑存储过程可以回传值,并可以接受参数存储过程无法使用 SELECT 指令来运行,因为它是子程序,与查看表,数据表或用户定义函数不同存储过程可以...

2020-03-26 15:43:57 376

原创 reids简介

Redis是一款高性能的NOSQL系列的非关系型数据库,是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求特性性能极高:官方给出的测试数据 读 110000次/s 写 81000次/s丰富的数据类型:Redis支持的类型string、list、hash、set及ordered set数据库操作原子:Redis的所有操作都是原子性的,意思就是要...

2020-03-24 15:49:05 120

原创 MySQL----事务(Transaction)

一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元)一个完整的业务需要批量的DML(insert、update、delete)语句共同联合完成事务只和DML语句有关,或者说DML语句才有事务。这个和业务逻辑有关,业务逻辑不同,DML语句的个数不同文章目录事务四大特性原子性(Atomicity)一致性(Consistency)隔离性...

2020-03-19 16:51:39 155

原创 MySQL---- 视图(view)

文章目录视图和表的区别使用视图优点定制用户数据,聚焦定制的数据简化数据操作提高基表数据的安全性共享所需数据更改数据格式重用 SQL 语句使用注意事项使用操作创建视图调用视图删除视图MySQL视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成视...

2020-03-19 15:26:17 224

原创 MySQL----DCL

DCL(Data Control Language),即数据控制语言,数据库系统管理员使用,也就是数据库管理员 root 可以添加用户、删除用户、授予和限制用户权限,这些用户的信息可以在数据库的mysql数据库中查询到创建用户create user 用户名@xxx identified by 密码;#指定ip才能登陆create user 用户名@指定ip identified by 密码...

2020-03-19 14:17:06 81

原创 MySQL----数据库基本操作(DQL)

文章目录简单查询给列名起别名条件查询按条件查询按逻辑查询模糊查询排序查询分组查询分组语法聚合函数分页查询mysql特有的limit查询子查询主查询和子查询的关系子查询分类标量子查询列级子查询行级子查询DQL:数据查询语言(Data Query Language):select(查询) from 子句 where 子句简单查询#查询所有列select * from 表名;#查询指定列se...

2020-03-18 05:30:42 73

原创 MySQL----数据库基本操作(DML)

DML:数据操纵语言(Data Manipulate Language)数据操纵语言:定义是用来操作数据 insert(插入) update(修改) delete(删除)数据插入INSERT INTO 表名(字段名,...) VALUES (值,...);单行插入数据#方式一INSERT INTO 表名(字段,...) VALUES (值,...);#方式二INSERT INTO...

2020-03-17 21:46:34 111

原创 MySQL----数据库基本操作(DDL)

DDL:数据定义语言(Data Define Language):定义数据库,数据库表它们的结构:create(创建) drop(删除) alter(修改)库的操作选中数据库要对哪个数据库进行操作USE 数据库名查看所有已建的数据库show databases;创建数据库# 直接创建数据库CREATE DATABASE [if not exists] 数据库名;#创建通用写...

2020-03-17 21:02:05 96

原创 MySQL----概述&sql分类

MySQL概述MySQL是一个关系型数据库管理系统,使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性SQL分类DDL:数据定义语言(Data Define Language):定义数...

2020-03-17 17:20:34 686

原创 MySQL---- 数据类型

整数数据类型含义(有符号)tinyint(m)1个字节 范围(-128~127)smallint(m)2个字节 范围(-32768~32767)mediumint(m)3个字节 范围(-8388608~8388607)int(m)4个字节 范围(-2147483648~2147483647)bigint(m)8个字节 范围(±9.22*10的...

2020-03-17 16:47:34 59

原创 MySQL----完整性约束

数据完整性约束是一组完整性规则的集合。它定义了数据模型必须遵守的语义约束,也规定了根据数据模型所构建的数据库中数据内部及其数据相互间联系所必须满足的语义约束,约束是添加到列上的,用来约束列。完整性约束是数据库系统必须遵守的约束,他限定了根据数据模型所构建的数据库的状态以及状态变化,以便维护数据库中数据的正确性、有效性和相容性,如果数据不正确,那么一开始就不能添加到表中。默认约束(DEFAULT...

2020-03-17 16:18:20 118

原创 MySQL----三大范式

第一范式即表的列具有原子性,不可再分割,即列的信息,不能分解,只要数据库是关系型数据库(mysql/oracle/db2/informix/sysbase/sql server)就自动的满足1NF。数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项,如果实体中的某个属性有多个值时,必须拆分为不同的属性 。通俗理解即一个字段只存储一项信息。第二范式第二范式是在第一...

2020-03-17 15:28:25 146

原创 java 异常处理

什么是异常处理异常处理是基于面向对象的一种运行时错误的处理机制,通过对异常问题的封装,实现对用户的非法操作、参数设置异常,硬件系统异常,网络状态改变异常等运行态中可能出现的异常信息的处理机制异常的继承关系java几种常见的异常运行时异常异常说明java.lang.ArrayIndexOutOfBoundsException数组索引越界异常。当对数组的索引值为负数或...

2020-03-05 20:57:50 178

原创 java IO----BIO、NIO、AIO

文章目录IOBIO(同步阻塞IO)NIO(同步非阻塞IO)NIO的三大核心文件IO(不支持非阻塞的操作)缓冲区(buffer)通道(Channel)例子网络IOjava中常用的编写Socket服务器,通用的几种模式选择器(Selector)SelectionKeyServerSocketChannelSocketChannel例子AIO(异步非阻塞)总结BIO、NIO、AIO适用场景分析IO阻...

2020-03-03 01:02:30 144

原创 java IO----区分阻塞、非阻塞、同步、异步

什么是I/O编程IO在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要IO接口。程序运行是依靠cpu和内存来进行的,I/O操作是相对于内存而言的,从外部设备进入内存就叫Input,反之从内存输出到外部设备就叫Output.I/O按照设备来分的话,分为两种,其一是网络I/...

2020-03-01 22:31:16 170

原创 java IO----序列化与反序列化

什么是序列化和反序列化

2020-03-01 20:08:13 76

原创 Java IO----字符流

类图Reader常用的类&方法常用类含义Reader是字符输入流的所有类的超类,它以字符为单位从数据源中读取数据BufferedReader带有缓冲区的字符输入流InputStreamReader从数据源读取字节并将其解码为使用指定的字符集的字符FileReader用于读取字符类文件,如文本文件StringReader字符串输入流...

2020-03-01 16:32:12 127

原创 Java IO----字节流

类图InputStream常用的类&方法常用类含义InputStreamInputStream抽象类是字节输入流所有类的超类,它以字节为单位从数据源中读取数据FileInputStream以字节为单位从文件中读取数据FilterInputStream封装其它的输入流,并为它们提供额外的功能BufferedInputStream给输入流提供...

2020-03-01 15:47:36 114

原创 Java IO----简介

概念流是一个抽象的概念,它代表一串数据的集合,当Java程序需要从数据源读取数据时,就需要开启一个到数据源的流。同样,当程序需要输出数据到目的地时,也需要开启一个流。流的创建是为了更方便地处理数据的输入和输出流分为几种?按照流的流向分,可以分为输入流和输出流按照操作单元划分,可以划分为字节流和字符流按照流的角色划分为节点流和处理流Java Io流共涉及40多个类,这些类看上去很杂乱...

2020-02-29 22:40:26 82

原创 java集合框架----HashTable源码分析

HashTable 简介

2020-02-29 16:05:16 74

原创 java集合框架----HashMap 源码分析

HashMap简述

2020-02-28 21:50:12 80

空空如也

空空如也

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

TA关注的人

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