A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 牛兴亮 中级黑马   /  2014-9-26 21:24  /  835 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在代码的编写中,我们只要稍微注意一下也许可以做到更好。下面是我的一些小小发现,敬请大家指正和补充:
  1. //1.数据交换
  2.         public static void swap(int[] num,i,j)
  3.         {
  4.                 /*
  5.                 习惯性写法
  6.                 int temp=num[i];
  7.                 num[i]=num[j];
  8.                 num[j]=temp;
  9.                 */
  10.                 //也许这么写也不错
  11.                 num[i]=num[i]^num[j];
  12.                 num[j]=num[i]^num[j];
  13.                 num[i]=num[i]^num[j];
  14.         }
  15.         //2.定义变量的位置
  16.         public static void prints(int[] num)
  17.         {
  18.                 /*
  19.                 int i=0;
  20.                 for(;i<num.length;i++)
  21.                 {
  22.                         System.out.println(num[i])
  23.                 }
  24.                 */
  25.                 //显然,上面的写法就不让下面的写法合理
  26.                 for(int i=0;i<num.length;i++)
  27.                 {
  28.                         System.out.println(tm)
  29.                 }
  30.         }
  31.         /*
  32.         定义局部变量的时候尽量保证使用完成能够最快的被垃圾回收器回收,
  33.         当然,上面的例子太easy,可能大家没什么感觉。如果毕老师的视频看到16天的同学可以看一下老师写的一段代码
  34.         现在我们给它小小的优化一下
  35.         */
  36.         public static String charCount(String str)//
  37.         {
  38.                 char[] chs = str.toCharArray();

  39.                 TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
  40.                
  41.                 int count = 0;//count 作为计数器,
  42.                 for(int x=0; x<chs.length; x++)
  43.                 {
  44.                         if(!(chs[x]>='a' && chs[x]<='z' || chs[x]>='A' && chs[x]<='Z'))
  45.                                 continue;

  46.                         Integer value = tm.get(chs[x]);

  47.                         if(value!=null)
  48.                                 count = value;
  49.                         count++;
  50.                         tm.put(chs[x],count);

  51.                         count = 0;
  52.                         /* count 的出现就是为了优化以下代码存在的
  53.                         if(value==null)
  54.                         {
  55.                                 tm.put(chs[x],1);
  56.                         }
  57.                         else
  58.                         {
  59.                                 value = value + 1;
  60.                                 tm.put(chs[x],value);
  61.                         }
  62.                         */
  63.                 }
  64.                 /*下面我们看一下for循环的优化
  65.                 for(int x=0,count=0; x<chs.length; x++,count=0)
  66.                 {
  67.                         //循环主体不变,count=0可以去掉了。
  68.                         //这样既可以避免了在主体中定义变量造成的循环过程中反复开辟空间,又能尽可能的保证循环结束,count被垃圾回收。
  69.                        
  70.                 }               
  71.                 */
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马