1.String

string对象的不变性、被final关键字修饰。

使用charat方法替代startwith/endwith方法(提高性能)

使用buffer(方法同步,性能较差)和builder(同步,性能较好)来替换string

equals(不可以比较基本数据类型,重写方法是为了比较对象的值是否相同,否则则比较对象的引用地址)

==(基本类型比较值,引用类型比较地址)

equals方法为true的两个对象一定相等,hashcode方法相同的两个对象不一定相同

2.list

* 1.ArrayList(数组实现、线程不同步.初始大小为10,每次扩容为1.5倍)
* 2.Linkedlist(循环双向链表:header+link1+link2+header)
* 3.vector(数组实现、线程同步)

 3.map

* 1.hashtable (线程同步、不允许key或value使用null值)
* 2.hashmap (线程不同步、数组实现、初始大小16、负载因子0.75、数据存放无序)
* 3.linkedhashmap(数据存放有序)
* 4.treemap(实现sortedMap接口对元素进行排序、基于红黑树实现)

4.set(元素不重复、基于对map的封装)

* 1.hashset
* 2.linkedHashSet
* 3.TreeSet

集合优化
* 1.for循环中重复的代码可以提取到外部。例如list.size()
* 2.省略相同操作
* 3.调用元素避免调用方法
 RandomAccess接口:实现该接口的对象即支持快速随机访问的对象
* (基于数组的list实现该接口,可直接使用get方法获取元素、性能较好
* 基于链表的未实现,需通过迭代器进行元素迭代、性能较差)

5. Java NIO:(写操作类似于向水瓶中蓄水,读操作类似于从水瓶中取水。渠道等同于吸管的作用)

*1.打开渠道,获取buffer

* 2.读取文件,获取channel
* 3.给buffer分配大小
* 4.channel数据读取到buffer
* 5.关闭channel
*scatter(分散)/gather(聚集)— 一个channel对应多个gather:传输数据分散处理。以数组形式存储
* selecter:一个线程管理多个channel

tips:

* 1.try/catch移到循环体之外
* 2.位运算替代乘除法
* 3.提取重复表达式
* 4.对于重量级对象,使用clone()替代new
* 5.使用静态方法替代实例方法

Java  引用

*引入引用的目的:人为控制对象生命周期、方便JVM进行回收
*强(所指对象不会被系统回收)》软(基于内存进行存活、网页、图片缓存)》弱(只要发现就回收)》虚(跟踪垃圾回收过程)

最新文章

  1. C中的fseek函数使用
  2. 解决ios开发中不合法的网络请求地址
  3. Nginx服务器
  4. MIPI D-PHY 总结
  5. bootstrap-js(六)弹出框
  6. Codeforces Round #193 (Div. 2)
  7. php图片上传服务器
  8. Postgresql查询最近12个月、最近30天数据
  9. 网站开发进阶(二十)JS中window.alert()与alert()的区别
  10. arcgis api 3.x for js 实现克里金插值渲染图不依赖 GP 服务(附源码下载)
  11. Unable to build: the file dx.jar was not loaded from the SDK folder
  12. Mybatis【配置文件】就是这么简单
  13. easyui实现背景图片半透明状态,悬浮在大背景之上
  14. vue的.vue文件是怎么run起来的(vue-loader)
  15. noip2017颓废记
  16. 转载自知乎大神---this 的值到底是什么?一次说清楚
  17. SQL数据插入字符串时转义函数
  18. 《Real Time Rendering》第四章 图形变换
  19. Android 菜单键和返回键互换
  20. go 学习笔记(2) --变量、常量、iota、数组

热门文章

  1. docker run always
  2. WPF界面开发:DevExpress WPF在GridControl中固定行时处理时刻
  3. H5微信分享相关规范
  4. java服务宕机原因查询
  5. 主流包管理工具npm、yarn、cnpm、pnpm之间的区别与联系——原理篇
  6. luoguP1160 队列安排 x
  7. 使用Python画一朵玫瑰花
  8. Linux下SHA256校验
  9. linux端口释放
  10. Java-UncaughtExceptionHandler 捕获线程异常