java编码技巧-jq

在这里插入图片描述

001 数组和list的选择
数组是定长的,ArrayList是变长的。由于数组长度是固定的,因此在生命数组时就已经分配好内存了。而数组的操作则会更快一些。另一方面,如果不知道数据的大小
数组可以是多维的,但ArrayList只能是一维的。 数组常用于固定的,已知的,东西,List对付未知的。

002 多使用枚举
比如系统的返回码 返回message

003 final

工具类使用final修饰,好处,使用java虚拟机的内联机制,性能提高百分之40.
Final修饰你的实体类,不被继承的类,你只是将他作为一个实体,在内存中的指针不可改变。

004 字符串

不能多次+,容易内存溢出

005多用本地变量

调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中,速度较快,其他变量,如静态变量、实例变量等,都在堆中创建,速度较慢。
另外,栈中创建的变量,随着方法的运行结束,这些内容就没了,不需要额外的垃圾回收。

006循环的改造

  1. for (int i = 0; i < list.size(); i++)
  2. {…}
    建议替换为:
  3. for (int i = 0, length = list.size(); i < length; i++)
  4. {…}

007 使用懒加载

例如:

  1. String str = “aaa”;
  2. if (i == 1)
  3. {
  4. list.add(str);
  5. }
    建议替换为:
  6. if (i == 1)
  7. {
  8. String str = “aaa”;
  9. list.add(str);
  10. }

008全局变量

将常量声明为static final,并以大写命名
这样在编译期间就可以把这些内容放入常量池中,避免运行期间计算生成常量的值。另外,将常量的名字以大写命名也可以方便区分出常量与变量

009 Map的遍历

HashMap<String, String> hm = new HashMap<String, String>();
   hm.put("111", "222");

   Set<Map.Entry<String, String>> entrySet = hm.entrySet();
   Iterator<Map.Entry<String, String>> iter = entrySet.iterator();
   while (iter.hasNext())
   {
       Map.Entry<String, String> entry = iter.next();
       System.out.println(entry.getKey() + "\t" + entry.getValue());
   }


for (Map.Entry<String, String> entry : this.aliasMap.entrySet()) {//这种遍历,值的学习,遍历的是 Entity,直接遍历实体,现在高大上
			String registeredName = entry.getValue();
			if (registeredName.equals(name)) {
				String registeredAlias = entry.getKey();
				return (registeredAlias.equals(alias) || hasAlias(registeredAlias, alias));
			}
		}

如果您觉得我的付出对您有帮助,还请关注+点赞哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值