自定义博客皮肤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)
  • 收藏
  • 关注

原创 java垃圾回收机制

垃圾回收机制java与从C++的区别之一就是C++需要手动管理内存,而java则不需要,java拥有一套比较完整的垃圾回收机制。java垃圾回收器(GC)能够自动回收垃圾、减轻了编程者的难度,不需要编程者自己去手动申请、释放内存。GC进行回收的主要区域是堆内存,因为堆内存是存放大量对象的内存区域。从GC的角度来看,堆内存可分为新生代和老年代,新生代占1/3的内存空间、老年代占用2/3的内存空间,而新生代中区域又可划分为Eden区、From区和To区。新生代新生代主要存放新创建的对象、对象在创建时,系

2020-12-27 17:21:57 332

原创 JVM之内存模型

JVM内存模型JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是java程序运行的平台,它是一种假想的计算机,是一种用于计算设备的规范,java语言的跨平台是通过JVM实现的。java跨平台原理

2020-10-27 21:52:54 438

原创 vue项目设置局域网内访问

vue项目设置局域网内访问检查防火墙是否关闭,没有关闭则需要关闭防火墙。在项目目录下的package.json文件中添加 --host 0.0.0.0,如下图所示。如果访问出现 invalid host header 的问题,则在 webpack.dev.conf.js 配置文件中的devServer属性中添加 disableHostCheck属性,值设置为true,从而跳过主机名的...

2019-12-14 21:24:42 1760

原创 vue中利用localStorage存储全局变量

localStorage是本地存储,允许在浏览器中存储 key-value 对的数据,用于长久保存整个网站的数据,全局变量可用这种方法保存,在页面刷新不会丢失数据,保存的数据没有过期时间,直到手动去删除。1 localStorage的特点优势可以存储5M大小的数据(sessionStorage只可以存储4K大小的数据)。可将第一次请求的数据进行本地存储,节约带宽,快速响应。限制...

2019-12-14 20:53:54 2667 2

原创 JDK与JRE的区别

JDK与JRE的区别JDK(Java Develoment Kit)是包含Java程序语言设计、Java虚拟机、Java API类库这三部分,JDK是用于支持Java程序开发的最小环境。JRE(Java Runtime Environment)包含Java API类库中Java SE API子集和Java虚拟机两部分,JRE是支持Java程序运行的标准环境。java技术体系所包含的内容...

2019-11-29 11:10:30 129

原创 java中访问对象的两种方式

java中访问对象的两种方式当在堆内存中创建对象之后,java程序需要refrence数据来操作对象。由于refrence类型在java虚拟机规范中只规定了指向对象的引用,并没有规定这个引用以如何的方式去定位、访问堆中的对象具体位置。访问方式取决于虚拟机的实现,主要有两种方式,分别是句柄和直接指针。其中Refrence是java中的引用类,它主要是对普通对象进行包装,从而在JVM在垃圾回收时,...

2019-11-12 19:34:40 978

原创 线程产生死锁的必备条件及解决方法

一、多线程的使用二、线程产生死锁的四个必备条件及解决方法

2019-11-05 19:45:40 393

原创 wait方法与sleep方法的区别

1. 共同点wait()与sleep()方法都可以暂停线程的执行。2. 不同点(1)两者最主要的区别是wait方法执行的时候释放了锁;而sleep没有释放锁。(2)wait方法通常用于线程间的交互或通信;sleep主要用于程序的暂停执行。(3)wait方法执行后,线程不会自动苏醒,需要调用notify()方法或者notifyAll()唤醒,但执行wait(long timeout)超时后...

2019-10-30 20:28:00 330

原创 java创建一个对象的过程

一、java创建一个对象的过程java中个,创建一个对象需要经过五步,分别是类加载检查、分配内存、初始化零值、设置对象头和执行初始化init()。1. 类加载检查在java中,new一个对象的时候,java虚拟机会首先去检查这个指令的参数是否能在常量池中找到这个对象对应的类的符号引用,检查这个符号引用代表的类是否被类加载器加载、解析和初始化;如果没有,则必须要进行类加载。2. 分配内存...

2019-10-29 21:56:48 1616 2

原创 使用Docker部署后端jar包

一、Docker概述docker是一个开源的应用容器引擎,可以让开发者将应用以及依赖包打包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker最大一个优势之一就是方便快捷。使用Docker,你可以将你开发的应用以及运行环境等都可以打包成一个镜像,例如后台应用、数据库应用、web应用...

2019-10-18 21:28:50 1741

原创 线程生命周期详解

一、线程的生命周期线程生命周期有新建状态、就绪状态、运行状态、阻塞状态和死亡状态五种基本状态。其中阻塞状态又可细分为等待阻塞、同步阻塞和其他阻塞。如下图所示:新建状态(New)创建一个新的线程,即新建状态。java中创建一个线程的四种方式:(1)一种是继承Thread类,重写run()方法;(2)第二种是实现Runnable接口,重写run()方法;(3)使用Callable和F...

2019-09-30 10:16:17 311

原创 C++实现一个基于mfc的学生信息管理系统

一、系统概述本文设计的是学生信息管理系统,能够实现权限管理即不同的用户角色能够拥有不同的限,角色主要是学生、教师和管理员,针对不同的用户,有着不同的操作权限,学生角色只能够查看到学生基础信息,不能够进行删除和添加的操作,而教师和管理员则能够实现学生基础信息的增加、删除等。本系统设计采用的是c++语言,使用的软件是VS2017,数据库使用的是MYSQL数据库,数据库可用Navicat 进行可视化...

2019-09-25 21:35:43 17042 9

原创 C语言实现双向循环链表

C语言实现双向循环链表一、双向循环链表的结构以三个节点为例,双向循环链表结构如上图所示。每个节点都分为数据域和指针域,数据域是存储数据的;指针域存储前向指针和后向指针,前向指针指向该节点的上一个节点,后向指针指向该节点的下一个节点。循环链表是指首尾要相连,即第一个节点的前向指针指向最后一个节点,最后一个节点的后向指针指向第一个节点,形成一个环。二、实现一个双向循环链表1. 首先创建一个双...

2019-09-24 21:51:06 1941

空空如也

空空如也

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

TA关注的人

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