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

Java组件介绍的更多相关文章

  1. 开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)

    在这个.NET组件的介绍系列中,受到了很多园友的支持,一些园友(如:数据之巅. [秦时明月]等等这些大神 )也给我提出了对应的建议,我正在努力去改正,有不足之处还望大家多多包涵.在传播一些简单的知识的 ...

  2. 最好的.NET开源免费ZIP库DotNetZip(.NET组件介绍之三)

    在项目开发中,除了对数据的展示更多的就是对文件的相关操作,例如文件的创建和删除,以及文件的压缩和解压.文件压缩的好处有很多,主要就是在文件传输的方面,文件压缩的好处就不需要赘述,因为无论是开发者,还是 ...

  3. Android四大基本组件介绍与生命周期

    Android四大基本组件介绍与生命周期 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器 ...

  4. Android下HelloWorld项目的R.java文件介绍

    R.java文件介绍 HelloWorld工程中的R.java文件 package com.android.hellworld; public final class R {     public s ...

  5. Android应用的基本组件介绍和签名Android应用程序

    一.Android应用的基本组件介绍  Activity和View :Activity只能通过setContentView(View)来显示指定的组件.View组件是所有UI控件.容器控件的基类,Vi ...

  6. Android官方架构组件介绍之LifeCycle

    Google 2017 I/O开发者大会于近日召开,在开发者大会上谷歌除了发布了Android O等一些新产品之外,也对Android代码的架构做出了一个官方的回应. Google 2017 I/O开 ...

  7. Tomcat 组件介绍

    用了好长时间tomcat,但是其实自己只是反复听了这个名字,对Tomcat并不了解 1.Tomcat组件 Catalina Coyote Jasper Cluster 2.组件介绍 Tomcat Co ...

  8. JMeter主要组件介绍

    JMeter主要组件介绍   转自https://www.cnblogs.com/linbo3168/p/6023962.html 作者:linbo.yang 1.测试计划(Test Plan)是使用 ...

  9. 【java】浅析java组件中的布局管理器

    这篇博文笔者介绍一下java组件中,常用的布局管理器.java组件中的布局方式有好几十种,所有的这些布局管理器都实现了java.awt.LayoutManager接口.接下来笔者介绍一下常用的5种布局 ...

随机推荐

  1. k8s认证与授权

    认证用于身份鉴别,而授权则实现权限分派.k8s以插件化的方式实现了这两种功能,且分别存在多种可用的插件.另外,它还支持准入控制机制,用于补充授权机制以实现更精细的访问控制功能. 一.访问控制概述 ap ...

  2. 根据传入url请求,返回json字符串

    /** * 根据传入url请求,返回json字符串 * @param url * @return * @throws UnsupportedEncodingException */ public st ...

  3. HDU-4513-完美队形2(Manacher变形)

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4513 题意: 吉哥又想出了一个新的完美队形游戏! 假设有n个人按顺序站在他的面前,他们的身高分别是h[1 ...

  4. Mybatis Generator-自动化生成代码步骤

    链接:https://blog.csdn.net/guo_xl/article/details/86004068 文档:http://mybatis.org/generator/configrefer ...

  5. 【计算机-虚拟wifi】Win7虚拟wifi设置

    虚拟Wifi,可以让电脑变成无线路由器,实现共享上网.   设置步骤 1.以管理员身份运行:cmd.exe   2.启动并设置虚拟网卡:   命令窗口中输入:  netsh wlan set host ...

  6. Visual Studio 编译Winform程序不生成.vshost.exe和.pdb文件的方法

    问题:使用Visual Studio编译工程时,默认设置下,即使选择了「Release」时也会生成扩展名为「.vshost.exe」和「.pdb」的文件. 先解释一下各个文件的作用: .pdb文件: ...

  7. word粘贴图片到ekitor

    最近公司做项目需要实现一个功能,在网页富文本编辑器中实现粘贴Word图文的功能. 我们在网站中使用的Web编辑器比较多,都是根据用户需求来选择的.目前还没有固定哪一个编辑器 有时候用的是UEditor ...

  8. vim8.1安装

    win下直接就有gvim8.1.exe安装.但linux下直接从apt-get里面下载的vim都是远古版本,需要手动编译安装. 首先,下载vim源代码 git clone https://github ...

  9. A. Sea Battle

    A. Sea Battle time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  10. hadoop+zookeeper+hbase分布式安装

    前期服务器配置 修改/etc/hosts文件,添加以下信息(如果正常IP) 119.23.163.113 master 120.79.116.198 slave1 120.79.116.23 slav ...