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

仁寿县建设局网站网页制作基础教程例子

仁寿县建设局网站,网页制作基础教程例子,网站设计不同的原因,页面正在跳转 3秒后自动最近准备写点Javase的东西#xff0c;希望可以帮助大家写出更好的代码。 1、给不可实例化的类提供私有构造器 比如#xff1a;每个项目中都有很多工具类#xff0c;提供了很多static类型的方法供大家使用#xff0c;谁也不希望看到下面的代码#xff1a; TextUtils textUt… 最近准备写点Javase的东西希望可以帮助大家写出更好的代码。 1、给不可实例化的类提供私有构造器 比如每个项目中都有很多工具类提供了很多static类型的方法供大家使用谁也不希望看到下面的代码 TextUtils textUtils new TextUtils();if(textUtils.isDigitsOnly(123)){//doSometing}else{//doSomething}自己写个工具类总有人喜欢先初始化个实例在调用方法然后还附带一个警告The static method isDigitsOnly(CharSequence) from the type TextUtils should be accessed in a static way 。 你建议他使用类名.方法人家还不乐意我又没出错干嘛要改错了你负责么。所以最好的方式让他没办法new实例。 为工具类添加私有构造器 public class TextUtils {private TextUtils() { /* cannot be instantiated */ } 这是android的TextUtils的源码这样就可以了让他妹的初始化实例~当然你也可以在私有方法里面扔个异常。 public class TextUtils{private TextUtils() { /* cannot be instantiated */ throw new UnsupportedOperationException(cannot be instantiated);}} 对于异常的使用一尽量使用Java提供的异常类这样可以使你的API比较易读和易懂。 2、正确使用String避免创建不必要的对象 很多人面试的时候都遇到过这样的问题String s new String(abc)请问创建了几个对象。也从侧面说明了这是个反面的代码写法 a、String s new String(abc)“abc”本身就是一个String的实例所以new String创建了不必要的String实例 b、如果改写成 String s abc不仅只创建了一个实例而且在同一台VM中对于“abc”字符串的字面常量还会重用。 3、优先使用基本类型Java提供了8种基本类型以及对应的装箱基本类型且在Java1.5 提供了自动装箱和解箱操作虽然方便了代码的编写但是如果不注意可能带来不好的效果。 看下面的代码 long start System.nanoTime();Long sum 0L;for (long i 0; i Integer.MAX_VALUE; i){sum i;}System.out.println(sum);System.out.println(System.nanoTime() - start);//20995956735 如果你观察了内存会发现一直GC一直在内存回收并且计算时间需要20多秒如果我说这段代码有个bug导致代码运行很慢以及耗费内存你能找到吗 下面我修改下代码 long start System.nanoTime();long sum 0l;for (long i 0; i Integer.MAX_VALUE; i){sum i;}System.out.println(sum);System.out.println(System.nanoTime() - start);//5029758632 这次运行不会出现GC一直回收内存且速度也只需要5秒左右可能眼神不好的没有发现哪个地方修改了。 问题就出在自动装箱、解箱上。第一次的程序sum为Long类型在计算sumi时会把sum自动解箱成long sum 然后运算运算完成后再装箱成Long sum导致程序构造了大约2的32次方个多余Long实例。所以各位且用且严谨。 4、对于自己管理内存的类一定要清除不必要的对象引用防止内存泄漏 看下面的代码 package com.zhy._01;import java.util.Arrays;/** 使用数组模拟栈*/ public class MyStack {private static final int DEFAULT_INIT_SIZE 10;private Object[] eles new Object[DEFAULT_INIT_SIZE];/*** 当前栈顶索引*/private int currentIndex;/*** 弹栈* * return*/public Object pop(){if (currentIndex 0)throw new ArrayIndexOutOfBoundsException(stack is empty);return eles[--currentIndex];}/*** 压栈* * param o*/public void push(Object o){ensureCapacity();eles[currentIndex] o;}private void ensureCapacity(){if (eles.length currentIndex){eles Arrays.copyOf(eles, currentIndex * 2 1);}}}代码中存在一个地方导致了内存泄漏你可以发现不 return eles[--currentIndex]; 这行代码导致如果栈增长了特别大然后调用多次pop弹栈虽然currentIndex小了但是栈始终保持中之前pop出的过期对象的引用这就导致了内存泄漏。如果不注意甚至最终造成OOM。 应该改为 /*** 弹栈* * return*/public Object pop(){if (currentIndex 0)throw new ArrayIndexOutOfBoundsException(stack is empty);Object tmp eles[--currentIndex];eles[currentIndex] null ; return tmp ; } 当然了不要因为担心内存泄漏在每个变量使用完成后都添加xxxnull对于消除过期引用的最好方法就是让包含该引用的变量结束生命周期而不是显示的清空。一般情况下对于类自己管理的内存应当警惕。 好了就到这里这些内容都是我个人觉得值得知道且在项目中会常遇到的希望可以帮助到大家嘿嘿求评论求赞。 转载于:https://www.cnblogs.com/oversea201405/p/3752027.html
http://www.yutouwan.com/news/184631/

相关文章:

  • php网站进后台从零开始学wordpress
  • 网站进入考核期要多久wordpress密码错误
  • 文化建设 设计公司网站公众号怎么开通商城
  • WordPress瀑布流图片站单位网址怎么编
  • 企业系统建设赣州做网站优化
  • 创建app与网站的区别wordpress linux伪静态
  • 个人域名备案快的网站北京的网站建设
  • asp网站开发的背景与环境北京网页设计公司兴田德润优选
  • 网站界面设计如何实现功能美与形式美的统一教你用wordpress
  • 移动网站和定制网站重庆小程序商城开发
  • 网站优化之站外优化技巧潮流设计网站
  • 哪个网站做简历做钓鱼网站用哪种编程语言
  • 网站的建设与运营专业网络工程建设
  • 空间信息网站淘宝网请人做淘宝客网站
  • 网站建设 步骤汕头拿家做网站
  • 专业北京网站建设公司影楼和工作室的区别
  • 可信网站认证 技术支持单位上海搜索优化推广
  • 开发建设网站多久wordpress修改根目录
  • 租网站服务器一个月多少钱北京市建设厅门户网站
  • 成都优秀网站建设做网站要具备哪些
  • 网站开发公司盈利自己做的网站找不到了
  • 开封建站公司注册一个公司的所有流程
  • 网站建设时应该做的优化长沙推广优化公司
  • 电子商务网站建设服务免费公司取名在线
  • 免费查公司青岛官网seo价格
  • 上海交通大学网站建设微信网站建设协议
  • 某企业网站搜索引擎优化wordpress如何发照片
  • 一个服务器能放多少网站太原做网站的通讯公司有哪些
  • 搞一个网站多少钱做网站关于创新的
  • 国际商业网站做网站怎么套模板