自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java深浅拷贝

浅拷贝:通过clone方法如果想要使一个类的对象能够调用clone方法 ,则需要实现Cloneable接口, 并重写 clone方法:深拷贝:利用对象流将对象序列化,再反序列化得出新的对象. 因此首先需要实现序列化接口,如下:public class Student implements Serializable{ private static final long serialVersionUID = -2232725257771333130L; private int sno

2020-09-28 18:05:54 138

原创 2种重写hashCode和equals的方法

正常重写hashCode和equals方法 public class Student { private String name;// 姓名 private String sex;// 性别 private String age;// 年龄 private float weight;// 体重 private String addr;// 地址 // 重写hashcode方法 @Override public int hashCode() { int result = name.

2020-09-25 10:58:23 264

原创 Java接口和抽象类的区别

Java接口和抽象类的区别抽象类是用来捕捉子类的通用特性的。接口是抽象方法的集合。从设计层面来说,抽象类是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。接口只能包含抽象方法,抽象类可以包含普通方法。接口只能定义静态常量属性,抽象类既可以定义普通属性,也可以定义静态常量属性。接口不包含构造方法,抽象类里可以包含构造方法。一个类可以实现多个接口,但最多只能继承一个抽象类...

2020-09-05 21:49:39 148

原创 Java对象的内存布局

Java对象的内存布局一个Java对象在内存中包括对象头(Header)、实例数据(Instance Data)和补齐填充(Padding)三个部分:对象头:Mark Word:用于存储对象自身的运行时数据,如哈希吗 (HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。其长度在32位系统占4字节,在64位系统中占8字节;Class Pointer:对象指向它的类型元数据的指针,通过该指针确定该对象是哪个类的实例。在32位系统占4字节,在64位系统中占

2020-08-28 16:31:53 173

原创 JVM总体结构和运行时数据区

JVM 知识点总结jvm的总体结构图JVM包含两个子系统和两个组件,两个子系统为类装载、执行引擎;两个组件为运行时数据区、本地接口。类装载子系统:根据给定的全限定名类名(如:java.lang.Object)来装载class文件到运行时数据区中的方法区。执行引擎:执行classes中的指令。本地接口:与native libraries交互,是其它编程语言交互的接口。运行时数据区域:这就是我们常说的JVM的内存。作用 :首先通过编译器把 Java 代码转换成字节码,类装载器再把字节码加载到

2020-08-28 15:40:13 138

原创 JVM虚拟机栈中的局部变量表

JVM虚拟机栈中的局部变量表局部变量存放了编译期可知的各种Java虚拟机基本数据类型(boolean、byte、char、short、 int、float、long、double)、对象引用(reference类型 ,它并不同于对象本身,可能是一个指向对象起始地址的引用指针,也可能是指向一个代表对象的句柄或者其他与此对相象关的位置) returnAddress类型(指向了一条字节码指令的地址 )。这些数据类型在局部变量表中的存储空间以局部变量槽(Slot)来表示,其中64位长度的long和double的

2020-08-25 17:54:22 502

原创 I/O模型学习总结

I/O模型I/O模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能Java共支持3种网络编程模型/IO模式:BIO、NIO、AIOBIO基本介绍Java BIO 就是传统的java io 编程,其相关的类和接口在 java.ioBIO(blocking I/O) : 同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制改善(实现多个客户连接服

2020-08-16 22:48:04 233

原创 mysql数据库常用函数

数学函数 select CEILING ( COUNT(*)/5.0) from News--取大于结果的最小整数 select floor ( COUNT(*)/5.0) from News--取小于结果的最大整数 select SQRT(2)--数值开平方 select ROUND(3.45645,2) select abs(-5):绝对值函数,取此数的绝对值,可以应用于数据库中一些比较乱的值的加减操作。字符串函数CONCAT(str1,str2,...,strn) 将str1

2020-08-16 16:46:27 146

原创 springboot项目中application.properties配置文件图标没有变为小叶子解决方案

这是idea的一个小bug第一步第二步

2020-08-15 16:58:33 9657 5

原创 NIO三大组件

缓冲区(Buffer)基本介绍缓冲区(Buffer):缓冲区本质上是一个可以读写数据的内存块,可以理解成是一个容器对象(含数组),该对象提供了一组方法,可以更轻松地使用内存块,,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况。Channel 提供从文件、网络读取数据的渠道,但是读取或写入的数据都必须经由 Buffer,如图:使用Buffer是一个顶层父类,是一个抽象类。常用子类:ByteBuffer,ShortBuffer,CharBuffer,IntBuffer,LongBuff

2020-08-14 23:42:39 435

原创 mybatis(plus)进行一对一、一对多、多对多查询

mybatis(plus)进行一对一、一对多、多对多查询一般步骤:建实体类或者VO类自定义resultMap写sqlresultMap的编写一对一查询建实体类或者VO类中没有属性是自定义的类,正常写resultMap有的话resultMap中需要使用association 标签,如<resultMap type="Student" id="studentResultMap"> <id column="id" property="id" /> <re

2020-08-14 13:34:54 7411

原创 Windows或Linux中查看端口使用情况,并关掉占用端口的进程

Windows中查看端口使用情况打开cmd窗口;执行netstat -ano 命令查看端口使用情况;如:可找到所查端口的pid,使用tasklist|findstr pid命令查看该端口被谁占用;如:可在命令行中输入taskkill /f /t /im mysqld.exe 命令关闭该进程或使用任务管理器来关闭它Linux中查看端口使用情况1.使用lsof -i:端口号 命令来查看;如:2.使用netstat -tunlp|grep 端口号 命令来查看;如:也可以使用netsta

2020-08-12 23:45:33 149

原创 Swagger

Swagger简介Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 Swagger 进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。与为底层编程所实现的接口类似,Swagger 消除了调用服务时可能会有的猜测。优势支持 API 自动生成同步的在线文档:使

2020-08-09 16:18:26 154

原创 mybatis-plus之代码生成器

mybatis-plus之代码生成器导入相关依赖 <!--mybatis-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> </dependency> <!-- velocity

2020-08-09 15:39:08 174

原创 强软弱虚四大引用详解及作用

强软弱虚四大引用详解及作用整体架构强引用强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OOM,也不会靠随意回收具有强引用的对象来解决内存不足的问题。软引用如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。弱引用一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它

2020-08-07 15:30:23 1144 1

原创 OOM 常见原因及解决方案

OOM 常见原因及解决方案当 JVM 内存严重不足时,就会抛出 java.lang.OutOfMemoryError :XXXX错误1. Java heap space当堆内存(Heap Space)没有足够空间存放新创建的对象时,就会抛出 java.lang.OutOfMemoryError:Javaheap space 错误首先我们要知道java对象在堆内存(Heap Space)的内存分配原因分析:1、请求创建一个超大对象,通常是一个大数组。2、超出预期的访问量/数据量,通常是上游系

2020-07-30 23:09:17 504

原创 java对象在堆内存(Heap Space)的内存分配

java对象在堆内存(Heap Space)的内存分配Eden区和Survivor区是新生代、Tentured区是老年代对象优先在 Eden 区分配多数情况,对象都在新生代 Eden 区分配。当 Eden 区分配没有足够的空间进行分配时,虚拟机将会发起一次 Minor GC。大对象直接进入老年代所谓大对象是指需要大量连续内存空间的对象(如大数组),频繁出现大对象是致命的,会导致在内存还有不少空间的情况下提前触发 GC 以获取足够的连续空间来安置新对象。原因:在新生代使用的是标记-清除算法来

2020-07-30 22:01:50 434

原创 数据库设计的三范式

三范式第一范式:确保列的原子性(每个列都不可以再拆分)示例:如中国北京,可以分为两列分别存储中国、北京第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。(一个表只做一件事)示例:如学生信息表:学生id、学生姓名、学生成绩、矿泉水的名字,矿泉水的名字就是反例,不应出现在学生信息表第三范式:在第二范式的基础上,消除依赖传递(非主键列只依赖于主键,不依赖于其他非主键)示例:如学生信息表:学生id、学生姓名、毕业学校名称、毕业学校id,毕业学校名称、毕业学校id

2020-07-30 21:07:38 204

原创 MySQL事务的实现原理

MySQL事务的实现原理首先我们要知道事务的特性(ACID)原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败。比如在同一个事务中的SQL语句,要么全部执行成功,要么全部执行失败。一致性(Consistency)官网上事务一致性的概念是:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。隔离性(Isolation)事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,

2020-07-30 18:25:50 176

原创 Netty学习总结(一)

这里写自定义目录标题什么是NettyNetty的应用场景Netty的优点Netty的模型工作原理示意图及说明异步模型Netty的核心模块组件Bootstrap、ServerBootstrapFuture、ChannelFutureChannelSelectorChannelHandlerChannelPipeline 、PipelineChannelHandlerContextChannelOptionEventLoopGroupUnpooled图表Netty应用实例什么是NettyNetty 是由 J

2020-07-29 00:19:59 245

第3版C#程序设计及应用教程源程序

第3版C#程序设计及应用教程书本里所有的源程序,包括例子、练习、大作业等源代码

2019-03-04

空空如也

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

TA关注的人

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