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

学做网站php吗做性视频网站有哪些内容

学做网站php吗,做性视频网站有哪些内容,做网站的主题有哪些,网站程序方面前言 Java和C或者是C相比较而言#xff0c;最大的区别是C系列的程序员在编写代码的时候#xff0c;总是要对程序中的变量进行释放内存的操作#xff0c;所以在编写C或者是C的程序员需要格外的谨慎#xff0c;因为他们对程序的内存有着很高的权限#xff0c;这样虽然是特点… 前言 Java和C或者是C相比较而言最大的区别是C系列的程序员在编写代码的时候总是要对程序中的变量进行释放内存的操作所以在编写C或者是C的程序员需要格外的谨慎因为他们对程序的内存有着很高的权限这样虽然是特点但是同时也是缺点毕竟every coin has two sides。所以跟Java语言相比而言Java把内存的管理直接交付给JVM因为JVM的存在Java程序员能够更关注业务的实现而不需要对内存的管理过于关注。但是我们在编程的时候有时候会出现OutOfMemoryError之类的错误这就是JVM内存溢出的错误。这样如果我们对Java虚拟机对内存的管理我们就不能很好的解决类似的问题所以我们还是要对Java的内存管理要有一定的理解对我们后期对Java代码调优也是有一定的帮助。 Java虚拟机内存模型  根据上图可以看出来JVM的运行时数据区域主要就是方法区虚拟机栈虚拟机堆内存本地方法区和程序计数器。下面就来看看这些个内存区域都是用来存储哪些数据的。 Java虚拟机栈 方法区是线程私有的内存区域声明周期与线程相同。虚拟机栈描述的是Java方法执行的内存模型每个方法执行的时候虚拟机会以栈帧的形式压入到栈中这里的栈也是一种先进后出的数据结构。栈帧通常是用来存储局部变量表操作数栈帧数据区等信息。每个方法的调用和结束都是入栈和出栈的操作。由于每次方法的调用都会生成对应的栈帧栈帧会占用一定的栈空间因此如果栈帧的空间不足函数的调用就无法进行下去当请求的栈的深度大于最大的可用栈深度的时候系统就会抛出StackOverflowError的溢出错误。 局部变量表存放编译期可以知道的各种基本数据类型boolean,byte,char,short,int,float,long,double对象引用和returnAddress类型。其中64位长度的long和double类型的数据会占用2个slot局部变量空间其余的都是一个slot。局部变量表所需要的内存空间在编译期间完成分配运行期间不会改变局部变量表的大小。 代码实现StackOverflowError的溢出错误 package com.jvm.method_region;public class MethodRegionTest {Integer count 0;public void method1() { count ; method1(); } public static void main(String[] args) { MethodRegionTest methodRegionTest null; try { methodRegionTest new MethodRegionTest(); methodRegionTest.method1(); }catch (Exception e) { // TODO: handle exception }finally { System.out.println(递归java栈的深度是 methodRegionTest.count); 在运行的时候修改JVM参数通过修改-Xss128K可以改变虚拟机栈的大小我第一次是128K第二次是256K看执行的结果 递归java栈的深度是 994 Exception in thread main java.lang.StackOverflowError at java.lang.Integer.init(Unknown Source) at java.lang.Integer.valueOf(Unknown Source) at com.jvm.method_region.MethodRegionTest.method1(MethodRegionTest.java:8) at com.jvm.method_region.MethodRegionTest.method1(MethodRegionTest.java:9) at com.jvm.method_region.MethodRegionTest.method1(MethodRegionTest.java:9) at com.jvm.method_region.MethodRegionTest.method1(MethodRegionTest.java:9) at com.jvm.method_region.MethodRegionTest.method1(MethodRegionTest.java:9) 123456789第二次 递归java栈的深度是 2475 Exception in thread main java.lang.StackOverflowError at java.lang.Integer.init(Unknown Source) at java.lang.Integer.valueOf(Unknown Source) at com.jvm.method_region.MethodRegionTest.method1(MethodRegionTest.java:8) at com.jvm.method_region.MethodRegionTest.method1(MethodRegionTest.java:9) at com.jvm.method_region.MethodRegionTest.method1(MethodRegionTest.java:9) at com.jvm.method_region.MethodRegionTest.method1(MethodRegionTest.java:9) at com.jvm.method_region.MethodRegionTest.method1(MethodRegionTest.java:9) at com.jvm.method_region.MethodRegionTest.method1(MethodRegionTest.java:9) 12345678910在eclipse改变JVM的参数操作  ————————-这是分隔符————————————-  本地方法栈 本地方法栈和虚拟机栈类似但是他们也是有区别的区别就是虚拟机栈是调用java方法的时候会把栈帧压入栈中而本地方法栈是调用的native方法native是由C编写的。同时本地方法栈也会和虚拟机栈一样也是会爆出来StackOverflowError和OutOfMemoryError的错误。OutOfMemoryError的错误是在虚拟机的栈内存可以自动扩展的情况下不停的将栈帧数据压入到栈中以至于虚拟机不停的申请内存最后导致内存的溢出所以爆出来OutOfMemoryError错误。 虚拟机堆 Java Heap是Java虚拟机所管理的内存最大的一块这一块的内存区域是所有线程共享的。此内存区域是用来存放对象实例几乎所有的对象实例以及数组都在这里分配内存。Java Heap还可以细分为新生代区和老年代区而新生代区还可以分为eden区from区和to区from和to的大小是一样的。在绝大数的情况下对象是先分配在eden区在第一次垃圾回收后如果对象还存活着那么该对象就会进入到from区或者是to区然后每经过一次垃圾回收对象依然存活着它的年纪就会增加1。当对象的年纪到达一定的条件后该对象就会进入到老年tenured区。 程序计数器 Program Counter是每个线程的私有空间Java虚拟机会为每一个线程创建PC寄存器在任意时刻一个线程总是在执行一个方法正在执行的方法称为当前方法。如果当前方法不是本地方法PC寄存器就会指向当前正在被执行的指令。如果当前方法是本地方法那么PC寄存器的值就是undefined。 方法区 方法区也是线程共享的内存区域用于保存系统的类信息比如类的字段方法常量池等方法区的大小决定了系统可以保存多少个类如果系统定义了太多的类同样会导致方法区的溢出。在JDK1.6和JDK1.7中方法区可以理解为永久区Perm。永久区可以使用参数-XX:PermSize和-XX:MaxPermSize指定默认情况下-XX:MaxPermSize为64MB。一个大的永久区可以保存更多的信息。如果系统中使用一些动态代理那么就有可能在运行时生成大量的类。在JDK1.8中永久区已经被彻底移除用元数据区来代替。元数据区可以使用-XX:MaxMetaspaceSize指定元数据区使用的系统的直接内存。如果不指定元数据的大小程序会耗尽所有的内存。 package com.jvm.perm;import net.sf.cglib.beans.BeanGenerator;public class PermTest { class Perm{ String name; public String getName(www.bomaoyule.cn) { return name; } public void setName(String name) { this.name name; } } public static void main(String[www.yingka178.com ] args) { try { for (int i 0; i 1000000; i) { BeanGenerator generator new BeanGenerator(www.078881.cn ); generator.setSuperclass(Perm.class); generator.addProperty(name, String.class); generator.create(www.chaoyueyule.com/); } } catch (Exception www.dongfan178.com e) www.mcyllpt.com/ { // TODO: handle exception 加了虚拟机参数-XX:PrintGCDetails -XX:MaxMetaspaceSize256k 运行结果 Error occurred during initialization of VM OutOfMemoryError: Metaspace 转载于:https://www.cnblogs.com/qwangxiao/p/9249586.html
http://www.yutouwan.com/news/381479/

