自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 微服务与SpringCloud

服务注册与发现(eureka),服务调用,服务熔断,负载均衡,服务降级,服务消息队列,配置中心管理,服务网关,服务监控,全链路追踪,自动化构建部署,服务定时任务调度操作分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,称为微服务全家桶。

2022-09-13 16:20:03 1308 2

原创 底层机制Mvcc

隔离级别实现原理(MVCC)MVCC(多版本并发控制Multi-Version Concurrent Control)是MySql提高性能的一种方式,配合Undo log和版本链,让不同的事物的读-写,写-丢操作可以并发执行,从而提升系统性能.MVCC使得数据库读不会对数据加锁,普通的SELECT请求不会加锁,提高了数据的并发处理能力.借助MVCC,数据库可以实现(读已提交)READ COMMITTED,(可重复读)REPETABLE READ等隔离级别.InnoDB的MVCC是通过在每行记录后面保存两个隐

2022-06-16 18:00:11 218

原创 MySql索引

索引是帮助MySQL效获取数据的数据结构.排好序的快速查找的数据结构数据库在存储数据本身之外,还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引.索引原理索引的目的在于提高查询效率,本质通过不断的缩小想要获取数据的范围拉力筛选出最终想要的结果,同时把随机的事件变成顺序的事件,有了这种机制,我们可以总是用同一种查找方法来锁定数据.借助索引,执行查询时不必扫描整个表就能够快速地找到所需要的数据.索引优势提高数据检索的效率,降低数据

2022-06-16 17:57:30 180

原创 Java并发编程

Java线程,并发编程

2022-06-06 09:31:48 246

原创 Java进阶-JVM(三)垃圾回收

目录垃圾回收垃圾回收概述垃圾回收相关算法垃圾回收Java和C++语言的区别,就在于垃圾收集技术和内存动态分配,C++语言没有垃圾收集技术,需要程序员手动收集.垃圾收集,不是Java语言的伴生产物.早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生.垃圾收集机制是Java的招牌能力,极大地提高了开发效率,如今,垃圾收集几乎称为现代语言的标配,即使经过如此长时间的发展,Java的垃圾收集机制仍然不断的演进中,不同大小的设备,不同特征的应用场景,对垃圾收

2022-05-30 12:10:12 197

原创 Java进阶-jvm(二)

JVM结构-类加载类加载子系统类加载器子系统负责从文件系统或者网络中加载class文件.classLoader只负责class文件的加载,由Execution Engine决定是否可以运行.加载的类信息存放于一块方法区称为(元空间)的内存空间.类加载的角色1.Class File存在于硬盘上,而最终这个模板再执行的时候要加载JVM当中来,根据这个模板实例化出n个一模一样的实例.2.class file 加载到JVM中,被称为DNA元数据模板,放在方法区.3..

2022-05-27 11:23:35 174

原创 Java进阶-JVM概述(一)

虚拟机虚拟机就是一台虚拟的计算机,是一款软件,用来执行一系列虚拟计算机指令.可以分为系统虚拟机和程序虚拟机.Java虚拟机就是一种执行Java字节码文件的虚拟计算机,它拥有独立的运行机制.Java技术的核心就是Java虚拟机,所有的java程序都运行在java虚拟机内部.JVM的作用java虚拟机就是二进制字节码的运行环境,负责装载字节码到其内部,解释或编译为对应平台上的机器码指令执行,每一条java指令,java虚拟机中都有详细定义,如怎么处理操作数,处理结果放在那..

2022-05-26 08:44:48 151

原创 Java进阶-Redis

Redis是单线程还是多线程Redis6.x之前是真正意义上的单线程,对外提供的键值存储的主要流程是单线程,也就是网络IO和数据读写是有单个线程来完成的.Redis6.x引入多线程指的是网络请求过程采用了多线程,而键值对读写命令任然是单线程处理的,所以Redis依然是并发安全的,也就是只有网络请求模块和数据操作模块是单线程的,而其他的持久化,集群数据同步等,是由额外的线程执行的.Redis设计为单线程模式速度依然很快1.基于内存操作:Redis的所有数据都在内存中,所有的运算都是内存级别的,

2022-05-22 12:51:50 185

原创 SpringBoot集成Redis

Jedis 是 Redis 官方推出的一款面向 Java 的客户端,提供了很多接口供 Java语言调用。可以在 Redis 官网下载.Spring-data-redis 是 spring 大家族的一部分,提供了在 srping 应用中通过简单的配置访问 redis 服务,对 reids 底层开发包(Jedis, JRedis, and RJC)进行了高度封装,RedisTemplate 提供了 redis 各种操作.spring-data-redis 针对 jedis 提供了如下功能:.

