Java深究2

2023-10-31

这一版延续Java深究1中的继续进行相应补充。

1.先看一个问题,什么是Java多态,我们知道面向对象的三大特点,封装,继承,多态,前两者好理解,多态要怎么理解呢?我们可以想象到有了继承关系,那么肯定会出现这种:

class A extends B{
   void eat(){
   }
}
class C extends B{   
   void eat(){
   }
}
所以可以出现:A a = new B(); B b = (B)a;此时的父类A就有多种表现形态了,此时调用a.eat()那么就调用的B类的eat方法。

2.常见OOM现象:

1)Heap区的OOM,OutOfMemorryError.这实际上就是内存泄露,其原因就是Old区域剩余的内存空间大小不足于满足晋升到Old区域的对象的大小。

出现内存泄露有可能的原因是:死循环写入,或者一个全局区域增加数据导致隐藏的数据膨胀,还有一种内存泄露,就是内存可能在某些使用的情况下增加几十字节的空间没释放,刚开始发现可以被GC掉,但是每次GC都会膨胀那么一点,当运行一段时间后,会发现系统运行很慢,原因是系统不停得在做FULL GC,而且每次做FULL GC的时间非常长,因为绝大多数对象存活着,由于标记存活对象需要更多时间,下面这段代码并不会导致内存泄露,但是会导致频繁的Full GC其原因是每次GC完后会释放一点点内存,然后又一下子满了,就会FULL GC,如此不断反复,当FULL GC时间达到一定比例时就会报错。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java深究2 的相关文章

随机推荐

  • 基于STM32单片机电子称重系统设计_最终稿

    摘 要 称重技术自古以来便被人们所重视 与我们生活的各个方面息息相关 电子称重技术能够在科学研究 工业生产制造及其他生产和日常生活中得到广泛应用 随着科学技术时代的来临 智能化的仪器已经取代了传统的仪表和控制设备 让我们的传统仪器也有了翻天
  • springboot读取模版文件

    前言 resources下的template目录下的模版文件 第一种 第二种 第三种 templateDir template 第一种 Resource resource new ClassPathResource templateDir
  • ubuntu安装docker

    如果之前有的朋友安装了Docker 不成功的 可以先卸载旧的版本 sudo apt get remove docker docker engine docker io containerd runc 没安装的朋友 可以不用执行 一 安装前的
  • 第十三届蓝桥杯青少组省赛Python真题,包含答案

    目录 一 选择题 二 编程题 第十三届蓝桥杯青少组省赛Python真题 包含答案 一 选择题 第 1 题 单选题 下列关于函数的说法正确的是 答案 C 第 2 题 单选题 十进制数55转换成十六进制是 答案 C 第 3题 单选题 下列方法中
  • Netty应用UDP协议

    UDP是用户数据报协议 User Datagram protocol 的简称 其主要作用是将网络数据封装成数据报形式 提供面向服务的简单信息传送服务 与TCP协议不同 UDP协议直接利用IP协议进行UDP数据报的传输 UDP提供的是面向无连
  • 记一次非常非常坑的springboot整合mybatisplus报错

    11 11 41 493 main DEBUG org springframework boot test context SpringBootTestContextBootstrapper Neither ContextConfigura
  • 基础技术篇 9 ——物联网常见通信协议与通讯协议梳理【上】- 通讯协议

    1 通信 与 通讯 傻傻分得清 传统意义上的 通讯 主要指电话 电报 电传 通讯的 讯 指消息 Message 媒体讯息通过通讯网络从一端传递到另外一端 媒体讯息的内容主要是话音 文字 图片和视频图像 其网络的构成主要由电子设备系统和无线电
  • 校园网Drcom自动登录脚本(OpenWRT适用)

    本文原文已发表至本人博客 哔哔哔哔 校园网Drcom自动登录脚本 OpenWRT适用 前言 优雅地登录校园网认证Dr com D版 Step1 连接校园网 打开Chrome并进入校园网认证界面 F12进入开发者模式 勾选Network 再勾
  • 基于EasyExcel的Excel读取

    1 引入依赖
  • synchronize和Lock锁的区别

    为什么java已经通过synchronized关键字实现同步访问了 还需要提供Lock synchronized的缺陷 前面博客有提到过释放对象的锁有两种情况 程序执行完同步代码块会释放代码块 程序在执行同步代码块是出现异常 JVM会自动释
  • Swift复写UIViewController的init方法

    在OC中我们直接复写 init 方法 instancetype initWithLeftViewController UIViewController leftViewController contentViewController UIV
  • 总结下CGI常用的环境变量

    每当服务器加载脚本的一个实例时下述环境变量被设置 并且是私有和特定于该实例的 AUTH TYPE如果服务器支持基本的认证并且如果脚本被保护 此变量提供认证类型 此信息是特定于协议和服务器的 AUTH TYPE的一个例子是BASIC CONT
  • 【HTML+CSS+JS】简单的登录注册验证

    登录注册验证 简单的小说明 效果 源码 HTML 登录注册 html loginSuccess html CSS JS pageChange js Click js 简单的小说明 本文是基于https blog csdn net NpcCa
  • size_t和int区别

    参考 https blog csdn net qingzhuyuxian article details 84579320 总结 size t大小跟随系统位数变化 printf打印时 用 zd来打印比较好
  • WSL_02 WSL配置强大的 zsh

    文章目录 1 ZSH简介 2 安装zsh 2 1 准备阶段 2 基础安装 3 zsh更换主题 3 1 使用vscode 打开 zshrc 4 自定义支持插件 4 1 修改配置 5 安装第三方插件 autosuggestions 5 1 下载
  • el-form中嵌套一个el-form 进行表单校验

    数据格式为form对象中嵌套一层可循环数组 数组内嵌套table表格 也可循环 form id row id process code log id
  • Apache DolphinScheduler(海豚调度系统)介绍与环境部署

    文章目录 一 概述 二 Apache DolphinScheduler 与 Azkaban 对比 三 DolphinScheduler 架构设计 四 环境部署 1 环境信息 2 安装 JDK 3 安装 MySQL 数据库 1 部署 dock
  • Spring学习笔记 - Spring Boot

    Spring Boot 1 最简单的一个SpringBoot应用程序 1 1 导入依赖
  • 2021深圳杯数学建模D题---基于DDPG算法的微分博弈问题(思路及代码)

    文章目录 前言 思路 代码 gym环境 DDPG算法 测试代码 结果 一只犬一只羊的情况 回报收敛的趋势图 羊的逃逸路径 犬的追捕极角 羊的逃逸极角 羊的逃逸半径 两只犬一只羊的情况 回报收敛的趋势图 羊的逃逸路径 羊的逃逸极角 羊的逃逸半
  • Java深究2

    这一版延续Java深究1中的继续进行相应补充 1 先看一个问题 什么是Java多态 我们知道面向对象的三大特点 封装 继承 多态 前两者好理解 多态要怎么理解呢 我们可以想象到有了继承关系 那么肯定会出现这种 class A extends