相关文章:

  • 站中站网站案例湖南建筑信息网平台
  • 网站建设公司大型杨浦网站建设 网站外包
  • 大连市城乡建设厅网站商城网站的建设
  • 网站内链设置网站开发如何修改字体
  • 遵义怎样做网站openwrt做网站
  • 广州黄埔区开发区建设局网站买了个网站后怎么做的
  • 枣庄手机网站建设公司个人简历制作视频教程
  • 免费在线观看韩国电视剧网站推荐旅游网站排名前5位的
  • 嘉定南翔网站建设深圳专业建站多少钱
  • 海口建站模板企业宣传模板图片
  • 网站规划与开发专业佛山网吧什么时候恢复营业
  • 宁波网站优化找哪家商标设计生成器
  • 鹤壁网站设计企业员工培训课程有哪些
  • 山东房和城乡建设厅网站asp.net获取网站虚拟目录
  • 南昌响应式网站建设聊城哪儿做网站便宜
  • 做翻译小说网站赚钱吗家庭局域网设计方案
  • 建影楼网站多少钱定制开发小程序和模板小程序
  • 网站制作教程下载免费那个网站
  • 电商网站 技术搭建 wordpress 简书
  • 中铁建设投资集团有限公司招聘网站百度爱采购竞价推广
  • 嘉兴响应式网站云南机场建设集团网站
  • 做sgs认证的公司网站直播是网站怎么做
  • 湖北网站开发培训千锋培训机构官网
  • 网站开发课题开发背景主流建站开源程序有哪些
  • 如何将自己做的网站放到网上wordpress媒体库无法显示
  • 学校网站网页建设开题报告书网站建设需要具备的能力
  • 深圳网站制作要多少钱做网站公司多少钱
  • 页面设计制作网站源码莱西网站制作联赛与超
  • 网站宣传推广平台asp做的网站怎么运行
  • 个人网站备案 网站服务内容英文网站建设费用