当前位置: 首页 > news >正文

网站通常用什么编程做网页制作素材可爱图片

网站通常用什么编程做,网页制作素材可爱图片,网页版游戏推荐,男人和女人做污的视频网站java 正则异常 java.lang.StackOverflowError#xff1a;在使用正则表达式的时候#xff0c;底层是通过迭代方式执行的#xff0c;每一层的迭代都会在栈线程的大小中占一定内存#xff0c;如果迭代的层次很多#xff0c;就会报出stackOverFlowError异常。所以在使用正则的…java 正则异常 java.lang.StackOverflowError在使用正则表达式的时候底层是通过迭代方式执行的每一层的迭代都会在栈线程的大小中占一定内存如果迭代的层次很多就会报出stackOverFlowError异常。所以在使用正则的时候其实是有利有弊的。我们使用的weblogic服务器修改了配置-Xss的大小为512K后测试几次没有报错。现在修改成了1M再观察一段时间。修改-Xss只是治标不治本的解决方法要从根源上解决还需要优化正则。以下是从网络上摘抄的根本原因是这样的,对于每一个线程,都有一个java栈 ,当有一个方法被调用的时候,会产生一些跟这个方法相关的信息,如方法名参数中间变量等等,这些叫做栈帧 ,当一个方法执行完毕  这个栈帧才会从栈顶pop掉  你递归的话  会一直向栈里push栈帧  而这个java栈是有一定的长度或深度的,当栈满了,无法再进行push的时候 就出现你上面的异常了,解决办法的话 就不要用递归操作 改用for 而且平时也不建议用递归的,效率太低了 .参考网址http://bbs.csdn.net/topics/370099884栈溢出了JVM依然是采用栈式的虚拟机这个和C和Pascal都是一样的。函数的调用过程都体现在堆栈和退栈上了。你调用构造函数的“层”太多了以致于把栈区溢出了。通常来讲一般栈区远远小于堆区的因为函数调用过程往往不会多于上千层而即便每个函数调用需要1K的空间(这个大约相当于在一个C函数内声明了256个int类型的变量)那么栈区也不过是需要1MB的空间。通常栈的大小是12MB的。通常递归也不要递归的层次过多很容易溢出.参考网址http://bbs.csdn.net/topics/380047221对java.lang.StackOverflowError的分析原因运行一个程序,JVM会开辟一块内存空间去储存程序进行时的某些信息,当程序运行时需要储存的信息超过了分配的空间,就会出现那样的问题.比如死循环,解决首先从程序代码优化方面着手检查是否有死循环、递归等程序如果有修正、优化相关代码。参考网址http://blog.csdn.net/gaomatrix/article/details/6604579有时regex包中的Pattern类会抛出StackOverflowError.这是已知的bug #5050507的表现它自从Java 1.4就存在于java.util.regex包中。这个bug仍然存在因为它是“wont fix”的状态。这个错误的出现是因为Pattern类把一个正则表达式编译为一个用来寻找匹配的小程序。这个程序被递归调用有时太多的递归就会导致该错误的出现。更多细节请参考bug描述。看起来大部分是在使用选择(alternation)的出现。参考网址http://edu.21cn.com/java/g_189_801829-1.htm大致的描述一下问题有一个正则匹配本机环境可以正常匹配在另一台服务器也可以正常匹配但是只有一台 不行我就怀疑是那台机器的环境问题结果和我想的一样。设置jvm参数Xss 设置成默认即可参考网址http://blog.knowsky.com/190676.htmJava程序中每个线程都有自己的Stack Space。这个Stack Space不是来自Heap的分配。所以Stack Space的大小不会受到-Xmx和-Xms的影响这2个JVM参数仅仅是影响Heap的大小。Stack Space用来做方法的递归调用时压入Stack Frame。所以当递归调用太深的时候就有可能耗尽Stack Space爆出StackOverflow的错误。Stack Space的大小随着OSJVM以及环境变量的大小而发生变化。一般说来默认的大小是512K。在64位的系统中这个StackSpace值会更大。一般说来Stack Space为128K是够用的。这时你说需要做的就是观察。如果你的程序没有爆出StackOverflow的错误可以使用-Xss来调整Stack Space的大小为128K。(eg-Xss128K)参考网址http://thomaschen2011.iteye.com/blog/1214114从异常信息来看很明显线程栈空间不足一般来说存在这种情况是因为方法的嵌套调用层次太深上层的方法栈一直得不到释放导致栈空间不足。因为正则匹配的时候嵌套层次太深“()”太多太深。请记住一句老话“ 您有一个问题用正则表达式解决。那您就有两个问题了。”参考网址http://www.iteye.com/topic/860654关于优化Java中的正则表达式1、如果在程序中多次使用同一个正则表达式一定要用Pattern.compile()编译代替直接使用Pattern.matches()。如果一次次对同一个正则表达式使用Pattern.matches()例如在循环中没有编译的正则表达式消耗比较大。因为matches()方法每次都会预编译使用的表达式。另外记住你可以通过调用reset()方法对不同的输入字符串重复使用Matcher对象。2、留意选择(Beware of alternation)。类似“(X|Y|Z)”的正则表达式有降低速度的坏名声所以要多留心。首先考虑选择的顺序那么要将比较常用的选择项放在前面因此它们可以较快被匹配。另外尝试提取共用模式例如将“(abcd|abef)”替换为“ab(cd|ef)”。后者匹配速度较快因为NFA会尝试匹配ab如果没有找到就不再尝试任何选择项。(在当前情况下只有两个选择项。如果有很多选择项速度将会有显著的提升。)选择的确会降低程序的速度。在我的测试中表达式“.*(abcd|efgh|ijkl).*”要比调用String.indexOf()三次——每次针对表达式中的一个选项——慢三倍。3、获取每次使用引起小损失的分组。如果你实际并不需要获取一个分组内的文本那么就使用非捕获分组。例如使用“(?:X)”代替“(X)”。参考网址http://blog.csdn.net/mydeman/article/details/1800636(大概的意思就是如果我们使用递归了首先你得明白什么是递归递归就是一个方法被调用N次。当方法被调用的时候方法的参数定义等信息会存在本次线程对应的java栈里。一个方法被调用N次那就得往这个java栈里放N次。次数如果过多那么java栈就会溢出。)
http://www.yutouwan.com/news/8199/

