- 博客(25)
- 收藏
- 关注
原创 选择 & 冒泡 & 快速排序算法详解
这边文章主要介绍选择、冒泡和快速排序算法上面,相信大家对前两种算法都是很熟悉的了,特别是冒泡排序,这三种算法也是递进的关系, 需要了解插入、希尔、归并排序算法的请看我另外一篇文章。场景:如果我们要找到公司里薪资最高的人你会怎么找?选择排序的思路跟插入排序是非常相似的,也分已排序区间和未排序区间,但选择排序每次会从未排序区间找到最小的元素,将其放到已排序区间的末尾,但是插入排序是移动数组,选择排序是进行交换,例如以下例子:6000 8000 5000 9000 4000第一次:4000 6000 80
2022-06-20 11:31:20
4463
4
原创 深入了解JVM的内存机制和垃圾回收机制
对象内存分配机制对象内存可在两个地方进行分配,一个是栈,一个是堆。对象栈上的分配JVM通过逃逸分析确定该对象不会被外部访问,如果不会逃逸就可以将该对象在栈上分配内存,这样该对象所占用内存空间就可以随栈帧出栈而销毁减少垃圾回收的压力对象逃逸分析:就是分析对象动态作用域,当一个对象在方法中被定义后,它可能被外部方法所引用,例如作为调用参数传递到其他地方中。1 public User test1() {2 User user = new User();3 user.setId(1);4
2022-03-22 10:32:20
3404
原创 深入了解JVM底层如何创建对象与内存分配机制
对象创建的主要流程:1.new指令new指令可能是new关键字、对象克隆、对象序列化等2.类加载检查JVM遇到一条new指令时 ,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号代表的类是否已被加载、解析和初始化过。如果没有,那必须的执行相应的类加载过程。3.分配内存在类加载检查通过后,接下来JVM将会为新生对象分配内存。对象所需内存的大小在类加载完成后便可完全确定,为对象分配空间的任务等同于把一块确定大小的内存从JAVA堆中划分出来这
2022-03-21 14:54:38
3138
原创 MySQL索引底层数据结构详解
MySQL底层使用的是B+tree存储结构 非叶子节点存储索引和下一个子节点的地址 叶子结点存储所有的索引和数据
2022-03-15 16:11:12
5775
1
原创 JVM 内存结构
JVM虚拟机内存:堆:存放所有的数据,而其他内存区域都是存放的堆中数据的内存地址GC(垃圾回收)也是发送在堆区域,当Eden区满了,就会发生MinorGC,将Eden区未被引用的对象销毁掉,还在引用的对象放到S0和S1区域,当S0和S1区域满了,或者对象年龄到了15(jdk8默认值)或者是大对象,就会被放到老年代(也叫持久代),当老年代内存满了,就会触发FullGC,清理所有区域的对象,如果FullGC完成后,老年代的内存还是满的,就会发生OOM(内存溢出)栈:可以理解为线程,栈里面存...
2022-03-14 18:09:01
120
1
原创 mysql explain详解
explain sql的一个执行的计划字段信息:id: sql的执行顺序 id越大 优先级越高,id一样的话,按照顺序执行select_typesimple :简单查询primary:derived:衍生表查询subquery:子查询type:
2022-03-02 16:45:24
1496
1
原创 SpringBoot设置多数据源
SpringBoot设置多个数据源,其实就是你的项目中会用到多个数据库,平时我们一般只会在配置文件中去设置一个。设置多个数据源也简单,个人理解就是重新写一下框架连接数据库的过程,然后不同的xml文件可以使用不同的数据库1.首先在你的配置文件中把两个数据库的配置写好spring: datasource: #test1 test2数据库名字 自己随便取 后面配置类中对应就好了 test1: # 使用druid数据源 type: com.alibaba.druid.p
2022-03-01 15:17:31
1755
1
原创 使用阿里云短信时 依赖打包不上的问题
alicom-mns-receive-sdk-1.0.1.jar 、aliyun-java-sdk-dybaseapi-1.0.0.jar依赖打包不上
2022-01-17 14:41:28
2303
原创 elmentui修改 table滚动条样
最近项目中需要设计一个透明样式的表格 样式如图这是elementUI table 组件中的样式设置 可能每个人的div前缀不一样,如果不生效,需要自己调试查看一下,/deep/ .el-table__body-wrapper::-webkit-scrollbar { width: 8px; /*滚动条宽度*/ height: 8px; /*滚动条高度*/}/deep/ .el-table__body-wrapper::-webkit-scrollbar-track { border
2022-01-17 09:35:00
2813
原创 三分钟教会你Node.js
NodeJS1.简介谷歌Chrome的V8引擎执行JavaScript的速度非常快,性能非常好。于是开始有人在其基础上构建系统。2009年2月,RyanDahl在博客上宣布准备基于V8创建一个轻量级的Web服务器并提供一套库。这就是著名的Node.js,它采用事件驱动,采用主流NIO非阻塞I/O模型,从而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。2.安装官网: https://nodejs.org/en/https://npm.taobao.org/mirrors
2020-12-09 22:51:47
192
原创 Java---集合Collection--Set
1 Set接口1.1 概述一个不包含重复元素的 collection。数据无序(因为set集合没有下标)。由于集合中的元素不可以重复。常用于给数据去重。1.2 特点HashSet:底层是哈希表,包装了HashMap,相当于向HashSet中存入数据时,会把数据作为K,存入内部的HashMap中。当然K仍然不许重复。TreeSet:底层就是TreeMap,也是红黑树的形式,便于查找数据。HashMap实现中,当哈希值相同的对象,会在同一个hash值的位置存储不同属性的数
2020-12-09 22:37:08
228
原创 Java---集合Collection--List
1 概述英文名称Collection,是用来存放对象的数据结构。其中长度可变,而且集合中可以存放不同类型的对象。并提供了一组操作成批对象的方法。数组的缺点:长度是固定不可变的,访问方式单一,插入、删除等操作繁琐。2 集合的继承结构Collection接口– List接口 : 数据有序,可以重复。– ArrayList子类– LinkedList子类– Set接口 : 数据无序,不可以存重复值– HashSet子类– Map接口 : 键值对存数据– HashMapCollec
2020-12-06 23:07:09
99
原创 十分钟学会Java基础之JavaApi
API:Application Programming Interface应用编程接口,一切可以调用的东西都是API。java.lang包,这个包会自动导入。java.lang.Objectjava.lang.Stringjava.lang.StringBuilder/StringBuffer正则表达式包装类等1.1 Object1.1.1 概念所有对象的顶级父类存在于java.lang包中,这个包不需要我们手动导包1.1.2 常用方法boolean equa
2020-12-05 19:41:32
181
原创 十分钟带你学会Vue
Vue概念 同类产品 JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。近年来发展非常迅速,标准也在不断完善已经达到ES6时代。ECMAScript 6.0(简称 ES6)是JavaScript语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标是让JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言,洗白其一直被“鄙视”的脚本语言的前身。 ...
2020-12-05 19:07:24
2330
原创 只需要一篇文章带你学会IO---IO最详解
Java–IO最详细解析IO简介1 继承结构in/out相对于程序而言的输入(读取)和输出(写出)的过程。在Java中,根据处理的数据单位不同,分为字节流和字符流java.io包:File字节流:针对二进制文件InputStream–FileInputStream–BufferedInputStream–ObjectInputStreamOutputStream–FileOutputStream–BufferedOutputStream–ObjectOutputStr
2020-12-03 11:26:22
2620
原创 Java--三大特性--封装、继承和多态
封装1 概述封装是指隐藏对象的属性和实现细节,仅仅对外提供公共的访问方式。好处:1、 提高安全性2、 提高重用性1.2 private关键字是一个权限修饰符,用于修饰成员变量和成员函数,被私有化的成员只能在本类中访问。想要修改只能,对外提供公共的,get和set方法。1.3 demo1:封装学生public class Student {//String name; //把属性隐藏起来 private String name
2020-12-01 23:00:38
160
原创 JAVA--OOP思想(1)
面向对象11.1 面向对象1.1.1 概念所谓的面向对象是一种编程思想,通过这种思想可以把生活中的复杂事情变得简单化,从原来的执行者变成了指挥者,面向对象是基于面向过程而言的。我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)面向过程强调的是过程,例如:1、打开冰箱 2、把大象放进去 3、关上冰箱面向对象强调结果,例如:1、 饿了,去平台点餐,这个动作就是面向对象。你没有去市场买菜洗菜做饭。。。只要有app就可以了。2、
2020-11-26 20:53:15
275
原创 Java变量+数组+基本算法
变量1 概念可以改变的数,称为变量。一般通过三部分来描述一个变量。变量类型,变量名,变量值。其中三部分都是可以改变的,根据需要来确定即可。变量的使用原则:就近原则。尽量控制到最小范围。。2 局部变量定义在方法里,或者局部代码块中。注意:必须手动初始化,来分配内存。如:int i=5;作用域也就是方法里或者局部代码块里,方法运行完内存就释放了。3 成员变量定义在类里。注意:不用初始化,也会自动被初始化成默认值。作用域是整个类中,类消失了,变量才释放。4
2020-11-24 08:53:05
300
原创 java三大基本循环结构
java三大基本循环结构1 嵌套for循环1.1 概述根据外层的条件,判断里层能否执行,如果能执行,就把里层代码都循环完毕后,再继续执行外层,继续判断。。1.2 形式for(…){ for(…){}}1.3 入门案例public class T { public static void main(String[] args) {// f1(); f2(); }
2020-11-22 21:34:46
346
原创 java方法+流程控制+循环
java 方法+流程控制+循环1 运算符1.1 概述 1.2 练习1:平年闰年输入年号,判断是否是闰年。两个条件:1、能被4整除,并且不能被100整除2、或者能被400整除public class Test1 { public static void main(String[] args) { System.out.println("年号:"); int y = new Scanner(System
2020-11-21 12:56:10
94
1
原创 java八大基本类型+引用类型的+运算符+类型转换
数据类型+运算符1.1 标识符可以简单的理解为一个名字。在Java中,我们需要标识代码的很多元素,包括类名、方法、字段、变量、包名等。我们选择的名称就称为标识符,并且遵循以下规则:A. 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符。B. 不能以数字开头。C. 标识符是严格区分大小写的。D. 标识符的命名最好能反映出其作用,做到见名知意。1.2 关键字在java语言中已经被赋予特定意义的一些单
2020-11-18 23:07:19
285
原创 Java开发环境+HelloWorld
Java开发环境+HelloWorld1.1 计算机基础知识1.1.1 计算机计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行,自动、高速处理数据的现代化智能电子设备。由硬件和软件所组成,没有安装任何软件的计算机称为裸机。常见的形式有台式计算机、笔记本计算机。按照规模分为微型机、小型机、大型机、巨型机(超级计算机)等。计算机的应用已渗透到社会的各个领域,正在改变着人们的工作、学习和生活的方式,推动着社会的发展。哪些方面?1.1.2 计算机硬件计算机硬
2020-11-18 09:03:16
510
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人