有Java面试题吗?

java面试题:如何解决内存溢出 第一对所有的代码包括页面中的java代码都进行一遍彻底的回顾检查,1.对那些静态(static)的对象要特别留神,特别是类型为Map,List,Set的,静态的变量会一直驻存在内存中,生命周期比较长,不会被垃圾器回收。2.对于代码,要审查是否生成了大量的冗余的对象,还有一些逻辑业务...
有Java面试题吗?
java面试题:如何解决内存溢出

第一对所有的代码包括页面中的java代码都进行一遍彻底的回顾检查,
1.对那些静态(static)的对象要特别留神,特别是类型为Map,List,Set的,静态的变量会一直驻存在内存中,生命周期比较长,不会被垃圾器回收。
2.对于代码,要审查是否生成了大量的冗余的对象,还有一些逻辑业务处理的类,
算法是否过于复杂,调整算法,对于代码认真审查,再仔细重构一遍代码,能提高代码质量,提高程序运行稳定性。
3.Java中的内存溢出大都是因为栈中的变量太多了。其实内存有的是。建议不用的尽量设成null以便回收,多用局部变量,少用成员变量。
1),变量所包含的对象体积较大,占用内存较多。
2),变量所包含的对象生命周期较长。
3),变量所包含的对象数据稳定。
4),该类的对象实例有对该变量所包含的对象的共享需求。
4.在我的程序中对静态变量的优化后,使程序占用内存量至少提升了5k-10k。所以也不容忽视。
第二还有就是String类相关的东西:
1.字符串累加的时候一定要用StringBuffer的append方法,不要使用+操作符连接两个字符串。差别很大。而且在循环或某些重复执行的动作中不要去创建String对象,因为String对象是要用StringBuffer对象来处理的,一个String对象应该是产生了 3个对象(大概是这样:))。
2.字符串length()方法来取得字符串长度的时候不要把length放到循环中,可以在循环外面对其取值。(包括vector的size方法)。特别是循环次数多的时候,尽量把length放到循环外面。
int size = xmlVector.size();
for (int i = 2; i < size; i++) {
...
}
3 .写代码的时候处理内存溢出
try{
//do sth
....
}catch (outofmemoryerror e){//可以用一个共通函数来执行.
system.out.print (“no memory! ”);
system.gc();
//do sth again
....
}
1. 对于频繁申请内存和释放内存的操作,还是自己控制一下比较好,但是System.gc()的方法不一定适用,最好使用finallize强制执行或者写自己的finallize方法。 Java 中并不保证每次调用该方法就一定能够启动垃圾收集,它只不过会向JVM发出这样一个申请,到底是否真正执行垃圾收集,一切都是个未知数。2017-12-20
mengvlog 阅读 9 次 更新于 2025-07-19 08:56:44 我来答关注问题0
  •  翡希信息咨询 Java大厂高级面试题灵魂100问,面试官突击一问

    Java大厂高级面试题灵魂突击问题的核心答案如下:如何通过JVM判断一个对象可以被回收:引用计数法:每个对象维护一个引用计数器,当引用计数器为0时,对象可被回收。但此方法无法处理循环引用问题。可达性分析算法:主流JVM采用的方法。从GC Roots出发,通过引用链搜索可达对象。不可达的对象即为垃圾,可被回...

  •  阿暄生活 java应届生笔试题 java应届毕业生面试题

    Java应届毕业生面试题及答案概要 一、Java基础概念 Java垃圾回收机制 答案:Java的垃圾回收机制是一种自动内存管理机制,它负责自动回收不再使用的对象占用的内存空间,以减轻程序员的内存管理负担。static静态方法是否可以被子类重写 答案:不可以。static静态方法是属于类的,而不是属于对象的,因此不能被子...

  •  翡希信息咨询 招聘java开发面试什么问题能看出一个人的能力

    在招聘Java开发面试中,为了评估一个人的能力,面试官可能会提出以下几类问题:1. Java基础知识掌握程度 引用传递与值传递的区别:考察对Java内存模型和参数传递机制的理解。 设计模式相关问题:如单例模式、工厂模式等,评估候选人对设计原则和设计模式的应用能力。 序列化概念:了解候选人是否理解Java对象...

  •  文暄生活科普 Java面试公司一般提的面试题目

    在面试过程中,面试官会提出各种类型的问题。有的问题是关于Java语言的基础知识,比如面向对象的概念、集合框架的应用等。还有关于数据库的设计和优化,比如索引的使用、事务的处理等。此外,面试官还会问一些有关测试的问题,比如单元测试、集成测试的具体方法。这些题目不仅考察了应聘者的技术水平,还考察了...

  • 2023年Java大厂面试中MyBatis相关问题答案概述:MyBatis简介:MyBatis是一个半ORM框架,简化了JDBC操作。程序员只需关注SQL语句,无需处理连接和参数管理。通过XML或注解映射数据库和Java对象,提高开发效率。MyBatis的优点与缺点:优点:灵活的SQL编写:允许程序员手动编写SQL,满足复杂查询需求。代码量减少:...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部