相关文章:

  • 企业网站页面宽哪里设置网站建设和运维单位责任
  • 网站导航做外链建设银行短信带网站
  • 网站什么时候备案指数运算法则
  • 怎么提高网站加载速度建设网站的网络公司
  • 网站备案号在哪里看直播开放平台登录
  • Centos建网站必须域名网站推广指标
  • 怎么样让网站快速收录建设报名系统官网考试平台
  • 做电影下载网站还赚钱吗怎么免费制作网页
  • 一个企业网站如何能放到互联网上 vps微信有哪些不正经的公众号
  • 怎么找到网站后台外贸营销网站怎么建设
  • 珠海新盈科技 网站建设小程序商城图标素材
  • 合肥企业网站建设wordpress个人网站模板
  • 怎么指导电脑有么有安装wordpress佛山市seo广告优化工具
  • 做吃的教程网站正规seo排名公司
  • 有趣的网站小游戏百度排行榜风云
  • 做图网站大学生兼职个人求职简历模板免费下载
  • 南昌自助建站横沥镇网站仿做
  • 公司网站建设制作价格网站策划书的撰写流程
  • 最好的响应式网站app应用分发平台开发
  • 设计师一般放作品的网站网页制作与网站建设 论文
  • 美术主题资源网站建设湖南关键词优化快速
  • 如何查看网站跳出率wordpress照片exif
  • 网站建设浅析付费可见wordpress
  • 超链接到网站怎么做视频文件如何制作自己的微信小程序
  • 做菠菜网站代理软件开发专业就业
  • seo网站关键词优化多少钱如何自己制作图片
  • 网站空间 阿里云集团公司网页设计
  • 昆明智能建站网站排名代做
  • 绵阳网站设计公司国家建筑信息管理平台
  • 深圳网站建设制作公司排名新网站关键词怎么优化