自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 JVM之内存区域

运行时数据区域 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器来完成。 另外,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各线程之间计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存。 从上面的介绍中我们知道了程序计数器主要有两个作用: 字节码解释器通过改变程序计数器来依次读取指令,从而实现

2022-05-17 10:22:57 321

原创 一条sql语句是如何执行的

select * from T where id=10 这条查询语句在 MySQL 内部的执行过程? MySQL 逻辑架构图 大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在 这一层实现,比如存储过程、触发器、视图等。 而存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyIS

2022-05-15 10:48:31 188

原创 Mysql索引

什么是索引? 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则在表中搜索所有的行相比,索引有助于更快地获取信息 通俗的讲,索引就是数据的目录,就像看书一样,假如我想看第三章第四节的内容,如果有目录,我直接翻目录,找到第三章第四节的页码即可。如果没有目录,我就需要将从书的开头开始,一页一页翻,直到翻到第三章第四节的内容。 索引的优点: 通过创建唯一索引,可以保证每一行数据的唯一性 可以大大提高查询速度 可以加速表与表的连接

2022-05-11 22:38:30 1246 2

原创 Mysql存储引擎

InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务; InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败; InnoDB是聚集索引,使用B+Tree作为索引结构,数据文件是和(主键)索引绑在一起的(表数据文件本身就是按B+Tree组织的一个索引结构),必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先..

2022-05-11 20:07:27 174

原创 Mysql之面经1

2022-05-11 18:30:22 121

原创 Mysql之事务与MVCC和锁

ACID特性 原子性(Atomicity) : 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性(Consistency): 执行事务前后,数据保持一致,例如转账业务中,无论事务是否成功,转账者和收款人的总额应该是不变的; 隔离性(Isolation): 并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的; 持久性(Durability): 一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何

2022-05-07 18:39:30 377

原创 B+树之浅显易懂

1、B-树 简介 B-树,也称为B树,是一种平衡的多叉树(可以对比一下平衡二叉查找树),它比较适用于对外查找。 阶数:一个节点最多有多少个孩子节点。(一般用字母m表示) 关键字:节点上的数值就是关键字 度:一个节点拥有的子节点的数量。 一颗m阶的B-树,有以下特征: 根结点至少有两个子女; 每个非根节点所包含的关键字个数 j 满足:m/2 - 1 <= j <= m - 1.(表示向上取整) 有k个关键字(关键字按递增次序排列)的非叶结点恰好有k+1个孩子。 所有的叶子结点都位于同一

2022-05-06 16:49:54 195

原创 Mysql之MVCC

MVCC详细介绍 什么是MVCC MVCC(Multi-Version Concurrency Control):多版本并发控制,是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。 MVCC 在 MySQL InnoDB 中的实现主要是为了提高数据库并发性能,用更好的方式去处理读-写冲突,做到即使有读写冲突时,也能做到不加锁,非阻塞并发读。 什么是当前读和快照读 要说的再细致一些,快照读本身也是一个抽象概念,再深入研究。MVCC 模型在 MySQL 中的具体

2022-05-06 16:47:58 124

原创 redo日志和undo日志

只将事务执行过程产生的redo日志刷新到磁盘的好处 redo日志占用的存储空间非常小 redo日志是顺序写入磁盘的,顺序I/O redo作用 Redo log的主要作用是用于数据库的崩溃恢复 redo做什么 redo log是InnoDB引擎特有的,只记录该引擎中表的修改记录。 binlog是MySQL的Server层实现的,会记录所有引擎对数据库的修改。 redo log是物理日志,记录的是在具体某个数据页上做了什么修改;binlog是逻辑日志,记录的是这个语句的原始逻辑。 redo log是循环写的

2022-05-05 15:09:56 4622

原创 二叉树系列

leetcode刷题之二叉树

2022-04-20 16:18:39 243

原创 centos安装redis

安装前准备 1、手动下载redis安装包,然后上传到服务器指定目录下 2、到服务器指定目录在线下载 2.1、 进入目录 cd /usr/local 2.2、在线下载 wget http://download.redis.io/releases/redis-5.0.8.tar.gz 安装开始 1、解压安装包 tar -zxvf redis-5.0.8.tar.gz 2、将解压目录重命名为redis mv /usr/local/redis-5.0.8 /usr/local/redis 3、编译安装(安装

2021-11-28 14:08:07 600

原创 Linux常用命令

1、永久运行jar文件 命令:nohup java -jar xxx.jar > system.log 2>&1 & 2、查看Java进程 命令: ps -ef | grep java 杀掉进程 kill -9 进程号 3、重启nginx 命令: 进入nginx目录下的sbin文件夹,输入:./nginx -s reload ...

2021-11-11 20:19:41 2206

原创 Java数组与堆栈

Java数组与堆栈 1 数组创建 1.1 声明并赋值 int[] a = {1,2,3}; 1.2 声明数组名开辟空间并且赋值 int[] a; a = new int[]{1,2,3}; 1.3 声明数组时指定元素个数然后赋值 int[] a= new int[3]; 这里Java会默认数组元素值为0 1.4 在以上的基础上创建多维数组 int[][] a = {{1,2,3},{4,5,6},{7,8,9}}; //每个子数组元素个数不要求均相同 int[][] a = new int[m][n]

2021-06-14 18:29:37 1422 1

原创 Java判断字符串是否为空

