自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 快速读懂UML类图

上大学的时候,UML建模语言这门课就天天以画苹果作例子讲解。现在毕业了,对这门课忘得差不多了,一提到UML就只记得画苹果…UML包括以下几种图使用案例图类图序列图合作图状态图活动图构件图部署图其中最常看见的就是类图了上图的类图被分成四个部分,从上到下依次为,类名,属性,方法,性质。类名:正体时表示具体类,斜体表示抽象,若为接口,可以加上<< interface >>。属性:公有的使用+,私有的使用-,保护的使用#,权限符后接的是属性名称,再后面是属性的

2021-04-21 16:07:51 281

原创 Java语言为什么不支持多重继承

Java的三大特性继承、封装、多态,可以说没有继承就没有多态。当使用父类引用子类的实例变量时,如果调用一个父类的方法,编译器不会知道到底要执行子类还是父类的方法,它只负责检查。当程序运行时,Java虚拟机分配了一块堆内存,而这个父引用则指向这块内存,执行指向所内存的方法区中的内容,这就是多态。假设Java支持多重继承,Animal有两个子类Cat和Dog,这两个类各自实现了run()方法,同时还被CatDog所继承,未实现run方法(这生的是个怪胎,不能跑),假设执行以下代码:Animal anima

2021-04-14 20:09:46 349

原创 JVM创建对象的过程

JVM创建一个对象时需要经过以下几个步骤类加载检查每当程序员使用new操作符创建一个对象时,类加载器都会从常量池中寻找该对象的符号引用,如果找到,则根据该引用查询该类是否已被加载,否则进行接下来的类加载操作,在此过程中,类所需内存大小也被确定下来分配内存JVM根据在类加载检查中确定的内存大小,在堆中为类开辟一段空间,分配的方式有指针碰撞、空闲列表两种方式,若JVM的垃圾回收器(GC)使用了标记-整理的算法,即有值的内存往左侧移动,使得内存规整,则采用指针碰撞分配。若GC使用的是标记-清除算法,定期

2021-03-25 11:00:50 257

原创 springcloud中两个springboot子工程如何调用服务

使用idea工具先创建一个maven工程这里jdk一定要选1.8,因为spring在从1.5升级到2.0版本时官网发布说明中要求jdk版本至少为1.8.这里的maven版本至少为3.5按照约定 > 配置 > 编码的一个开发流程,编码之前先对idea工程进行一些配置.设置启用注解文件编码好,一个父工程搭建完成...

2021-03-24 19:04:43 583

原创 pom文件中dependencyManagement与dependencies的区别

dependencyManagement常用于springcloud父工程项目中,它代表的是一种声明而不是一个导入,也就是说,以下代码并不会下载org.springframework.boot至工程中如<dependencyManagement> <dependencies> <!--spring boot 2.2.2--> <dependency> <groupId>org.springfram

2021-03-24 18:44:57 210

原创 快速创建一个SpringBoot + Vue的前后端分离项目

本篇介绍前端项目的搭建,后端的搭建过程在这技术栈:vueelement-uiaxiosmavon-editormarkdown-itgithub-markdown-css首先需要安装node,可去官网下载node 是一个包管理工具,可方便地对程序添加依赖//查看node是否安装成功node -vv12.18.1//查看所有源npm config get registry//切换下载源npm config set registry https://registry.np

2021-03-22 20:12:39 156 1

原创 浅谈HashMap

HashMap的底层数据结构为数组+链表当往HashMap存放一个值时,首先会通过hashCode计算出该key对应的hash值,然后从数组中找到该位置,如果该位置为空,则直接插入。如果有值,再比较equals方法,相同的话就直接将该key所对应的值替换,否则查找该Node链表中的下一个值,继续执行上面的方法,直到链表的next为空为止,将该数据插入。由于其使用的是数组+链表,因此查询速度很快,但是如果hashCode算法不够优秀,导致碰撞的概率很大,就有可能导致一个数组位上排着很长的一个链表。为此,

2021-03-21 21:56:22 60

原创 快速创建一个SpringBoot + Vue的前后端分离项目

首先,本项目是模仿的B站的Up主MarkHub的博客系统,视频中详细得对每一个文件的作用都做了解释。在本篇文章中不会进行过多赘述,只是专注于项目的搭建。视频链接请戳下方https://www.bilibili.com/video/BV1PQ4y1P7hZ?from=search&seid=1550841645384365421项目演示效果:www.markerhub.com:8084/blogs后端SpringBoot服务器搭建后端使用的技术栈有:技术栈:SpringBootmyb

2021-03-21 21:06:20 470

原创 常见的几种排序

本文章对几种常用的排序进行分析与代码实现,本文所有排序都按照从小到大的顺序排列。冒泡排序冒泡排序是最易学也是最简单的排序,它的实现原理是多次循环数据,两两对比取大的值和下一个数继续对比,看起来像水泡从小变大的过程,因此又称冒泡排序。代码实现 public void bubbleSort(int[] arr) { for (int i = 0;i < arr.length - 1;i++) { for ( int j = 1;j < arr.l

2021-03-17 21:12:31 300

原创 使用位运算符保存多种标志状态

函数传参过程中,往往需要传入多种状态,若每个状态都添加一个参数,就会显得函数过于臃肿,不够优雅。在二进制表示的数中,每个位都能表示一个状态,因此可以通过一个二进制数来存储状态。代码如下:numA、numB、numC、numD表示各种状态,可以枚举值代替,但必须为2的幂status用于保存状态,传值可用“|”运算符,如numA|numB的结果为3 private static int numA = 1; private static int numB = 2; private static in

2021-03-17 10:35:04 683 3

原创 Oracle数据库查询数据结果集为“??”

程序查询Oracle数据集时,结果显示的全是“??”导致该结果的原因为,未配置环境变量1、配置Oracle安装目录2、配置字符集变量值可通过sql语句查询select userenv(‘language’) from dual;结果如下至此,环境变量配置完成,重启电脑字符集即可生效。参考文章 https://jingyan.baidu.com/article/e73e26c0c20f1a24adb6a73e.html...

2021-03-16 15:45:18 1355

原创 Integer类型缓存的问题

在Java语言,参数传递为值传递,那么如果执行以下代码的结果是什么Integer a = 100, b = 100, c = 128, d = 128, e = -128, f = -128;System.out.println(a == b);System.out.println(c == d);System.out.println(e == f);执行结果truefalsetrue造成以上结果的原因就是缓存,源码如下//private static class IntegerCa

2021-03-15 20:31:20 131 2

原创 初次尝试爬虫

在爬取网站数据时,总是出现浏览器已经停止而IDE还在后台运行的情况。之前这种情况也有,不过通常是在已经抓了几百页数据之后才出现。我记得昨天爬数据时可以一直爬到好几十页,后来我嫌慢,就注释了每次点击后的暂停两秒(我百度了一下发现这种行为很不道德),结果浏览器爬第一条数据浏览器就死掉了。后来我又在每条.click()代码后面设置暂停5秒,还是于事无补。多次测试后我发现,IDE始终停留在这条...

2018-08-23 15:25:47 136

空空如也

空空如也

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

TA关注的人

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