git使用,抓包工具Charles使用和编程规范

一. git的使用

  1. git fetch用来同步远程的分支
  2. git checkout –track -b feature/20180529_2317684_intelligent_3_1 origin/feature/20180529_2317684_intelligent_3_1 切换到某个分支,同时使本地分支与远程分支建立对应的关系,从而使git push的时候,不需要加上origin的关键字
  3. git status 是看当前的修改状态
  4. git diff 看具体改动的情况
  5. git commit -a -m “注释” 可以将提交的代码一起add,然后提交

二. 抓包工具Charles的使用

  1. 在官网下载charles:http://www.charlesproxy.com/,正版每隔30分钟需要重启一次,网上有针对各个版本的破解方法
  2. 在手机上设置HTTP代理,手机要与Mac笔记本在同一局域网内,服务器设置成mac电脑的内网地址,可以用ifconfig查看或者在系统设置->网络中查看,端口设置成8888
  3. 然后在手机中装好测试版的app后,点击之后,查看软件中的请求情况

三. 编程规范

  1. 任何布尔类型的变量,都不要加is前缀,否则部分框架解析会引起序列化错误
  2. 枚举类成员名称全大写,单词间用下划线隔开,构造方法默认是私有,且加上根据Integer获取枚举类实例的方法
  3. 在Long型赋值时,数值后面使用大写的L
  4. Object的equals方法容易抛出空指针异常,应使用“test”.equals(object)的方法
  5. NPE错误-null pointer exception

    HashMap的键和值可以为null
    集合遍历时不允许删除元素
    Arrays.asList数组转集合后,不能使用集合修改的方法,因为asList是一个内部类
    等等
  6. 构造方法禁止加入任何业务逻辑,如果有初始化逻辑,放在init方法中
  7. 不要在实体类中同时存在属性xx的isXx和getXx方法,框架调用读取该属性时,并不能确定哪个方法被优先调用到
  8. String的split方法需要检查最后一个分隔符有无内容
  9. ArrayList的sublist结果不可强转成ArrayList,subList返回的是ArrayList的内部类SubList
  10. HashMap从JDK7到JDK8的源码比较

    HashMap 在 new 后并不会立即分配bucket数组,而是第一次 put 时初始化,类似 ArrayList 在第一次 add 时分配空间。
    HashMap 的 bucket 数组大小一定是2的幂,如果 new 的时候指定了容量且不是2的幂,实际容量会是最接近(大于)指定容量的2的幂,比如 new HashMap<>(19),比19大且最接近的2的幂是32,实际容量就是32。
    HashMap 在 put 的元素数量大于 Capacity * LoadFactor(默认16 * 0.75) 之后会进行扩容。
    JDK8在哈希碰撞的链表长度达到TREEIFY_THRESHOLD(默认8)后,会把该链表转变成树结构,提高了性能。
    JDK8在 resize 的时候,通过巧妙的设计,减少了 rehash 的性能消耗
  11. Map类集合只有HashMap允许键和值都为null,其它不允许
  12. ArrayList是order/unsort;HashMap是unorder/unsort;TreeSet是order/sort
  13. ThreadLocal要主动清理自定义的ThreadLocal变量,否则可能会发生ThreadLocal导致的串号问题
  14. 日期格式为yyyy/MM/dd的格式,其中yyyy表示当天所在的年,而YYYY表示当周所在的年

你可能感兴趣的:(编程总结)