引言 在项目中经常会用到判断字符串是否为空,这里记录一下。 空字符串与null区别 null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ; ""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = “” ; 其次 String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间; String str = “”; 表示声明一个字符串类型的引用,其值为""空字符

2021-04-11 15:27:47 374

原创 虚拟机配置Hadoop

配置java环境 下载JDK 下载地址:jdk下载地址 解压安装命令:tar -zxvf jdk-8u211-linux-x64.tar.gz 配置JDK 在usr/lib目录下创建一个jdk文件夹,将解压出来文件夹移进去 cd /usr/lib mkdir jdk mv jdk-8u211-linux-x64 /usr/lib/jdk 配置环境变量vim /etc/profile打开后在末尾加上 #set java env export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_2

2021-04-10 16:37:15 703

原创 Java8之stream

前言:   Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。 1、特点: 不是数据结构,不会保存数据。 不会修改原来的数据源,它会将操作后的数据保存到另外一个对象中。(保留意见:毕竟peek方法可以修改流中元素)

2021-03-28 21:10:11 318

原创 Java8之Lambda

前言:Java8是Java自Java 5(发布于2004年)之后的最重要的版本。这个版本包含语言、编译器、库、工具和JVM等方面的十多个新特性。 1、生态 Lambda 表达式 函数式接口 方法引用 / 构造器引用 Stream API 接口中的默认方法 / 静态方法 新时间日期 API 其他新特性 2、新特性 速度更快 代码更少 强大的 Stream API 便于并行 最大化减少空指针异常 Optional (Kotlin ?) 3、Lambda 3.1 匿名函数 Lambda是一个匿名函数,可以

2021-03-28 20:40:01 208

原创 java高级之反射

一、反射 1.1 框架 半成品软件。可以在框架的基础上进行软件开发,简化编码。学习框架并不需要了解反射,但是要是想自己写一个框架,那么就要对反射机制有很深入的了解。 1.2 反射 反射机制:将类的各个组成部分封装为其他对象,这就是反射机制。 反射的好处: 1.可以在程序运行过程中,操作这些对象。 2.可以解耦,提高程序的可扩展性。 Java代码在计算机中经历的三个阶段 (1)Source源代码阶段:* .java被编译成*.class字节码文件。 (2)Class类对象阶段:*.class字节码文件被类加载

2021-03-28 16:11:58 229

原创 前后端数据交互处理

前言:对于Java的初学者而言,前后端的数据处理是一件非常头疼的事,本文将介绍一下有关数据处理的事。 1、Ajax Ajax是一个非常有用的前后端交互的桥梁,往往通过url请求后端,后端携带数据回调,往往最困扰新手的就是回调的数据result。 下面的图是Ajax的API,从图中可以看到返回的result是Anything,因此Ajax可以回调任何类型的数据。 2、集合 众所周知java有三大集合,List、Set、Queue,这三者在这里详细介绍一下List。 3、List List 是一个接口,它继承

2021-03-18 18:01:14 833

原创 conda安装tensorflow

conda安装tensorflow教程,亲测成功! 1、打开Anaconda Prompt,输入命令: conda create -n "conda环境名” python=3.6 记住一定要选择3.6的python版本,亲测最稳定的版本! 2、激活子环境,输入命令: conda activate "刚刚创建的环境名" 3、设置镜像源,加快下载速度 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/clo

2021-03-15 18:10:10 17104 11

原创 minconda安装pytorch

conda安装pytorch百分百成功方法! 本人的电脑是Windows 10系统,conda的环境变量也已经配置完毕,经过多台电脑的测试,在安装且配置完成conda的环境后,百分百成功安装pytorch! 1、打开Anaconda Prompt,输入命令: conda create -n "conda环境名” python=3.8 我是用3.8的python环境,这些框架最好都是单独的conda虚拟环境,每次安装别的框架都新建个环境。 2、激活子环境,输入命令: conda activate "刚刚创建

2021-03-15 18:02:28 962 5

原创 发布项目到GitHub

发布个人项目到GitHub的简便方法 1、首先到GitHub创建个人仓库 2、创建完成后在本地文件夹右键鼠标,选择Git Bash Here 3、输入git clone “你在GitHub创建的仓库地址” 4、执行命令 git init 5、将项目的所有文件添加到仓库中 git add . 6、 将add的文件commit到仓库(注意这里必须要写注释,要不然提交不上去) git commit -m "注释语句" 7、最后 git push 大功告成! ...

2021-03-15 17:44:29 117

原创 Android实现即时聊天

Android实现即时聊天 前言:本篇文章将介绍如何实现安卓软件用户之间的即时聊天。 1、选用WebSocket websocket的介绍 WebSocket是一种网络传输协议,可在单个TCP连接上进行全双工通信,位于OSI模型的应用层。WebSocket协议在2011年由IETF标准化为RFC 6455,后由RFC 7936补充规范。Web IDL中的WebSocket API由W3C标准化。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSock

2021-03-15 17:16:42 5911 10

原创 图片存储(使前端提高图片加载速度)

使用以下文件系统 分布式文件系统FastDFS 淘宝自己的 TFS Gooale的 GFS Hadoop HDFS 阿里云的 oss

2021-03-05 00:09:21 396 1

基于Easyui贴吧管理系统.rar

基于Easyui的贴吧管理系统,涉及用户管理,角色管理,权限配置,菜单管理,贴吧的发帖,增加评论,上传下载资料,并可动态增加左侧导航栏菜单,相应的实训报告也附上。

2019-06-12

空空如也

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

TA关注的人

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