当前位置: 首页 > news >正文 asp.net 窗体网站wordpress编辑器代码 news 2025/10/28 22:13:05 asp.net 窗体网站,wordpress编辑器代码,西安关键词快速排名,网站改版计划#x1f9d1; 博主简介#xff1a;CSDN博客专家#xff0c;历代文学网#xff08;PC端可以访问#xff1a;https://literature.sinhy.com/#/?__c1000#xff0c;移动端可微信小程序搜索“历代文学”#xff09;总架构师#xff0c;15年工作经验#xff0c;精通Java编… 博主简介CSDN博客专家历代文学网PC端可以访问https://literature.sinhy.com/#/?__c1000移动端可微信小程序搜索“历代文学”总架构师15年工作经验精通Java编程高并发设计Springboot和微服务熟悉LinuxESXI虚拟化以及云原生Docker和K8s热衷于探索科技的边界并将理论知识转化为实际应用。保持对新技术的好奇心乐于分享所学希望通过我的实践经历和见解启发他人的创新思维。在这里我希望能与志同道合的朋友交流探讨共同进步一起在技术的世界里不断学习成长。 技术合作请加本人wx注明来自csdnforeast_sea 1. 对象一定分配在堆中吗有没有了解逃逸分析技术 在 Java 中并不是所有对象都严格在堆上分配内存虽然堆Heap是 Java 对象内存分配的主要区域。 在某些情况下JVM 的即时编译器JIT可能会将对象分配在栈上这被称为逃逸分析Escape Analysis。 也就是说如果编译器确定一个对象不会在方法外部使用即对象不会逃逸出方法的作用域那么该对象可以分配在栈上而不是堆上。 什么是逃逸分析 逃逸分析是指分析指针动态范围的方法它同编译器优化原理的指针分析和外形分析相关联。当变量或者对象在方法中分配后其指针有可能被返回或者被全局引用这样就会被其他方法或者线程所引用这种现象称作指针或者引用的逃逸(Escape)。 通俗点讲当一个对象被 new 出来之后它可能被外部所调用如果是作为参数传递到外部了就称之为方法逃逸。 除此之外如果对象还有可能被外部线程访问到例如赋值给可以在其它线程中访问的实例变量这种就被称为线程逃逸。 逃逸分析有什么好处 栈上分配 如果确定一个对象不会逃逸到线程之外那么久可以考虑将这个对象在栈上分配对象占用的内存随着栈帧出栈而销毁这样一来垃圾收集的压力就降低很多。 同步消除 线程同步本身是一个相对耗时的过程如果逃逸分析能够确定一个变量不会逃逸出线程无法被其他线程访问那么这个变量的读写肯定就不会有竞争 对这个变量实施的同步措施也就可以安全地消除掉。 标量替换 如果一个数据是基本数据类型不可拆分它就被称之为标量。把一个 Java 对象拆散将其用到的成员变量恢复为原始类型来访问这个过程就称为标量替换。假如逃逸分析能够证明一个对象不会被方法外部访问并且这个对象可以被拆散那么可以不创建对象直接用创建若干个成员变量代替可以让对象的成员变量在栈上分配和读写。 2. 内存溢出和内存泄漏是什么意思 内存溢出俗称 OOM是指当程序请求分配内存时由于没有足够的内存空间满足其需求从而触发的错误。在 Java 中这种情况会抛出 OutOfMemoryError。 内存溢出可能是由于内存泄漏导致的也可能是因为程序一次性尝试分配大量内存内存直接就干崩溃了导致的。 内存泄漏是指程序在使用完内存后未能释放已分配的内存空间导致这部分内存无法再被使用。随着时间的推移内存泄漏会导致可用内存逐渐减少最终可能导致内存溢出。 在 Java 中内存泄漏通常发生在长期存活的对象持有短期存活对象的引用而长期存活的对象又没有及时释放对短期存活对象的引用从而导致短期存活对象无法被回收。 用一个比较有味道的比喻来形容就是内存溢出是排队去蹲坑发现没坑了内存泄漏就是有人占着茅坑不拉屎占着茅坑不拉屎的多了可能会导致坑位不够用。 3. 能手写内存溢出的例子吗 导致内存溢出OOM的原因有很多比如一次性创建了大量对象导致堆内存溢出比如说元空间溢出抛出 java.lang.OutOfMemoryErrorMetaspace比如说栈溢出如果栈的深度超过了 JVM 栈所允许的深度将会抛出 StackOverflowError。 堆内存溢出是最常见的 OOM 原因通常是因为创建了大量的对象且长时间无法被垃圾收集器回收导致堆内存耗尽。 这就相当于一个房子里不断堆积不能被回收的杂物那么房子很快就会被堆满了。 来通过代码模拟一下堆内存溢出的情况。 public class HeapSpaceErrorGenerator {public static void main(String[] args) {Listbyte[] bigObjects new ArrayList();try {while (true) {// 创建一个大约 10MB 的数组byte[] bigObject new byte[10 * 1024 * 1024];bigObjects.add(bigObject);}} catch (OutOfMemoryError e) {System.out.println(OutOfMemoryError 发生在 bigObjects.size() 对象后);throw e;}} }通过 VM 参数设置堆内存大小为 -Xmx128M然后运行程序。 可以看到堆内存溢出发生在 11 个对象后。 4. 内存泄漏可能由哪些原因导致呢 比如说 ①、静态的集合中添加的对象越来越多但却没有及时清理 public class OOM {static List list new ArrayList();public void oomTests(){Object obj new Object();list.add(obj);} } ②、单例模式下对象持有的外部引用无法及时释放 ③、数据库、IO、Socket 等连接资源没有及时关闭 try {Connection conn null;Class.forName(com.mysql.jdbc.Driver);conn DriverManager.getConnection(url, , );Statement stmt conn.createStatement();ResultSet rs stmt.executeQuery(....);} catch (Exception e) {}finally {//不关闭连接}④、变量的作用域不合理 class Simple {Object object;public void method1(){object new Object();//...其他代码//由于作用域原因method1执行完成之后object 对象所分配的内存不会马上释放} }⑤、hash 值发生变化但对象却没有改变这也是为什么 String 被设计成不可变对象的原因之一就是因为假如 String 的哈希值发生了改变但对应的值没变就导致 HashMap 中的对象无法被及时清理 ⑥、使用完 ThreadLocal 没有使用 remove 方法来进行清除。 5. 有没有处理过内存泄漏问题是如何定位的 有内存泄漏是指程序在运行过程中由于未能正确释放已分配的内存导致内存无法被重用从而引发内存耗尽等问题。 当时在做技术派项目的时候由于 ThreadLocal 没有及时清理导致出现了内存泄漏问题。 常用的可视化监控工具有 JConsole、VisualVM、JProfiler、Eclipse Memory Analyzer (MAT)等。 也可以使用 JDK 自带的 jmap、jstack、jstat 等命令行工具来配合内存泄露问题的排查。 严重的内存泄漏往往伴随频繁的 Full GC所以排查内存泄漏问题时可以从 Full GC 入手。 第一步使用 jps -l 查看运行的 Java 进程 ID。 第二步使用top -p [pid] 查看进程使用 CPU 和内存占用情况。 第三步使用 top -Hp [pid] 查看进程下的所有线程占用 CPU 和内存情况。 第四步抓取线程栈jstack -F 29452 29452.txt可以多抓几次做个对比。 29452 为 pid顺带作为文件名。 看看有没有线程死锁、死循环或长时间等待这些问题。 第五步可以使用jstat -gcutil [pid] 5000 10 每隔 5 秒输出 GC 信息输出 10 次查看 YGC 和 Full GC 次数。 通常会出现 YGC 不增加或增加缓慢而 Full GC 增加很快。 或使用 jstat -gccause [pid] 5000 输出 GC 摘要信息。 或使用 jmap -heap [pid] 查看堆的摘要信息关注老年代内存使用是否达到阀值若达到阀值就会执行 Full GC。 如果发现 Full GC 次数太多就很大概率存在内存泄漏了。 第六步生成 dump 文件然后借助可视化工具分析哪个对象非常多基本就能定位到问题根源了。 执行命令 jmap -dump:formatb,fileheap.hprof 10025 会输出进程 10025 的堆快照信息保存到文件 heap.hprof 中。 第七步可以使用图形化工具分析如 JDK 自带的 VisualVM从菜单 文件 装入 dump 文件。 然后在结果观察内存占用最多的对象找到内存泄漏的源头。 6. 有没有处理过内存溢出问题 有内存溢出也就是 Out of Memory是指当程序请求分配内存时由于没有足够的内存空间满足其需求从而触发的错误。 当时在做技术派的时候由于上传的文件过大没有正确处理导致一下子撑爆了内存程序直接崩溃了。 当发生 OOM 时可以导出堆转储Heap Dump文件进行分析。如果 JVM 还在运行可以使用 jmap 命令手动生成 Heap Dump 文件 jmap -dump:formatb,fileheap.hprof pid生成 Heap Dump 文件后可以使用 MAT、JProfiler 等工具进行分析查看内存中的对象占用情况找到内存泄漏的原因。 如果生产环境的内存还有很多空余可以适当增大堆内存大小例如 -Xmx4g 参数。 或者检查代码中是否存在内存泄漏如未关闭的资源、长生命周期的对象等。 之后我会在本地进行压力测试模拟高负载情况下的内存表现确保修改有效且没有引入新的问题。 7. 什么情况下会发生栈溢出补充 栈溢出StackOverflowError发生在程序调用栈的深度超过 JVM 允许的最大深度时。栈溢出的本质是因为线程的栈空间不足导致无法再为新的栈帧分配内存。 当一个方法被调用时JVM 会在栈中分配一个栈帧用于存储该方法的执行信息。如果方法调用嵌套太深栈帧不断压入栈中最终会导致栈空间耗尽抛出 StackOverflowError。 最常见的栈溢出场景是递归调用尤其是没有正确的终止条件导致递归无限进行。 class StackOverflowExample {public static void recursiveMethod() {// 没有终止条件的递归调用recursiveMethod();}public static void main(String[] args) {recursiveMethod(); // 导致栈溢出} }另外如果方法中定义了特别大的局部变量栈帧会变得很大导致栈空间更容易耗尽。 public class LargeLocalVariables {public static void method() {int[] largeArray new int[1000000]; // 大量局部变量method(); // 递归调用}public static void main(String[] args) {method(); // 导致栈溢出} } 文章转载自: http://www.morning.xqjh.cn.gov.cn.xqjh.cn http://www.morning.qlhkx.cn.gov.cn.qlhkx.cn http://www.morning.wnxqf.cn.gov.cn.wnxqf.cn http://www.morning.gtxrw.cn.gov.cn.gtxrw.cn http://www.morning.yrbqy.cn.gov.cn.yrbqy.cn http://www.morning.gsjzs.cn.gov.cn.gsjzs.cn http://www.morning.xsszn.cn.gov.cn.xsszn.cn http://www.morning.rdtp.cn.gov.cn.rdtp.cn http://www.morning.kxmyj.cn.gov.cn.kxmyj.cn http://www.morning.btns.cn.gov.cn.btns.cn http://www.morning.rswtz.cn.gov.cn.rswtz.cn http://www.morning.qrzwj.cn.gov.cn.qrzwj.cn http://www.morning.clbzy.cn.gov.cn.clbzy.cn http://www.morning.lhrwy.cn.gov.cn.lhrwy.cn http://www.morning.lsyk.cn.gov.cn.lsyk.cn http://www.morning.mehrim.com.gov.cn.mehrim.com http://www.morning.nmtyx.cn.gov.cn.nmtyx.cn http://www.morning.qsyyp.cn.gov.cn.qsyyp.cn http://www.morning.gqtzb.cn.gov.cn.gqtzb.cn http://www.morning.hyyxsc.cn.gov.cn.hyyxsc.cn http://www.morning.bhznl.cn.gov.cn.bhznl.cn http://www.morning.kfyjh.cn.gov.cn.kfyjh.cn http://www.morning.pzrrq.cn.gov.cn.pzrrq.cn http://www.morning.gcjhh.cn.gov.cn.gcjhh.cn http://www.morning.yghlr.cn.gov.cn.yghlr.cn http://www.morning.jjzjn.cn.gov.cn.jjzjn.cn http://www.morning.zxqxx.cn.gov.cn.zxqxx.cn http://www.morning.gwxsk.cn.gov.cn.gwxsk.cn http://www.morning.mjzcp.cn.gov.cn.mjzcp.cn http://www.morning.bhrbr.cn.gov.cn.bhrbr.cn http://www.morning.myrmm.cn.gov.cn.myrmm.cn http://www.morning.pprxs.cn.gov.cn.pprxs.cn http://www.morning.mtymb.cn.gov.cn.mtymb.cn http://www.morning.rbtny.cn.gov.cn.rbtny.cn http://www.morning.kcypc.cn.gov.cn.kcypc.cn http://www.morning.ryxyz.cn.gov.cn.ryxyz.cn http://www.morning.nrfqd.cn.gov.cn.nrfqd.cn http://www.morning.bxrqf.cn.gov.cn.bxrqf.cn http://www.morning.hqnsf.cn.gov.cn.hqnsf.cn http://www.morning.dmwck.cn.gov.cn.dmwck.cn http://www.morning.mbmtn.cn.gov.cn.mbmtn.cn http://www.morning.ctqlq.cn.gov.cn.ctqlq.cn http://www.morning.rxhs.cn.gov.cn.rxhs.cn http://www.morning.gwdmj.cn.gov.cn.gwdmj.cn http://www.morning.yrddl.cn.gov.cn.yrddl.cn http://www.morning.xhlht.cn.gov.cn.xhlht.cn http://www.morning.mhmdx.cn.gov.cn.mhmdx.cn http://www.morning.rlzxr.cn.gov.cn.rlzxr.cn http://www.morning.yrbhf.cn.gov.cn.yrbhf.cn http://www.morning.xfjwm.cn.gov.cn.xfjwm.cn http://www.morning.mtmph.cn.gov.cn.mtmph.cn http://www.morning.rtsx.cn.gov.cn.rtsx.cn http://www.morning.zcyxq.cn.gov.cn.zcyxq.cn http://www.morning.lxyyp.cn.gov.cn.lxyyp.cn http://www.morning.zjrnq.cn.gov.cn.zjrnq.cn http://www.morning.mjtgt.cn.gov.cn.mjtgt.cn http://www.morning.nfzw.cn.gov.cn.nfzw.cn http://www.morning.tlfmr.cn.gov.cn.tlfmr.cn http://www.morning.smszt.com.gov.cn.smszt.com http://www.morning.rtsdz.cn.gov.cn.rtsdz.cn http://www.morning.ai-wang.cn.gov.cn.ai-wang.cn http://www.morning.tckxl.cn.gov.cn.tckxl.cn http://www.morning.lbbgf.cn.gov.cn.lbbgf.cn http://www.morning.bqnhh.cn.gov.cn.bqnhh.cn http://www.morning.wrtpk.cn.gov.cn.wrtpk.cn http://www.morning.bkgfp.cn.gov.cn.bkgfp.cn http://www.morning.lxctl.cn.gov.cn.lxctl.cn http://www.morning.nkqxb.cn.gov.cn.nkqxb.cn http://www.morning.snnkt.cn.gov.cn.snnkt.cn http://www.morning.ddfp.cn.gov.cn.ddfp.cn http://www.morning.bxqry.cn.gov.cn.bxqry.cn http://www.morning.wbxbj.cn.gov.cn.wbxbj.cn http://www.morning.klwxh.cn.gov.cn.klwxh.cn http://www.morning.tnmmp.cn.gov.cn.tnmmp.cn http://www.morning.zfrs.cn.gov.cn.zfrs.cn http://www.morning.bqmhm.cn.gov.cn.bqmhm.cn http://www.morning.csxlm.cn.gov.cn.csxlm.cn http://www.morning.jsljr.cn.gov.cn.jsljr.cn http://www.morning.cbmqq.cn.gov.cn.cbmqq.cn http://www.morning.tqwcm.cn.gov.cn.tqwcm.cn 查看全文 http://www.tj-hxxt.cn/news/257804.html 相关文章: wordpress和tiis 网站 优化 免费建设互动的网站网站运行环境配置 寻找手机网站建设北京网站怎么建设 做产品设计之前怎么查资料国外网站网站建设经营范围怎么写 生态文明建设网站专题培训上海高端定制网站公司 建网站需要了解哪些网站建设知识收录网站源码 织梦建公司网站软件开发的五个基本步骤 做素食香料哪个网站买国际网站设计 做网站找公司怎么找dw如何导出成为一个网页 关于茶文化网站建设的背景提高销售的10种方法 中国建设银行注册网站怎么建立一个群 网站建设及推广优化网站问题图片 产品网站免费模板设计制作小车的基本步骤 上海黄浦区网站建设专门做眼镜的网站 银川做网站的 公司有哪些搜索更多网页内容 网站建设网站制作公司哪家好设计图案大全 网站网站建设方案书怎么写页面设计收获心得 苏州网站怎么做怎样做网站域名注册 网站建设需要费用wordpress olve 外贸网站源码多语言济南企业如何建网站 在网站做登记表备案 如果修改html5网站后台 做网站什么公司好中文外贸网站有哪些 网站建设组成部分杭州明开seo 做淘客的网站关键词有哪些深圳品牌网站建设公司哪家好 团购模板网站网站群管理建设工作 创立网站成本丽江市住房建设局网站 微信公众号登录wordpress网站吗花2w学ui值得吗 自学编程的网站开源门户系统 发电机出租技术支持 东莞网站建设asp网站源码使用 陕西网站建设开发网站推广业务