2022-05-21 13:45:42 259

原创 Redis特征与数据类型

Redisredis主要用来做数据缓存,即远程字典服务,开源的,支持网络交互,内存中的key-value数据结构存储系统,支持多种语言,他可以用作数据库,缓存和中间件.NoSQLNot Only SQL 泛指非关系型数据库,区别于关系数据库.有一下优点:1.易扩展:数据之间无关系,这样就非常容易扩展,无形之间也在架构的层面上带来了可扩展的能力.2.高性能:NoSql数据库都具有非常高的读写能力,尤其在大数据量下,同样表现优秀,这得益于它的无关系性,数据库的结构简单.3.灵活的数据模型

2022-05-21 13:36:09 165

原创 Java线程,进程,多线程,线程同步

线程,进程名词解释,关系程序:是为完成特定任务,用某种语言编写的一组指令的集合,即一段静态代码.进程:就是正在执行的程序,从windows角度讲,进程是操作系统进行资源分配的最小单位.线程:进程可进一步细化为线程,是一个进程内部的最小执行单元,是操作系统进行任务调度的最小单元,隶属于进程.一个进程可以包含多个线程,一个线程只能属于一个进程,线程不能脱离进程而独立运行.每一个进程至少包含一个线程(称为主线程);在主线程中开始执行程序,Java程序的入口main()方法就是在主线程中被执行的

2022-05-16 20:00:21 109

原创 Java中IO流

File类File类是java.io包中很重要的一个类;File类的对象可以表示文件,还可以表示目录,在File类对象可以代替一个文件或目录.File对象可以对文件或目录的属性进行操作,例:文件名,最后修改日期,文件大小等.File对象无法操作文件的具体数据.即不能直接对文件进行读/写操作.File类的构造方法:File(String pathname);指定文件或目录名和路径创建文件对象.1.在当前目录下创建一个与java.txt文件名相关联的文件对象.File f1=ne

2022-05-15 13:37:17 191

原创 DFS & BFS

DFS深度优先搜索深度优先搜索分为2步:1.递归下去2.回溯上来深度优先,以深度为准则,先一条路走到底,直到到达目标,也就是递归下去,若没有到达目标且又无路可走,那么退回到上一步的状态,在另一条路,这便是回溯上来如上图从x走到o,先向右走,走到底发现无路可走.回溯到上一个位置然后再向下走走到最下边时,可以发现在向右走一步就可以到达终点.BFS广度优先搜索广度优先搜索和深度优先搜索的不同在...

2022-04-27 12:47:40 80

原创 栈和队列

1.栈同顺序表和链表一样,栈也是用来存储逻辑关系为"一对一"数据的线性存储结构.栈存储结构与之前学的线性存储结构有所差异:(1)栈只能从表的一端存取数据,另一端是封闭的.(2)在栈中,无论是存数还是取数据,都必须遵循"先进后出原则",即最先进栈的元素最后出栈.通常,栈的开口端被称为栈顶;封口端被称为栈低.进栈和出栈基于栈结构的特点,在实际应用中,通常会对栈执行一下两种操作.(1)向栈中添加元素.(进栈,入栈或压栈)(2)从栈中取出元素.(出栈或弹栈)栈的具体实现栈是一

2022-04-26 17:29:49 67

原创 String类

String类不可变:string类不能改变的是对象内的成员变量值.String不可变的好处以及为什么不可变:1.便于实现字符串常量池,节省空间.在Java语言中,会大量使用到字符串,若每一册声明一个String创建一个新的String对象,这是多大的空间资源的浪费,Java中就提出了一个String Pool(字符串常量池)的概念,会在堆中开辟一块存储空间,当每次初始或一个String变量时,若该字符已经存在,就不会在创建新的字符串变量,而是返回已存在字符串的引用.2.使多线程安全.

2022-03-28 19:57:12 698

原创 SpringBoot跨域上传图片

2022-03-26 17:06:51 792

原创 网络编程(OSI七层模型和TCP/IP四层模型)

网络模型 OSI七层模型和TCP/IP四层模型OSI七层模型:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层.TCP/IP四层的体系结构:应用层,运输层,网际层和网络接口层.五层体系结构:应用层,运输层,网络层,数据链路层和物理层.五层协议时OSI和TCP/IP的综合,实际应用还是TCP/IP的四层结构.为了方便可以把下两层称为网络接口层.各层的应用:1.物理层:主要定义物理设备标准,如网线的接口类型,光纤的接口类型,各种传输介质的传输速率等.它的主要作用是传输比特流

