电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Java StackOverflowError詳解

瀏覽:4日期:2023-12-06 15:50:34
StackOverflowError

原因 : 函數(shù)調(diào)用棧太深了,注意代碼中是否有了循環(huán)調(diào)用方法而無法退出的情況

原理

StackOverflowError 是一個(gè)java中常出現(xiàn)的錯(cuò)誤:在jvm運(yùn)行時(shí)的數(shù)據(jù)區(qū)域中有一個(gè)java虛擬機(jī)棧,當(dāng)執(zhí)行java方法時(shí)會(huì)進(jìn)行壓棧彈棧的操作。在棧中會(huì)保存局部變量,操作數(shù)棧,方法出口等等。jvm規(guī)定了棧的最大深度,當(dāng)執(zhí)行時(shí)棧的深度大于了規(guī)定的深度,就會(huì)拋出StackOverflowError錯(cuò)誤。

典型的例子:

public class StackOverFlowDemo { public static void Foo(){Foo(); } public static void main(String[] args) {Foo(); }}

今天我遇見了另外一種情況:當(dāng)兩個(gè)對象相互引用,在調(diào)用toString方法時(shí)會(huì)產(chǎn)生這個(gè)異常,因?yàn)樗鼈儠?huì)循環(huán)調(diào)用toString方法。

//book和student相互循環(huán)引用public class StackOverFlowDemo { static class Student{String name;Book book;public Student(String name) { this.name = name;}//循環(huán)調(diào)用toString方法@Overridepublic String toString() { return 'Student{' + 'name=’' + name + ’’’ + ', book=' + book + ’}’;} } static class Book {String isbn;Student student;public Book(String isbn, Student student) { this.isbn = isbn; this.student = student;}@Overridepublic String toString() { return 'Book{' + 'isbn=’' + isbn + ’’’ + ', student=' + student + ’}’;} } public static void main(String[] args) {Student student=new Student('zhang3');Book book=new Book('1111',student);student.book=book;System.out.println(book.toString()); }}

出現(xiàn)的錯(cuò)誤:

Java StackOverflowError詳解

toString()

說到toString()方法,在打印一個(gè)對象時(shí),會(huì)先調(diào)用這個(gè)對象的toString()方法,例如:

public class toStringDemo { static class A{@Overridepublic String toString() { System.out.print('I '); return '';} } public static void main(String[] args) {A a=new A();System.out.println('love you.'+a); }}

會(huì)輸出:

I love you.

到此這篇關(guān)于Java StackOverflowError詳解的文章就介紹到這了,更多相關(guān)Java StackOverflowError內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 酒店品牌设计-酒店vi设计-酒店标识设计【国际级】VI策划公司 | 聚合氯化铝价格_聚合氯化铝厂家_pac絮凝剂-唐达净水官网 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 焊缝跟踪系统_激光位移传感器_激光焊缝跟踪传感器-创想智控 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 老房子翻新装修,旧房墙面翻新,房屋防水补漏,厨房卫生间改造,室内装潢装修公司 - 一修房屋快修官网 | 酒糟烘干机-豆渣烘干机-薯渣烘干机-糟渣烘干设备厂家-焦作市真节能环保设备科技有限公司 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | EFM 022静电场测试仪-套帽式风量计-静电平板监测器-上海民仪电子有限公司 | 阴离子_阳离子聚丙烯酰胺厂家_聚合氯化铝价格_水处理絮凝剂_巩义市江源净水材料有限公司 | 移动机器人产业联盟官网 | 网络推广公司_网络营销方案策划_企业网络推广外包平台-上海澜推网络 | MTK核心板|MTK开发板|MTK模块|4G核心板|4G模块|5G核心板|5G模块|安卓核心板|安卓模块|高通核心板-深圳市新移科技有限公司 | 阿里巴巴诚信通温州、台州、宁波、嘉兴授权渠道商-浙江联欣科技提供阿里会员办理 | 天空彩票天下彩,天空彩天空彩票免费资料,天空彩票与你同行开奖,天下彩正版资料大全 | 正压送风机-多叶送风口-板式排烟口-德州志诺通风设备 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 安徽控制器-合肥船用空调控制器-合肥家电控制器-合肥迅驰电子厂 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 路面机械厂家 | 纯水设备_苏州皙全超纯水设备水处理设备生产厂家 | 防腐储罐_塑料储罐_PE储罐厂家_淄博富邦滚塑防腐设备科技有限公司 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | 农业四情_农业气象站_田间小型气象站_智慧农业气象站-山东风途物联网 | 干洗加盟网-洗衣店品牌排行-干洗设备价格-干洗连锁加盟指南 | 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 网带通过式抛丸机,,网带式打砂机,吊钩式,抛丸机,中山抛丸机生产厂家,江门抛丸机,佛山吊钩式,东莞抛丸机,中山市泰达自动化设备有限公司 | 集菌仪厂家_全封闭_封闭式_智能智能集菌仪厂家-上海郓曹 | 安全光栅|射频导纳物位开关|音叉料位计|雷达液位计|两级跑偏开关|双向拉绳开关-山东卓信机械有限公司 | 赛尔特智能移动阳光房-阳光房厂家-赛尔特建筑科技(广东)有限公司 | 干粉砂浆设备-干粉砂浆生产线-干混-石膏-保温砂浆设备生产线-腻子粉设备厂家-国恒机械 | 盛源真空泵|空压机-浙江盛源空压机制造有限公司-【盛源官网】 | 北京模型公司-工业模型-地产模型-施工模型-北京渝峰时代沙盘模型制作公司 | 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | 工业淬火油烟净化器,北京油烟净化器厂家,热处理油烟净化器-北京众鑫百科 | 施工围挡-施工PVC围挡-工程围挡-深圳市旭东钢构技术开发有限公司 | 步入式高低温测试箱|海向仪器 | 特种阀门-调节阀门-高温熔盐阀-镍合金截止阀-钛阀门-高温阀门-高性能蝶阀-蒙乃尔合金阀门-福建捷斯特阀门制造有限公司 | 承插管件_不锈钢承插管件_锻钢高压管件-温州科正阀门管件有限公司 | 在线悬浮物浓度计-多参数水质在线检测仪-上海沃懋仪表科技有限公司 | 西安耀程造价培训机构_工程预算实训_广联达实作实操培训 | 钢格板|热镀锌钢格板|钢格栅板|钢格栅|格栅板-安平县昊泽丝网制品有限公司 |