Java基础 —— Java常用类
Java常用类:
- java.lang包:
- java.lang.Object类:
- hashcode()方法:返回一段整型的哈希码,代表地址。
- toString()方法:返回父类名+"@"+哈希码(一般用于覆盖)。
- equals()方法:返回"=="操作的布尔值(一般用于覆盖)。
- finalize()方法:用于对象的销毁(不受人为控制,由JVM调用,遵从垃圾回收机制)。
- clone()方法:用于对象之间的拷贝(深拷贝)。
- getClass()方法:返回对象的字节码文件对象(通常用于反射技术)。
- java.lang.String类:字符串已经创建,内容不可改变,只是个不断新建字符串的过程。
- concat()方法:字符串的连接操作。
- substring()方法:字符串的截取操作。
- trim()方法:去除首尾空格。
- length()方法:返回字符串长度。
- getBytes()方法:返回字符串对应的bytes数组,可以输入指定的字符集,用来解码。
- matches()方法:可以使用正则表达式,判断给定字符串是否符合正则表达式,返回布尔值。
- replace()方法:字符串替换。
- replaceAll()方法:正则替换。
- replaceFirst()方法:正则替换第一个匹配的字符串。
- split()方法:字符串以正则方式分割。
- java.lang.StringBuffer类:线程安全的字符串类,比String效率高一些。
- append(),insert(),delete(),length(),reverse(),replace(),substring()等方法
- java.lang.StringBuilder类:同上,但是是线程不安全的,比StringBuffer效率更高。
- java.lang.Math类:提供一些数学运算的方法,还有对以及对E和PI的常量封装。
- java.lang.Thread类:可以通过继承这个类并覆盖相应的方法来实现多线程编程。
- java.lang.System类:除了一些与Runtime类方法相同的方法,还有关键的标准输入输出流和错误流 in, out, err。
- java.lang.Runtime类:包括了一些虚拟机的方法,gc(), exit()等。
- java.lang核心包中包含所有基本数据类型的封装类:(Boolean, Byte, Short, Integer, Long, Character, Float, Double)
- java.lang.Object类:
- 2. java.util包:
- java.util.Random类:生成Random对象,然后调用next()方法来生成随机数。生成原理:线性同余法 --> Rn = (a*Rn-1 + b)%M [M为范围,R0为种子,初始值]。通常也使用Math.random()乘以一定倍数来生成一定范围的随机数。
- java.util.Collection接口:代表了所有集合的根接口,抽象了一些集合应该实现的add(), remove(), iterator(), size()等方法。该接口下有许多子接口,常用的有List, Set, Queue等子接口,分别代表有序集合,无序集合和队列。
- java.util.List接口:有序列表,允许元素有重复。包含ArrayList, LinkedList, Vector等实现类,添加了set()和get()方法。
- ArrayList类:效率最高,最常用的,但是是不同步的,线程不安全的,允许元素为Null。可以通过Collections.synchronizedList()方法将ArrayList对象线程安全的。
- LinkedList类:双向链表结构,有利于元素的插入和删除,但是遍历效率比较低,线程不安全。由于继承了队列的接口,所以还拥有许多方便的头尾操作的方法。
- Vector类:可增长的对象数组,只能存放对象。是线程安全的。
- java.util.Set接口:无序列表,不允许有重复,但是需要覆盖hashcode()方法和equals()方法,以判断元素是否相等。包含HashSet, LinkedHashSet, TreeSet等实现类。
- HashSet类:采用哈希表数据结构实现(实质上是HashMap实现的底层),有利于查找。不允许重复,无序,允许且只允许有一个Null元素,也是线程不安全的。
- LinkedHashSet类:结合了哈希表和链表,使得元素也可以有序排列。线程不安全。
- TreeSet类:有序的树结构来存储数据,可以利用TreeSet实现排序,但是需要在构造函数中传入比较器,实现compareTo()方法和equals()方法。线程不安全。
- java.util.Queue接口:包含ArrayDeque, DelayedQuene, PriorityQueue等实现类,不常用。
- java.util.List接口:有序列表,允许元素有重复。包含ArrayList, LinkedList, Vector等实现类,添加了set()和get()方法。
- java.util.Map接口:代表了键值对的根接口,定义了许多键值对操作相应的方法,如put(), get(), entrySet(), keySet(), values()等方法。
- HashMap类:利用哈希表实现的键值对类,无序,允许使用Null作为键和值,该类线程不同步。
- Hashtable类:不允许使用Null的键和值,无序,线程安全,但是效率稍低。Properties继承了Hashtable类。键对象必须实现hashcode()方法和equals()方法。存在初始容量和加载因子这两个影响因素,决定了rehash(增大表容量)操作的执行。
- TreeMap类:基于红黑树的NavigableMap实现。线程不同步,可以通过传入比较器,实现compareTo()方法和equals()方法来实现有序排列。可以直接调用headMap()方法和tailMap()方法来截取部分Map。
- java.util包中最重要的几个类就是集合相关的类。对于Collection,可以使用迭代器iterator来迭代遍历元素。对于Map,可以通过keySet()来得到Map的所有键Set,然后再通过get()方法得到对应的值;也可以通过entrySet()得到键和值之间的关系Set,然后再通过getKey()方法和getValue()方法得到键和值。对于Vector和Hashtable可以使用枚举接口Enumeration来迭代元素。所有的迭代过程中都不能修改集合中的值,否则会抛出
ConcurrentModificationException异常。
- 3. java.math包:
- BigInteger类和BigDecimal类,一般用于非常巨大的数据。对象之间不能使用运算符,只能调用方法来处理。
- 4. 国际化相关的类:
- java.util.Date类:默认构造函数表示当前的时间,含参数的构造函数表示从1970年1月1日到现在的毫秒数。
- 很多方法都已经过时,只剩下几个少数的方法,大部分方法都由Calendar类代替了:getTime(), before(), after(), compareTo()方法。
- java.util.Calendar类:抽象类,可以通过getInstance()方法获得该类的实例。
- add(), before(), after(), getTime(), get(), set()等方法,并使用该类中的常量作为参数。
- java.util.Locale类:表示时区,语言和地区。
- 该类中包含了许多代表国家的常量,还有一些可以获得系统相关信息的方法,如getDefault()方法可以获得虚拟机的默认语言环境等。
- java.text.DataFormat类:简易的日期抽象类,可以通过getDateInstance()方法得到该类的日期实例,也可以通过getTimeInstance()方法获取时间的实例,并可以通过传入的参数来选择合适的日期格式(类的常量),最后通过对象.format()方法来实现日期的输出。也可以通过parse()方法来解析字符串,获得Date对象。
- java.text.SimpleDateFormat类:继承了DateFormat类,使用构造函数获得实例,通过传入指定的日期格式来实现日期格式的全球化,最后也通过对象.format()方法来实现日期的输出。也可以通过parse()方法来解析字符串,获得Date对象。
- java.util.Date类:默认构造函数表示当前的时间,含参数的构造函数表示从1970年1月1日到现在的毫秒数。
Java基础 —— Java常用类的更多相关文章
- 【Java基础】常用类
常用类 字符串相关的类 String类:代表字符串,使用一对 "" 引起来表示. public final class String implements java.io.Seri ...
- java基础之常用类1
java基础 以下内容为本人的学习笔记,如需要转载,请声明原文链接 java常用类: 1.内部类 2.Object类 3.Object类常用方法 4.包装类 5.String类 6.BigDeci ...
- Java基础总结--常用类以及包的访问权限
-----Object---所有类的根类1.怎么得到的:通过对所有对象不断的向上抽取共性,具备所有对象的共性的东西2.常用的方法* equals(Object obj):比较两个对象的引用是否指向同一 ...
- Java基础之常用类
1.Collections类: (1)此类完全由在 collection 上进行操作或返回 collection 的静态方法组成. (2)静态方法摘要: static <T> boolea ...
- Java基础-Java中23种设计模式之常用的设计模式
Java基础-Java中23种设计模式之常用的设计模式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.设计模式分类 设计模式是针对特定场景给出的专家级的解决方案.总的来说设 ...
- java中的常用类(二)
java中的常用类(二) Math类 Math类的声明:public final class Math extends Object Math类是与数学计算有关的类,里面的方法都是静态方法,直接使用类 ...
- Java基础-DButils工具类(QueryRunner)详解
Java基础-DButils工具类(QueryRunner)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC ...
- Java基础之File类的使用
Java基础之File类的使用 1.File类的构造方法和常用方法 2.对File中listFile(FileNameFilter name)学习 3.与File文件类相关的实现 File类的构造方法 ...
- java基础---->java中正则表达式二
跟正则表达式相关的类有:Pattern.Matcher和String.今天我们就开始Java中正则表达式的学习. Pattern和Matcher的理解 一.正则表达式的使用方法 一般推荐使用的方式如下 ...
- Java基础-JAVA中常见的数据结构介绍
Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...
随机推荐
- ubuntu装机后的一些零散配置
-2 以root用户登录 su passwd root 可参考http://blog.csdn.net/happyteafriends/article/details/7518893 : 先设定一个r ...
- 每天一个小算法(Shell Sort3)
希尔算法自己编了一个,循环很多,很不美观,不过运行正确: c语言实现: #include <stdio.h> #include <stdlib.h> #define LEN 2 ...
- [CFGym101028] 2016 Al-Baath University Training Camp Contest-1
比赛链接:http://codeforces.com/gym/101028/ 由于实习,几乎没有时间刷题了.今天下午得空,断断续续做了这一套题,挺简单的. A.读完题就能出结果. /* ━━━━━┒ギ ...
- Hadoop集群(第9期)_MapReduce初级案例
1.数据去重 "数据去重"主要是为了掌握和利用并行化思想来对数据进行有意义的筛选.统计大数据集上的数据种类个数.从网站日志中计算访问地等这些看似庞杂的任务都会涉及数据去重.下面就 ...
- 无锁编程(四) - CAS与ABA问题
CAS 一般采用原子级的read-modify-write原语来实现Lock-Free算法,其中LL和SC是Lock-Free理论研究领域的理想原语,但实现这些原语需要CPU指令的支持,非常遗憾的是目 ...
- jQuery mouseover与mouseenter的区别
在我们的页面中经常会用到mouseover与mouseout事件来给页面添加更好的渲染效果,但如果触发mouseover事件的元素有子元素的话,会造成闪烁的效果,看着很不舒服,这是因为mouseove ...
- Qt环境搭建(Qt Creator)
简述 上一节中介绍了如何进行Qt和Visual Studio的下载安装,随后演示了如何将Qt集成到Visual Studio中,并完成了我们第一个Qt小程序-Hello World.下面主要讲解如何利 ...
- Strom Topology执行分析:worker数,Bolt实例数,executor数,task数
在创建Storm的Topology时,我们通常使用如下代码:builder.setBolt("cpp", new CppBolt(), 3).setNumTasks(5).none ...
- 指针数组vs数组指针 指针函数vs函数指针
在分辨这些重要的概念时,我们先回顾一下前面所讲的C之三值合一,由于三个值所求出的地址是相同的,所以经常有传言说他们都是首元素的地址.这种说法是不正确的.为什么说它是不正确的呢? 首先定义一个指针,将三 ...
- [CTO]创业团队CTO应具备的素质
原文地址:http://www.cyzone.cn/a/20131001/245862_2.html [导读]CTO要让技术团队明白,公司不是请你来搞纯技术研发的,个别人可以纯技术导向,但整个团队的目 ...