zoukankan      html  css  js  c++  java
  • Java组件介绍

    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进行回收
    *强(所指对象不会被系统回收)》软(基于内存进行存活、网页、图片缓存)》弱(只要发现就回收)》虚(跟踪垃圾回收过程)

  • 相关阅读:
    cmake Found package configuration file but it set OpenCV_FOUND to FALSE
    pthread库"timespec"结构体重定义解决
    【Windows10】运行软件后,窗口不显示的解决办法
    Windows下Cmake生成动态库install命令失败、导入库概念
    【转载】多尺度增强算法Retinex算法(MSRCR)的原理、实现及应用
    【转载】Ubuntu 和 Windows 之间进行远程访问和文件互传
    博客园Markdown编辑器
    合并两个有序数组(C++)
    从协方差矩阵的估算领会MATLAB矩阵编程思维
    常见排序算法的性能对比
  • 原文地址:https://www.cnblogs.com/bkyf/p/11387084.html
Copyright © 2011-2022 走看看