JavaSE 常用类与其方法
1.基本数据类型比较用:==
2.引用数据类型比较用:equals方法
如果引用数据类型使用==比较的话,比较的是地址值
toString类
对象调用toString()需要重写本方法: 在封装类中,否则输出的是地址
equals方法
'对象' 调用equals()需要重写本方法: 在封装类中重写,否则进行比较时比较的是地址
String类
String有一个切割split,按一个字符串进行切割,返回切割之后的字符串数组
String[] split(String regex)
public int length () :返回此字符串的长度。
public String concat (String str) :将指定的字符串连接到该字符串的末尾。
public char charAt (int index) :返回指定索引处的 char值。
public int indexOf (String str) :返回指定子字符串第一次出现在该字符串内的索引。
public int indexOf(String str, int fromIndex) :返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
public String substring (int beginIndex) :返回一个子字符串,从beginIndex开始截取字符串到字符串结尾。
public String substring (int beginIndex, int endIndex) :返回一个子字符串,从beginIndex到endIndex截取字符串。含beginIndex,不含endIndex。
public String replace (CharSequence target, CharSequence replacement) :将与target匹配的字符串使用replacement字符串替换。
StringBuilder类
String Builder在内存中相当于一个缓冲容器,会随着内存的关闭而消失,在地址内存中进行字符拼接时 不创建所添加字符的内存地址 节省了内存空间
StringBuilder() 构造一个没有字符的字符串构建器,初始容量为16个字符。
StringBuilder(String str) 构造一个初始化为指定字符串内容的字符串构建器
StringBuilder sb = new StringBuilder();
public StringBuilder append(任意类型):添加数据,并返回对象本身(支持链式调用)。
public StringBuilder reverse():字符序列进行反转
public String toString():返回此序列中数据的字符串表示形式。 转为String
append方法弊端:它可以拼接任意类型,但是拼接完毕,都变成字符串
Arrays类
public static String toString(int[] a):把数组转成字符串
public static void sort(int[] a):对数组进行升序排序
包装类与String类互相转换
int 类型直接拼接字符串可转为String类型
int->String
1+""
String.valueOf()方法可以将基本类型数据转为String类型
String.valueOf(数据);
包装类.ParseXXX方法可以将基本类型转为String类型 注意基本类型必须转为相对应的包装类,以下是int转String例子
int->String(重点)
Integer.parseInt("100")
Date类
在java,有一个java.util.Date,表示日期时间的,精确到毫秒值
Date类的构造方法:
Date() 无参构造方法:以当前的系统时间来创建出一个Date对象
Date(long date):根据指定的毫秒值,创建出一个Date对象。 指定的毫秒值,从1970年1月1日(计算机的基准时间)起经过的毫秒值
常用方法:
public long getTime() 把日期对象转换成对应的时间毫秒值。
void setTime(long time) 将此 Date对象设置为1970年1月1日00:00:00 起经过的毫秒值
//请打印出1970年1月2号的时间的对象 Date date2 = new Date(24 * 60 * 60 * 1000); System.out.println(date2); //获取当前时间的毫秒值
Date date = new Date();
System.out.println(date.getTime()); //将date,改成1970年1,月1号 date.setTime(0); System.out.println(date);
SimpleDateFormat类
可以使用DateFormat类,但是它是一个抽象类,所以我们要用它的子类 SimpleDateFormat构造方法
SimpleDateFormat(String pattern) 使用给定模式构建一个 SimpleDateFormat ,默认日期格式符号为默认的 FORMAT区域设置。
参数pattern就是模式
字母模式:y表示面 M表示月 d表示日 H表示时 m表示分 s表示秒 S表示毫秒
中国式时间: 2019年3月11日 11点 09分 33秒 333毫秒
代码的字母模式: yyyy年MM月dd日 HH点mm分ss秒 SSS毫秒
成员方法 :
格式化(日期 -> 文本): Date -- String
public final String format(Date date)
解析(文本 -> 日期): String -- Date
public Date parse(String source)
//根据系统时间创建Date对象
Date date = new Date();
System.out.println(date); //date不好看,格式化为中国式时间
//SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH点mm分ss秒 SSS毫秒");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM-dd HH:mm:ss");
//将date格式化为String
String time = sdf.format(date);
System.out.println(time); //注意,我们一般人不会记忆毫秒值,能不能根据具体的时间(2019-03-11 11:16:02)解析成毫秒值
//ParseException: Unparseable date: "2018年03-11 11:18:57",注意,模式必须与之前一致
Date date1 = sdf.parse("2018年03-11 11:18:57");
System.out.println(date1);
System.out.println(date1.getTime());
Calendar类
Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,返回子类对象
根据Calendar类的API文档,常用方法有:
- public int get(int field):返回给定日历字段的值。
- public void set(int field, int value):将给定的日历字段设置为给定值。
- public abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
- public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
Calendar类中提供很多成员常量,代表给定的日历字段:
字段值 |
含义 |
YEAR |
年 |
MONTH |
月(从0开始,可以+1使用) |
DAY_OF_MONTH |
月中的天(几号) |
HOUR |
时(12小时制) |
HOUR_OF_DAY |
时(24小时制) |
MINUTE |
分 |
SECOND |
秒 |
DAY_OF_WEEK |
周中的天(周几,周日为1,可以-1使用) |
import java.util.Calendar; public class CalendarUtil {
public static void main(String[] args) {
//get方法
// 创建Calendar对象
Calendar cal = Calendar.getInstance();
// 设置年
int year = cal.get(Calendar.YEAR);
// 设置月
int month = cal.get(Calendar.MONTH) + 1;
// 设置日
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
//set方法
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2020);
//add方法
cal.add(Calendar.DAY_OF_MONTH, 2); // 加2天
cal.add(Calendar.YEAR, -3); // 减3年
//getTime方法
Date date = cal.getTime();
}
}
System类
- public static long currentTimeMillis():返回以毫秒为单位的当前时间。
- public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将数组中指定的数据拷贝到另一个数组中。
currentTimeMillis方法
import java.util.Date; public class SystemDemo {
public static void main(String[] args) {
//获取当前时间毫秒值
System.out.println(System.currentTimeMillis()); //
}
}
arraycopy方法
参数序号 |
参数名称 |
参数类型 |
参数含义 |
1 |
src |
Object |
源数组 |
2 |
srcPos |
int |
源数组索引起始位置 |
3 |
dest |
Object |
目标数组 |
4 |
destPos |
int |
目标数组索引起始位置 |
5 |
length |
int |
复制元素个数 |
import java.util.Arrays; public class Demo11SystemArrayCopy {
public static void main(String[] args) {
int[] src = new int[]{1,2,3,4,5};
int[] dest = new int[]{6,7,8,9,10};
System.arraycopy( src, 0, dest, 0, 3);
/*代码运行后:两个数组中的元素发生了变化
src数组元素[1,2,3,4,5]
dest数组元素[1,2,3,9,10]
*/
}
}
Random类
构造方法:
Random() 创建一个新的随机数生成器。
成员方法 :
int nextInt() 从这个随机数生成器的序列返回下一个伪随机数,均匀分布的 int值。
int nextInt(int bound) ,均匀分布 返回值介于0(含)和指定值bound(不包括),从该随机数生成器的序列绘制
Random random = new Random();
/*for (int i = 0; i < 10; i++) {
System.out.println(random.nextInt());
}*/ /*for (int i = 0; i < 10; i++) {
int j = random.nextInt(10);
System.out.println(j);
}*/ //来一个随机值,这个数据的范围必须是1~100,33~66 54~78
//random.nextInt(100);//0~99 +1 -> 1~100
/*33~66 - 33 -> 0~33
for (int i = 0; i < 10; i++) {
System.out.println(random.nextInt(34) + 33);
}*/ //54~78 - 54 -> 0~24
for (int i = 0; i < 10; i++) {
System.out.println(random.nextInt(25) + 54);
}
比较器Comparable<T> 和 Comparator<T>
java.lang Comparable<T> : 该接口对实现它的每个类的对象强加一个整体排序。 这个排序被称为类的自然排序 ,类的compareTo方法被称为其自然比较方法 。
java中规定 某个类只要实现了Comparable 接口之后,才能通过重写compareTo()具备比较的功能。
抽象方法:
int compareTo(T o) 将此对象(this)与 指定( o )的对象进行比较以进行排序。
this > o : 返回正数
this = o : 返回0
this < o : 返回负数
' this - o : 表示按照升序排序。 o - this : 表示按照降序排序。
' 小结 : 如果Java中的对象需要比较大小,那么对象所属的类要实现Comparable接口,然后重写compareTo(T o)实现比较的方式。
public class Student implements Comparable<Student>{
....
@Override
public int compareTo(Student o) {
return this.age-o.age;//升序
}
}
java.util Comparator<T> : 比较器接口。
抽象方法:
int compare( T o1, T o2 ) 比较其两个参数的大小顺序。
比较器接口的使用场景:
1. Arrays.sort() : static <T> void sort( T[] a, Comparator c)
2. Collections 集合工具类 : void sort(List<T> list, Comparator<> c) 根据指定的比较器给集合中的元素进行排序。
3. TreeSet 集合 : 构造方法 TreeSet( Comparator c )
补充 : 在后面我还会介绍JDK1.8 的新特性(Lambda 函数式代码优化) 进行优化此类接口
ArrayList<String> list = new ArrayList<String>();
list.add("cba");
list.add("aba");
list.add("sba");
list.add("nba");
//排序方法 按照第一个单词的降序
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
int rs = o2.getCj() - o1.getCj();
return rs==0 ? o1.getAge()-o2.getAge():rs;
// return o2.charAt(0) - o1.charAt(0);
}
});
System.out.println(list);
Comparable 和 Comparator 区别:
Comparable : 对实现了它的类进行整体排序。
Comparator : 对传递了此比较器接口的集合或数组中的元素进行指定方式的排序。
JavaSE 常用类与其方法的更多相关文章
- WebView全面学习(一)--常用类和方法
WebView全面学习(一)--常用类和方法 WebView本质上是一个View,他基于webkit引擎来展示web页面 在Android不同的版本webkit内核有所区别,从Android版本上看, ...
- Java && Python 算法面试常用类以及方法总结
数据结构 逻辑结构上: 包括集合,线性结构,非线性结构. 存储结构: 顺序存储,链式存储,索引存储,散列存储. Java 常见数据结构 大专栏 Java && Python 算法面试 ...
- Java之常用类及方法
下面我们介绍Java类库所提供的常用类及类的常用方法 一.java.lang.String 1. String类常用的构造函数 public String(String original) 使用串对象 ...
- java 随机数产生 常用类及方法
1.Random类 Random():创建一个新的随机数生成器. new一个Random类的对象: Random r = new Random(); 利用该对象产生一个随机整数:常用nextInt,不 ...
- JavaSE常用类之File类
File类 只用于表示文件或目录的信息,不能对文件内容进行访问. java.io.File类∶代表文件和目录.在开发中,读取文件.生成文件.删除文件.修改文件的属性时经常会用到本类. File类不能访 ...
- ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码
实用类:UtilityClass 包含如下方法 判断对象是否为空或NULL,如果是空或NULL返回true,否则返回false 验证手机号是否正确 13,15,18 验证邮箱 验证网址 MD5加密,返 ...
- JavaSE常用类之Object类
1. hashCode方法 代码: package NeiBuLei; public class hashCode { public static void main(String[] args) { ...
- JavaSE学习笔记(8)---常用类
JavaSE学习笔记(8)---常用类 1.Object类 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类 ...
- 几种常用的JS类定义方法
几种常用的JS类定义方法 // 方法1 对象直接量var obj1 = { v1 : "", get_v1 : function() { return ...
随机推荐
- 背水一战 Windows 10 (90) - 文件系统: 获取 Package 中的文件, 可移动存储中的文件操作, “库”管理
[源码下载] 背水一战 Windows 10 (90) - 文件系统: 获取 Package 中的文件, 可移动存储中的文件操作, “库”管理 作者:webabcd 介绍背水一战 Windows 10 ...
- 背水一战 Windows 10 (78) - 自定义控件: 基础知识, 依赖属性, 附加属性
[源码下载] 背水一战 Windows 10 (78) - 自定义控件: 基础知识, 依赖属性, 附加属性 作者:webabcd 介绍背水一战 Windows 10 之 控件(自定义控件) 自定义控件 ...
- Java 命令行启动时指定配置文件目录
java -jar -Xbootclasspath/a:/home/tms/conf /home/tms/bin/S17-tms.jar 先指定配置文件目录: 再指定jar包路径: 运行clas ...
- 关于文件命名,你必须要知道的(浏览器报错:net::ERR_BLOCKED_BY_CLIENT)
坑爹的,今天在写完页面,用各个浏览器测试的时候,火狐.谷歌都是正常的,QQ浏览器出幺蛾子了,在使用兼容模式的时候页面正常,使用急速模式的时候部分页面正常,点击跳转到其他页面的时候就出错了,打开控制台一 ...
- Spark基础脚本入门实践1
1.创建数据框架 Creating DataFrames val df = spark.read.json("file:///usr/local/spark/examples/src/mai ...
- tomcat容器是如何创建servlet类实例?用到了什么原理?
当容器启动时,会读取在webapps目录下所有的web应用中的web.xml文件,然后对 xml文件进行解析,并读取servlet注册信息.然后,将每个应用中注册的servlet类都进行加载,并通过 ...
- ubuntu18.04 出现 Command 'ifconfig' not found 问题的解决办法
我们在虚拟主机中查看ip地址需要输入ifconfig,但是报以下错误: 系统提示我们安装 net-tools,当我们输入以下命令,即可安装完成. sudo apt-get install net-to ...
- LoadRunner通过SiteScope监控MySQL的性能
步骤: 安装 SiteScope 下载 Java 版的MySQL 驱动, 下载地址:http://www.mysql.com/downloads/connector/j/ 下载成功后,把解压缩的 my ...
- 微信开放平台创建android应用时怎么获取应用签名
之前微信开放平台中申请创建应用,没有整理,过了好久,又重新百度,今天索性整理了,以供童鞋们备用. 1.微信开发平台注册申请成开发者账号,就此略过 2.在管理中心选择创建移动应用.按照严格要求填写.上传 ...
- jsp页面简单的验证码实现
前段时间赶着结束毕业设计任务,现在完成了.回来补一下设计毕业设计的过程中遇到的问题和解决方案. 为了使小系统更有模有样,这里尝试在登录页面实现验证码功能.现描述一下我的解决方案. 首先看一下实现后的界 ...