2022-03-26 11:42:13 964

原创 Java中线程,进程

什么是线程,进程, 他们之间的关系程序:是为完成特定任务,用某种语言编写的一组指令的集合.即指一段静态的代码.进程:就是正在执行的程序,从Windows角度讲,进程是操作系统进行资源分配的最小单位.线程:进程可进一步细化为线程,是一个进程内部的最小执行单元,是操作系统进行任务调度的最小单元,隶属于进程.一个进程可以包含多个线程,一个线程只能属于一个进程,线程不能脱离进程而独立运行;每一个进程至少包含一个线程(称为主线程);在主线程中开始执行程序,Java程序的入口main()方法就是在主

2022-03-25 13:28:03 768

原创 IO流以及对象序列化

File类的作用一个File类对象可以代表一个文件或目录,File可以实现获取文件和目录属性等功能,可以实现对文件和目录的创建,删除等功能.File类操作目录与文件的常用方法文件方法:createNewFile();创建新文件delete();直接从磁盘删除exists();查询磁盘中是否存在指定文件getAbsolutePath();获取绝对路径getPath();获取相对路径getName();获取文件名,相当于调用了一个toString方法isFile(

2022-03-24 11:18:58 230

原创 集合及其实现类

为什么提供不同的集合类Java是面向对象的语言,我们在编程的时候自然需要存储对象的容器,数组可以满足这个需求,但是数组的初始长度是固定的,但是我们往往需要一个长度可变的容器.因此,集合出现了.集合与数组的区别(1)长度区别:集合长度可变,数组长度不可变.(2)内容区别:集合可存储不同类型的元素,数组存储单一类型元素萨.(3)元素区别:集合只能存储引用类型元素,数组可存储引用类型,也可存储基本类型.然而在我们的开发实践中,经常需要保存一些可变长度的数据集合,于是,我们需要一些能够动态增

2022-03-23 18:03:05 979

原创 异常及异常处理

什么是异常程序的运行或编译时,所产生的错误通常称为异常(也叫BUG),而异常又分为Error,Exception当程序遇到Error这种异常时不能处理,因为这种异常是物理设备的异常,例如内存不足之类的;而程序能运行捕获的异常就是编译时异常和运行时异常,这些都能通过改代码来调整修复回来.JVM的默认处理方案:如果程序出现了问题,我们没有做任何处理,最终JVM会做默认处理:(1)把异常的名称,,异常的原因及异常出现的位置等信息输出在控制台.(2)程序停止运行.1.运行时异常(1)又称为c

2022-03-23 17:57:03 614

原创 String类,以及String,StringBuffer,StringBuilder的区别

String类定义的字符串特点1.字符串内容永不可变.2.字符串可以共享使用.3.字符串的效果相当于char[]字符数组,但是底层原理都是byte[]字节数组.创建字符串对象的方式有几种,有什么区别1.public String():创建一个空白字符串.new String().2.public String(char[] arr)(1):根据字符数组的内容,来创建对应的字符串.char c[]={'a','b','c'};String str=new String(c)

2022-03-23 10:37:38 111

原创 java常用类

基本类型包装类(1)包装类:能够直接将简单类型的变量表示为一个类,在执行变量类型转换时,我们会大量使用这些包装类.(2)包装类的用途:1.集合不允许是有基本类型,故常用包装类.2.包含每种基本类型的相关属性,如最大值,最小值,所占位数等.3.作为基本数据类型对应的类类型,提供一系列实用的对象操作,如类型转换,进制转换等.(3)基本类型与包装类型的区别:1.Java中,一切皆为对象,但八大基本数据类型却不是对象.2.声明方式不同,基本数据类型无需通过new关键字来创建,而封装类

2022-03-22 16:53:11 596

原创 java中常用关键字

static关键字的用法(1)用法:1.static关键字表示静态.能与属性,方法,代码块,内部类等一起使用.2.static修饰属性和方法时,可以直接通过类名.属性或类名.方法访问.3.静态变量:一个类中,静态变量只分配一块内存区间.多个实例共享该内存空间.静态的变量在类加载时,被初始化.也就是说,只要类被加载,不管是否使用该静态变量,则都会自动为其开辟空间,并初始化.4.静态方法:在类加载时,加载到JVM,直接使用类名,方法名调用.5.静态代码块:是类的组成部分,

2022-03-22 16:50:02 1466

原创 java中包的作用

作用:1.把功能相同相似或相关的类或接口组织在同一个包中,方便查找和使用.2.如同文件夹一样,包也采用了树形目录的存储方式.同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,因加上包名加以区别.因此可以避免名字冲突.3.包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类.包的定义:在一个java文件中可以一个public类和多个非public类,如果将这些组织在一个包当中,则在Java文件中除注释以外的第一行使用关键字packag

2022-03-22 16:43:30 1786

原创 面向对象语言

说到面向对象语言,就离不开面向过程的语言,面向过程的语言首先分析解决问题的步骤一步一步实现,直接关注过程,而面向对象的语言以分类的方式进行思考和解决问题,面向对象先对整体的关系作出分类,然后根据不同的类深入细节处理,面向对象的语言符合人类的认知习惯.面向对象无法取代面向过程,他们是相辅相成的,面向对象关注与从宏观上事物之间的关系,再聚义到如何实现某一个细节,任然采用面向过程的思维方式.面向对象如果离开了面向过程,就无法真正的落地成为无源之水.面向过程将大象装进冰箱:打开冰箱,将大象装入冰箱,关闭冰箱

2022-03-21 17:13:46 1266

原创 Java中的数组

数组的特点1.数组是一块连续的内存空间,以下标(从0开始,最大下标为数组长度-1)来描述空间的位置.2.数组的元素都是变量,变量的类型为定义数组时的类型.3.数组创建后会对每个元素进行初化.int值为0,double值为0.0,引用类型为null.4.数组创建后不可以改变.格式: int[] a=new int[5];创建长度为5的空间,每一个数组的元素初始化都为0;a[1]=5;就是将第二个元素赋值为3数组的优缺点(1)优点:1.按照索引查询元素速度快.2.能存储大量数

2022-03-09 19:24:52 248

原创 while,do while的区别,for与while使用场景,break,continue的用法,return的作用

while,do while的区别while语句如下形式:while(逻辑表达式){语句:..;}执行过程:先判断逻辑表达式的值.若为true.则执行其后面的语句,然后再次判断条件并反复执行,直至条件不成立为止.do while 语句为如下形式:do{语句;...;}while(逻辑表达式);执行过程:先执行语句,在判断逻辑表达式的值,若为true,在执行语句,否则结束循环.while是先判断再执行。do-while是先执行再判断。当第一次条件..

2022-03-09 19:23:20 1078

原创 if和switch的区别和使用场景

if条件结构:if条件结构是根据条件判断之后再做处理:基本的if条件结构:if(条件){//语句}条件表达式必须是一个返回布尔结果的表达式.语句可以是用{}包含的语句块.if-else条件结构:if(条件){//语句1}else{//语句2}条件返回值为true执行语句1,为false执行语句2.switch语句:多分支选择语句,根据表达式的值,来执行多个操作中的一个.switch(表达式){case value1://语句序列1;[b

2022-03-09 19:20:09 2861

原创 Java算术运算符

+,-,*,/,%,++,--"+":(1)正号:+3.(2)加法运算:2+3=5.(3)字符串拼接:"He"+"llo"=Hello."-":(1)负号:-3.(2)减法运算:5-3=2."*":(1)乘法运算: 3*6=18."/":(1)除法运算:8/4=2."%":(1)取模(取余):7%5=2."++":(1)i++自增(先赋值后自增):a=2;b=a++;结果:a=3,b=2.(2)++i自增(先自增后赋值);a=2;b=++a..

2022-03-04 20:01:06 465

原创 Java注释,关键字,标识符命名和数据类型

注释,关键字注释:对程序功能的说明,以某种特定符号作文标记,程序在运行过程中不会执行注释在java语言中有3中不同的注释方式:1.// 用于单行注释2./* 用于多行注释 */3./***用于文档注释,适用于类,方法(函数),属性,功能进行说明,可在调用是提示*/关键字:定义:被java语言赋予了特殊含义,用做专门用途的字符串(单词).特点:关键字中所有字母都小写标识符的命名规则标识符:java对各种变量,方法和类等要素命名使用的字符序列称为标识符

2022-03-04 19:59:42 404

原创 JDK,JRE,JVM的关系

java如何实现跨平台Java 虚拟机(Java Virtual Machine,简称 JVM)是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java 虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。JVM 屏蔽了与具体操作系统平台相关的信息,使 Java 程序只需生成在 Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM 在执行字节码时,实际上最终还是把字节码解释成具体平台上的

2022-03-02 19:39:05 7617

原创 while,do while和for循环

while语句如下形式:while(逻辑表达式){语句:..;}执行过程:先判断逻辑表达式的值.若为true.则执行其后面的语句,然后再次判断条件并反复执行,直至条件不成立为止.do while 语句为如下形式:do{语句;...;}while(逻辑表达式);执行过程:先执行语句,在判断逻辑表达式的值,若为true,在执行语句,否则结束循环.for语句形式如下:for(表达式1;表达式2;表达式3){//语句;...;}执行过程:首先计算表

2021-10-29 15:51:09 231

原创 java如何实现跨平台

java:是一种简单的,面向对象的,适用于网络应用得到,平台无关的,解释的,健壮的,安全的,结构自然的,可移植的,高性能的,多线程的,动态的语言.为什么java是平台无关的java开发人员一定非常熟悉Jdk(Java Development Kit),jre(Java Runtime Rnvironment,Java运行环境),jvm(Java Virtual Machine,即Java虚拟机).Java的平台无关性就离不开 jvm(java虚拟机):Jvm(java虚拟机)就是一个平台,是

2021-10-27 16:19:38 114

原创 JavaSE基础语法

IDE的用法IDE(Integrated Development Environment )集成开发环境,是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器 和图形用户界面等工具。注释对程序功能的说明,以某种特定的符号作为标记,程序在运行过程中不会执行注释.Java语言的三种注释方式:// 用于单行注释,快捷键 ctrl+//*用于多行注释,快捷键ctrl+shift+/ 取消ctrl+shift+\*//**文档注释,用于类,方法(函数),属性

2021-10-22 13:00:56 98

原创 为什么选择JAVA

JAVA语言的用途:(1)服务器程序:银行,证券交易平台,电子商务后台...(2)Android应用:安卓手机,各种移动设备,智能家电...(3)软件工具:开发工具eclipse,IneteliJidea,Netbeans..(4)嵌入式领域:智能卡,传感器上...(5)大数据技术:Hadoop以及其他大数据处理技术都是用JavaJava语言的特点(1)开源(2)j简单,高效(3)面向对象(4)平台无关性(5)交互式特性(6)多线程机制

2021-10-22 12:18:53 56

原创 面向对象2

对象与引用Java语言中除基本类型之外的变量类型都称之为引用类型.Java中的对象是通过引用对其操作的.例:我们有一个自定义类为Fruit(水果类)class Fruit{String name;String color;Int size;}Fruit fruit=new Fruit();通常把这条语句的动作称之为创建一个对象,其实,它包含了三个动作.(1)右边的"new Fruit()",是以Fruit类为模板,调用Fruit类 的构造函数,在堆空间里创建一个F

2021-10-17 19:10:23 371

原创 面向对象1

面向过程和面向对象的设计思想java类类:是一个模板,他描述一类事物的属性和行为的集合,类是一个客观世界某类群体的一些基本特征抽例:动物{猴子,大象,猪,.....}成员变量:事物属性的描述方法:事物的行为,(可以做的事情)构造方法:用于创建对象.内部类:即在类体中声明的类.块:一段没有名称的代码块.java类的定义1.发现类:根据不同类型的车,抽象出"类".类的声明格式:[访问权限修饰符] [修饰符] class 类名{}访问修饰符有两种public

2021-10-17 19:09:52 50

原创 数据库DQL语句

DQL(Data Query Language)数据查询语言查询是使用评率最高的一个操作,可以从一个表中查询数据,也可以从多个表中查询数据一.语法:select 查询列表 from 表名 [where 条件]特点:1.查询列表可以是一个表中的字段,常量,表达式,函数 2.查询的结果是一个虚拟的表查询结果处理:查询常量值 SELECT 100;查询表达式:select 100*98;查询函数:select 函数; / 例如version()特定列查询:select co...

2021-09-27 22:06:12 196

原创 mysql基础语法

mysql创建,删除数据库创建;create database 数据库名//0charset utf8设置编码删除:dorp database 数据库名修改字符集:alter database 数据库名 charset 编码格式DDL语句:表的数据类型:char(n) 长度为n的字符串varchar(n) 最大长度为n的可变长字符串date 日期包含年月日datetime 年月日 时分秒浮点型:float(x,y) x数据总长度,y表示小数点后的长度double(m,n) m

2021-09-27 21:14:24 76

空空如也

空空如也

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

TA关注的人

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