文章目录
- 前言
- 一、Object类
- 二、String和StringBuffer类
- 三、Math类
- 四、Date类、Calendar类、SimpleDateFormat类
前言
java类有很多,但我们只需要记住其中的常用类即可,代表着经常会被用到的事件或者某项功能。
一、Object类
所有类的父类皆为Object类,一个类在声明时没有使用extends关键字为其显示指定父类,则该类默认继承Object类。
Object类的三大常用方法
方法名 | 返回类型 | 说明 |
equals(Object obj) | boolean | 判断指定对象与该对象是否相等 |
hashCode() | int | 返回该对象的哈希码值(内存地址值) |
toString | String | 使用字符串表示该对象信息 |
Object类的toString()方法默认返回“运行时类名+@+十六进制的hashCode值”格式的字符串
com.test.Book@52e922
实例:
public class FuLei {
public void test(){
Bank bank =new Bank();
boolean flag = this.equals(bank);
System.out.println("eauals返回值"+flag);
String toResult = this.toString();
System.out.println("toString()返回值"+toResult);
int hashCode =this.hashCode();
System.out.println("hashCode()返回值"+hashCode);
}
public static void main(String[] args){
FuLei fuLei = new FuLei();
fuLei.test();
}
}
二、String类和StringBuffer类
String类是不可变类,被final修饰,一个String对象所包含的字符串内容永远不会被改变;
StringBuffer类是可变类,一个StringBuffer对象所包含的字符串内容可以被添加或修改。
String类构造方法
构造方法 | 说明 |
String() | 创建一个内容为空的字符串 |
String(String value) | 初始化一个新创建的String对象,使其表示一个与参数相同的字符序列 |
String(byte[]bytes,Charset charset) | 使用指定的字符编码,将指定的byte[]数组构造成一个字符串 |
String(char[] char) | 将制定的char[]数组构造成一个字符串 |
String类常用方法
方法名 | 说明 |
char charAt(index) | 获取指定位置的字符 |
String concat(String str) | 拼接 |
Boolean equals(Object object) | 比较内容而不是地址值 |
byte[] getBytes() | 转换 |
int indexOf(String str) | 找出首次出现的位置 |
int length() | 长度 |
String replace(char oldChar,char newChar) | 替换 |
boolean endsWith(String suffix) | 判断 |
String substring(int beginIndex,int endIndex) | 获取子字符串 |
char[] toCharArray() | 转换 |
String toUpperCase() | 转换成大写 |
1.演示String类常用方法的使用
代码如下(示例):
public class ZiFu {
public static void main(String[] args){
String value ="Asdfdfs";
System.out.println(value);
String value1 = value.concat("love");
System.out.println(value1);
int index = value.indexOf("A");
System.out.println(index);
int lengh = value.length();
System.out.println(lengh);
boolean flag = "hello String".equals(value);
System.out.println(flag);
boolean tag =value.endsWith(".java");
System.out.println(tag);
String newValue = value.toUpperCase();
System.out.println(newValue);
String val = value.substring(0,2);
System.out.println(val);
String[] str =value.split("-");
for(String data:str){
System.out.println(data);
}
byte[] bytes = value.getBytes();
for(byte date : bytes){
System.out.println(date);
}
}
}
注意:
我们可以观察到第三行为0,说明concat方法不能被使用,同时证实了String是一个不可变类
再如类似于替代的方法同样不可行
使用new String(“hello")在创建对象时,首先在堆内存中创建一个”hello"对象,然后再查找常量池中是否存在“hello”字符串对象,如果存在,则不会在常量池中再创建一个新的“hello"对象,否则会创建一个新的”hello"对象。
StringBuffer类常用方法
方法名 | 说明 |
StringBuffer append(String str) | 追加 |
StringBuffer insert(intoffset,String str) | 插入指定位置 |
StringBuffer reverse() | 反转 |
void setCharAt(int index,char ch) | 设置为ch |
2.演示StringBuffer类常用方法的使用
代码如下(示例):
public class ZiFuChuan {
public static void main(String[] args){
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("Inteligence");
System.out.println(stringBuffer);
stringBuffer.insert(0,"Artifical");
System.out.println(stringBuffer);
stringBuffer.replace(10,11,"-");
System.out.println(stringBuffer);
stringBuffer.reverse();
System.out.println(stringBuffer);
String str = "java";
String newStr = str+"Android";
}
}
三、Math类
Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作。
public static double abs(double num):获取绝对值
public static double ceil(double num):向上取整
public static double floor(double num):向下取整
public static long round(double num):四舍五入
演示Math类方法的使用
public class ShuXue {
public static void main(String[] args) {
System.out.println("-3的絕對值"+Math.abs(-3));
System.out.println("向上取整"+Math.ceil(3.3));
System.out.println("向下取整"+Math.floor(3.3));
System.out.println("四舍五入"+Math.round(4.5));
System.out.println("27的算術立方根的值"+Math.cbrt(27));
System.out.println("4的平方根的值"+Math.sqrt(4));
System.out.println("3的2次方的值"+Math.pow(3,2));
System.out.println("8和10兩個數的最大值"+Math.max(10,8));
//返回一個隨機數,該值的範圍在0.0~1.0之間
System.out.println("產生的隨機數"+Math.random());
System.out.println("弧度為π/6的正弦值"+Math.sin(Math.PI/6));
}
}
四、日期处理类
Date类
Date类处理日期和时间
构造方法 | 说明 |
Date() | 创建一个代表当前日期的对象 |
Date(long time) | 根据指定long类型整数生成一个Date对象 |
Date(long time)代表创建的是在GMT1970年1月1日00:00:00之间的时间,以毫秒作为计算单位
演示Date类构造方法的使用
import java.util.Date;
public class Time {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date);
Date newDate = new Date(1000*60*60*24*20);
System.out.println("20天后的時間為"+newDate);
}
}
Calendar类
- 主要解决Date类设计上的一些问题,所以java提供了Calendar类更好的处理日期和事件
- Calendar类是一个抽象类,所以不能实例化Calendar对象,但是Calendar类提供了静态的方法getInstance()以获得Calendar对象
- Calendar与Date类可以相互转换
通过getInstance()方法创建Calendar类对象
Calendar calendar = Calendar.getInstance();
从Calendar中获取Date对象
Date date = calendar.getTime();
将Date对象赋给对应的Calendar对象
calendar.setTime(new Date());
使用Calendar类实现对日期的操作
public class Time {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date);
Date newDate = new Date(1000*60*60*24*20);
System.out.println("20天后的時間為"+newDate);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
System.out.println("年:"+calendar.get(Calendar.YEAR)+"年");
System.out.println("月:"+(calendar.get(Calendar.MONTH)+1)+"月");
System.out.println("日:"+calendar.get(Calendar.DATE)+"日");
System.out.println("星期:"+(calendar.get(Calendar.DAY_OF_WEEK)-1)+"星期");
System.out.println("本年的第:"+calendar.get(Calendar.DAY_OF_YEAR)+"天");
}
}
SimpleDateFormat类
SimpleDateFormat类用于日期时间的格式化与解析各种格式的日期字符串
该类的作用就在于构造器,而在创建该类时我们需要传入一个模板字符串
日期格式化模板标记
标记 | 书写规范 |
y | yyyy |
M | MM |
d | dd |
H | HH |
m | mm |
s | ss |
具体操作如下:
public class SimpleDateFormatUse {
private static final String PARRENT1 = "yyyy-MM-dd HH:mm:ss";
private static final String PARRENT2 ="yyyy年MM月dd日 HH小時mm分ss秒";
public static void parse(String strDate){
SimpleDateFormat sdf = new SimpleDateFormat(PARRENT1);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(PARRENT2);
try{
Date date = sdf.parse(strDate);
System.out.println("strDate解析后成的date"+date);
String str = simpleDateFormat.format(date);
System.out.println(str);
}catch (ParseException e){
e.printStackTrace();
}
}
public static void main(String[] args) {
SimpleDateFormatUse simpleDateFormatUse = new SimpleDateFormatUse();
String str ="2020-05-05 12:12:12";
simpleDateFormatUse.parse(str);
}
}