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进行回收
*强(所指对象不会被系统回收)》软(基于内存进行存活、网页、图片缓存)》弱(只要发现就回收)》虚(跟踪垃圾回收过程)
Java组件介绍的更多相关文章
- 开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)
在这个.NET组件的介绍系列中,受到了很多园友的支持,一些园友(如:数据之巅. [秦时明月]等等这些大神 )也给我提出了对应的建议,我正在努力去改正,有不足之处还望大家多多包涵.在传播一些简单的知识的 ...
- 最好的.NET开源免费ZIP库DotNetZip(.NET组件介绍之三)
在项目开发中,除了对数据的展示更多的就是对文件的相关操作,例如文件的创建和删除,以及文件的压缩和解压.文件压缩的好处有很多,主要就是在文件传输的方面,文件压缩的好处就不需要赘述,因为无论是开发者,还是 ...
- Android四大基本组件介绍与生命周期
Android四大基本组件介绍与生命周期 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器 ...
- Android下HelloWorld项目的R.java文件介绍
R.java文件介绍 HelloWorld工程中的R.java文件 package com.android.hellworld; public final class R { public s ...
- Android应用的基本组件介绍和签名Android应用程序
一.Android应用的基本组件介绍 Activity和View :Activity只能通过setContentView(View)来显示指定的组件.View组件是所有UI控件.容器控件的基类,Vi ...
- Android官方架构组件介绍之LifeCycle
Google 2017 I/O开发者大会于近日召开,在开发者大会上谷歌除了发布了Android O等一些新产品之外,也对Android代码的架构做出了一个官方的回应. Google 2017 I/O开 ...
- Tomcat 组件介绍
用了好长时间tomcat,但是其实自己只是反复听了这个名字,对Tomcat并不了解 1.Tomcat组件 Catalina Coyote Jasper Cluster 2.组件介绍 Tomcat Co ...
- JMeter主要组件介绍
JMeter主要组件介绍 转自https://www.cnblogs.com/linbo3168/p/6023962.html 作者:linbo.yang 1.测试计划(Test Plan)是使用 ...
- 【java】浅析java组件中的布局管理器
这篇博文笔者介绍一下java组件中,常用的布局管理器.java组件中的布局方式有好几十种,所有的这些布局管理器都实现了java.awt.LayoutManager接口.接下来笔者介绍一下常用的5种布局 ...
随机推荐
- hive的事物性 transaction manager
create table lk3 (id string,nname string,grade int,goldUser int); insert into lk3 values (,, ), (,, ...
- web 9个令人震惊的WebGL示例
20个使用WebGL和Three.js实现的网页场景 https://www.open-open.com/news/view/9d8136 20个使用WebGL和Three.js实现的网页场景 htt ...
- 编程中易犯错误汇总:一个综合案例.md
# 11编程中易犯错误汇总:一个综合案例 在上一篇文章中,我们学习了如何区分好的代码与坏的代码,如何写好代码.所谓光说不练假把式,在这篇文章中,我们就做一件事——一起来写代码.首先,我会先列出问题,然 ...
- B/S文件夹上传下载组件
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 先说下要求: PC端全平台支持,要求支持Windows,Mac,Linux 支持所 ...
- 08.青蛙跳台阶 Java
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 思路 暴力枚举(自顶向下递归): 若台阶数小于等于0,返回0: 若台阶 ...
- LeetCode 470. 用 Rand7() 实现 Rand10()(Implement Rand10() Using Rand7())
题目描述 已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数. 不要使用系统的 Math.random() 方法. 示 ...
- 石川es6课程---7、数组
石川es6课程---7.数组 一.总结 一句话总结: ^ 主要就map(映射:一个对一个),reduce(汇总:一堆出来一个),filter 过滤器,forEach 循环(迭代) 四个方法 ^ 使用 ...
- [SQL 高级查询运算符的用法 UNION (ALL),EXCEPT(ALL),INTERSECT(ALL) ]
今天看到 三个查询运算符,给大家分享分享 为此我建立了两张表分别为 Articles 和 newArticles 我建立的时候,只建立了一张表 Articles ,表 newArticles 是 ...
- leetcode73矩阵置零
https://leetcode-cn.com/problems/set-matrix-zeroes/ 解答: 两种方法时间复杂度都为O(mn) O(m+n)空间方法: 用两个容器储存为0的行和列 c ...
- C#产生随机验证码的代码
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...