• 内存泄漏,内存溢出,抽象类和接口,netstat、ping、ifconfig的区别


    持续学习是我们必备的技能之一,保持与时俱进,保持行业的敏感度,关注行业发展趋势,了解新技术,加强自己的认知,积极的应对变化

    内存泄漏 memory leak

    是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出

    内存泄漏可以分为四类

    1、常发性内存泄漏,发生内存泄漏的代码会被多次执行到,每次执行都会导致内存泄漏
    2、偶发性内存泄漏:发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生
    3、一次性内存泄漏,发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块仅且一块内存发生泄漏
    4、隐式内存泄漏。程序在运行过程中不停的分配内存,但是直到结束的时候才释放内存

    内存泄漏本身不会产生什么危害,真正有危害的是内存泄漏的堆积,这会最终消耗尽系统所有的内存。

    内存溢出 out of memory

    指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,那么结果就是内存不够用,此时就会报错OOM,即所谓的内存溢出

    内存溢出常见原因

    1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据
    2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收
    3.代码中存在死循环或循环产生过多重复的对象实体
    4.使用的第三方软件中的BUG
    5.启动参数内存值设定的过小

    解决方案:
    1、修改JVM参数,直接增加内存
    2、检查错误日志,查看内存溢出错误前是否有其他异常错误

    3、对代码进行走查分析,找出可能发生内存溢出的位置

    抽象类和接口的区别

    从语法层面
    1、抽象类可以提供成员方法的实现细节,而接口中只能存在抽象方法
    2、抽象类中成员变量可以是多种类型,接口中成员变量必须用public,static,final修饰
    3、一个类只能继承一个抽象类,但可以实现多个接口
    4、抽象类中允许含有静态代码块和静态方法,接口不能

    从设计层面
    1、抽象类是对整一个类的属性,行为等方面进行抽象,而接口则是对行为抽象
    2、抽象类是一个模板式的设计,当在开发过程中出现需求更改的情况,只需要更改抽象类而不需要更改它的子类。接口是一种辐射性设计,当接口的内容发生改变时,需要同时对实现它的子类进行相应的修改
    3、抽象类可以类比为模板,而接口可以类比为协议

    常用到的shell指令中与网络相关的有哪些,netstat、ping、ifconfig这三个的区别,分别是什么功能,netstat里面一般服务器启动后的端口状态是什么

    常用的网络相关的命令有以下几个
    1、ifconfig
    这个命令用于显示网络接口,子网掩码

    2、host和nslookup
    这两个命令是DNS查找工具,当执行host时,会列出某个域名的所有ip,nslookup是一个类似于host的命令,它用于查询DNS相关的细节信息,以及名字解析

    3、route
    显示路由表

    4、traceroute
    这个命令显示分组途径的所有网关地址

    netstat、ping、ifconfig这三个的区别

    netstat:显示网络状态,利用netstat可以让你得知整个Linux系统的网络情况,语法为netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][–ip]

    ping:功能是检测主机,因为执行ping命令会使用icmp传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常,语法为:ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址

    ifconnfig:功能是显示或设置网络设备,其语法为:ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<硬件地址>][io_addr][irq][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]

    服务器启动后一般为listening状态

  • 相关阅读:
    flink集群与资源@k8s源码分析-运行时
    (附源码)php二手服装网站 毕业设计 201711
    自动巡查、自动换充电……浙江这两台无人机“巢穴”派大用场
    做点华为云代理业务,挣点小收入
    【8】Docker中部署Redis
    NGINX源码之:目录导航
    centos7安装confluence7.16.5
    免费开源的100套Echarts大屏数据可视化模板分享
    Android之Monkey源码分析(第十三篇:触摸事件流程分析)
    uniapp列表查看详情是 返回数据未刷新
  • 原文地址:https://blog.csdn.net/HONGTester/article/details/133162494