IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java常用类01 -> 正文阅读

[Java知识库]Java常用类01

作者:recommend-item-box type_download clearfix

1.Object类

  • 超类、基类,所有类的直接或者间接父类,位于继承树的最顶层;

  • 任何类,如没有书写extends显示继承某个类,都默认直接继承Object类,否则为间接继承。

  • Object类中所定义的方法,是所有对象都具备的方法。

  • Object类型可以存储任何对象

    • 作为参数,可接受任何对象

    • 作为返回值,可以返回任何对象

2.getClass方法

  • public final Class<?> getClass(){}

  • 返回引用存储的实际对象类型

  • 应用:通常用于判断两个引用中实际存储对象类型是否一致

public class GetClass {
 ? ?public static void main(String[] args) {
 ? ? ? ?
 ? ? ? ?Student s1 = new Student("keyi",12);
 ? ? ? ?Student s2 = new Student("ke",12);
 ? ? ? ?
 ? ? ? ?Class<? extends Student> s1Class = s1.getClass();
 ? ? ? ?Class<? extends Student> s2Class = s2.getClass();
 ? ? ? ?
 ? ? ? ?if(s1Class==s2Class){
 ? ? ? ? ? ?System.out.println("s2和s2属于同一个类型:"+s1Class);
 ? ? ? ? ? ?//s2和s2属于同一个类型:class com.yu.CommonClass.Student
 ? ? ?  }else{
 ? ? ? ? ? ?System.out.println("s2和s2不属于同一个类型");
 ? ? ?  }
 ?  }
}
public class Student {
 ? ?public String name;
 ? ?public int age;
?
 ? ?public Student() {
 ?  }
?
 ? ?public Student(String name, int age) {
 ? ? ? ?this.name = name;
 ? ? ? ?this.age = age;
 ?  }
?
 ? ?public String getName() {
 ? ? ? ?return name;
 ?  }
?
 ? ?public void setName(String name) {
 ? ? ? ?this.name = name;
 ?  }
?
 ? ?public int getAge() {
 ? ? ? ?return age;
 ?  }
?
 ? ?public void setAge(int age) {
 ? ? ? ?this.age = age;
 ?  }
}

3.hashCode()方法

  • public int hashCode () {}

  • 返回该对象的哈希码值

  • 哈希值根据对象的地址或字符串或数字使用hash算法计算出来的int类型的数值

  • 一般情况下相同对象返回相同哈希码

public class GetClass {
 ? ?public static void main(String[] args) {
?
 ? ? ? ?Student s1 = new Student("keyi",12);
 ? ? ? ?Student s2 = new Student("ke",12);
?
 ? ? ? ?Class<? extends Student> s1Class = s1.getClass();
 ? ? ? ?Class<? extends Student> s2Class = s2.getClass();
?
 ? ? ? ?//判断s1和s2是不是同一个类型
 ? ? ? ?if(s1Class==s2Class){
 ? ? ? ? ? ?System.out.println("s1和s2属于同一个类型:"+s1Class);
 ? ? ? ? ? ?//s1和s2属于同一个类型:class com.yu.CommonClass.Student
 ? ? ?  }else{
 ? ? ? ? ? ?System.out.println("s1和s2不属于同一个类型");
 ? ? ?  }
?
 ? ? ? ?//hashCode
 ? ? ? ?System.out.println("=====================================");
 ? ? ? ?System.out.println(s1.hashCode()); ? ?//460141958
 ? ? ? ?System.out.println(s2.hashCode()); ? ?//1163157884
 ? ? ? ?Student s3=s1;
 ? ? ? ?System.out.println(s3.hashCode()); ? ?//460141958
 ?  }
}

4.toString()方法

  • public String toString () {}

  • 返回该对象的字符串表示(表现形式)

  • 可以根据程序需求覆盖该方法,如:展示对象各个属性值

public class Student {
 ? ?public String name;
 ? ?public int age;
?
 ? ?public Student() {
 ?  }
?
 ? ?public Student(String name, int age) {
 ? ? ? ?this.name = name;
 ? ? ? ?this.age = age;
 ?  }
?
 ? ?public String getName() {
 ? ? ? ?return name;
 ?  }
?
 ? ?public void setName(String name) {
 ? ? ? ?this.name = name;
 ?  }
?
 ? ?public int getAge() {
 ? ? ? ?return age;
 ?  }
?
 ? ?public void setAge(int age) {
 ? ? ? ?this.age = age;
 ?  }
?
 ? ?@Override
 ? ?public String toString() {
 ? ? ? ?return "Student{" +
 ? ? ? ? ? ? ? ?"name='" + name + '\'' +
 ? ? ? ? ? ? ? ?", age=" + age +
 ? ? ? ? ? ? ? ?'}';
 ?  }
}
?
public class GetClass {
 ? ?public static void main(String[] args) {
?
 ? ? ? ?Student s1 = new Student("keyi",12);
 ? ? ? ?Student s2 = new Student("ke",12);
?
 ? ? ? ?//1.getClass()方法
 ? ? ? ?Class<? extends Student> s1Class = s1.getClass();
 ? ? ? ?Class<? extends Student> s2Class = s2.getClass();
?
 ? ? ? ?//判断s1和s2是不是同一个类型
 ? ? ? ?if(s1Class==s2Class){
 ? ? ? ? ? ?System.out.println("s1和s2属于同一个类型:"+s1Class);
 ? ? ? ? ? ?//s1和s2属于同一个类型:class com.yu.CommonClass.Student
 ? ? ?  }else{
 ? ? ? ? ? ?System.out.println("s1和s2不属于同一个类型");
 ? ? ?  }
?
 ? ? ? ?//2.hashCode()方法
 ? ? ? ?System.out.println("=====================================");
 ? ? ? ?System.out.println(s1.hashCode()); ? ?//460141958
 ? ? ? ?System.out.println(s2.hashCode()); ? ?//1163157884
 ? ? ? ?Student s3=s1;
 ? ? ? ?System.out.println(s3.hashCode()); ? ?//460141958
?
 ? ? ? ?//3.toString()方法
 ? ? ? ?System.out.println("=====================================");
 ? ? ? ?System.out.println(s1.toString()); ? ? //Student{name='keyi', age=12}
 ? ? ? ?System.out.println(s2.toString()); ? ? //Student{name='ke', age=12}
 ?  }
}

5.equals()方法

  • public boolean equals (Object obj) {}

  • 默认实现为(this == obj),比较两个对象地址是否相同

  • 可进行覆盖,比较两个对象的内容是否相同

public class GetClass {
 ? ?public static void main(String[] args) {
?
 ? ? ? ?Student s1 = new Student("keyi",12);
 ? ? ? ?Student s2 = new Student("keyi",12);
?
 ? ? ? ?//1.getClass()方法
 ? ? ? ?Class<? extends Student> s1Class = s1.getClass();
 ? ? ? ?Class<? extends Student> s2Class = s2.getClass();
?
 ? ? ? ?//判断s1和s2是不是同一个类型
 ? ? ? ?if(s1Class==s2Class){
 ? ? ? ? ? ?System.out.println("s1和s2属于同一个类型:"+s1Class);
 ? ? ? ? ? ?//s1和s2属于同一个类型:class com.yu.CommonClass.Student
 ? ? ?  }else{
 ? ? ? ? ? ?System.out.println("s1和s2不属于同一个类型");
 ? ? ?  }
?
 ? ? ? ?//2.hashCode()方法
 ? ? ? ?System.out.println("=====================================");
 ? ? ? ?System.out.println(s1.hashCode()); ? ?//460141958
 ? ? ? ?System.out.println(s2.hashCode()); ? ?//1163157884
 ? ? ? ?Student s3=s1;
 ? ? ? ?System.out.println(s3.hashCode()); ? ?//460141958
?
 ? ? ? ?//3.toString()方法
 ? ? ? ?System.out.println("=====================================");
 ? ? ? ?System.out.println(s1.toString()); ? ? //Student{name='keyi', age=12}
 ? ? ? ?System.out.println(s2.toString()); ? ? //Student{name='ke', age=12}
?
 ? ? ? ?//4.equals()方法
 ? ? ? ?System.out.println("=====================================");
 ? ? ? ?System.out.println(s1.equals(s2)); ? ? ?//false
 ? ? ? ?System.out.println(s1 == s2); ? ? ?//false
 ? ? ? ?int a = 10;
 ? ? ? ?int b = 10;
 ? ? ? ?System.out.println(a == b); ? ? ?//true
 ?  }
}

6.finalize()方法

  • 当对象被判定为垃圾对象时,由JVM自动条用此方法,用以标记垃圾对象,进入回收队列;

  • 垃圾对象:没有有效引用指向此对象时,为垃圾对象;

  • 垃圾回收:由GC销毁垃圾对象,释放数据存储空间;

  • 自动回收机制:JVM的内存耗尽,一次性回收所有垃圾对象;

  • 手动回收机制:使用System.gc();通知JVM执行垃圾回收。

public class CommonClass02 {
 ? ?public static void main(String[] args) {
// ? ? ?  Student s1 = new Student("A",20);
// ? ? ?  Student s2 = new Student("B",20);
// ? ? ?  Student s3 = new Student("C",20);
// ? ? ?  Student s4 = new Student("D",20);
// ? ? ?  Student s5 = new Student("E",20);
 ? ? ? ?System.out.println("======================");
 ? ? ? ?new Student("A",20);
 ? ? ? ?new Student("B",20);
 ? ? ? ?new Student("C",20);
 ? ? ? ?new Student("D",20);
 ? ? ? ?new Student("E",20);
?
 ? ? ? ?//垃圾回收
 ? ? ? ?System.gc();
 ? ? ? ?System.out.println("垃圾回收!");
 ?  }
}
public class Student {
 ? ?public String name;
 ? ?public int age;
?
 ? ?public Student() {
 ?  }
?
 ? ?public Student(String name, int age) {
 ? ? ? ?this.name = name;
 ? ? ? ?this.age = age;
 ?  }
?
 ? ?public String getName() {
 ? ? ? ?return name;
 ?  }
?
 ? ?public void setName(String name) {
 ? ? ? ?this.name = name;
 ?  }
?
 ? ?public int getAge() {
 ? ? ? ?return age;
 ?  }
?
 ? ?public void setAge(int age) {
 ? ? ? ?this.age = age;
 ?  }
?
 ? ?@Override
 ? ?public String toString() {
 ? ? ? ?return "Student{" +
 ? ? ? ? ? ? ? ?"name='" + name + '\'' +
 ? ? ? ? ? ? ? ?", age=" + age +
 ? ? ? ? ? ? ? ?'}';
 ?  }
?
 ? ?protected void finalize() throws Throwable{
 ? ? ? ?System.out.println(this.name+"对象被回收了!");
 ?  }
}

7.String

(1).String

  • 字符串是常量,创建之后不可改变

public class String01 {
 ? ?public static void main(String[] args) {
 ? ? ? ?String name = "hello"; //"hello" 常量存储在字符串池中
 ? ? ? ?name = "zhangsan"; ?//"zhangsan"赋值给name变量,给字符串赋值时,并没有修改数据,而是重新开辟一个空间
 ? ? ? ?String name2 = "zhangsan";
 ? ? ? ?String str = new String("java");
 ? ? ? ?String str2 = new String("java");
 ? ? ? ?System.out.println(str==str2);
 ? ? ? ?System.out.println(str.equals(str2));
 ?  }
}

(2).字符串的使用

  • public int length():返回字符串的长度;

  • public char charAt(int index) : 根据下表获取字符;

  • public boolean contains(String str) : 判断当前字符串中是否包含str

public class String01 {
 ? ?public static void main(String[] args) {
 ? ? ? ?String name = "hello"; //"温润如玉" 常量存储在字符串池中
 ? ? ? ?name = "zhangsan"; ?//"大山"赋值给name变量,给字符串赋值时,并没有修改数据,而是重新开辟一个空间
 ? ? ? ?String name2 = "zhangsan";
 ? ? ? ?String str = new String("java");
 ? ? ? ?String str2 = new String("java");
 ? ? ? ?System.out.println(str==str2);
 ? ? ? ?System.out.println(str.equals(str2));
?
 ? ? ? ?/*
 ? ? ? ?字符串的使用
 ? ? ? ? ? ?1.length();返回字符串的长度
 ? ? ? ? ? ?2.charAt(int index);返回某个位置的字符
 ? ? ? ? ? ?3.contains(String str);判断是否包含某个字字符串
 ? ? ? ? */
 ? ? ? ?System.out.println("========================================");
 ? ? ? ?String con = "Java是世界上做好的编程语言!Java是面向对象编程!";
 ? ? ? ?System.out.println(con.length());
 ? ? ? ?System.out.println(con.charAt(con.length()-1));
 ? ? ? ?System.out.println(con.contains("Java"));
 ? ? ? ?System.out.println(con.contains("Python"));
?
 ? ? ? ?/*
 ? ? ? ? ? ?4.toCharArray();返回字符串对应的数组
 ? ? ? ? ? ?5.indexOf();返回字符串首次出现的位置
 ? ? ? ? ? ?6.lastIndexOf();返回字符串最后一次出现的位置
 ? ? ? ? */
 ? ? ? ?System.out.println("========================================");
 ? ? ? ?System.out.println(Arrays.toString(con.toCharArray()));
 ? ? ? ?System.out.println(con.toCharArray());
 ? ? ? ?System.out.println(con.indexOf("Java"));
 ? ? ? ?System.out.println(con.indexOf("Java",4));
 ? ? ? ?System.out.println(con.lastIndexOf("Java"));
?
 ? ? ? ?/*
 ? ? ? ? ? ?7.trim();去掉字符串前后的空格
 ? ? ? ? ? ?8.toUpperCase(); 把小写转换为大写;toLowerCase();把大写转换成小写;
 ? ? ? ? ? ?9.endWith(str);判断是否str结尾,startWith(str);判断是否str开头
 ? ? ? ? */
 ? ? ? ?System.out.println("========================================");
 ? ? ? ?String con02 = "  Java是世界上做好的编程语言!";
 ? ? ? ?System.out.println(con02);
 ? ? ? ?System.out.println(con02.trim());
 ? ? ? ?System.out.println(con02.toLowerCase());
 ? ? ? ?System.out.println(con02.toUpperCase());
 ? ? ? ?System.out.println(con02.startsWith(" "));
 ? ? ? ?System.out.println(con02.endsWith("!"));
?
 ? ? ? ?/*
 ? ? ? ? ? ?10.replace(char old,char new); 用新的字符或字符串替换旧的字符或字符串
 ? ? ? ? ? ?11.split();对字符串进行拆分
 ? ? ? ?*/
 ? ? ? ?System.out.println("========================================");
 ? ? ? ?System.out.println(con.replace("Java","Python"));
 ? ? ? ?System.out.println(con.split(","));
 ? ? ? ?String Java = "Java is the best  programing language,Java xiang";
 ? ? ? ?String[] arr = Java.split("[ ,]+"); //空格可以使数组按照空格拆分,逗号使数组可以按照逗号进行拆分,+可以识别输入多个空格和逗号
 ? ? ? ?for (String s: arr) {
 ? ? ? ? ? ?System.out.println(s);
 ? ? ?  }
 ?  }
}

8.可变字符串

  • StringBuffer:可变长字符串,JDK1.0提供,运行效率慢、线程安全;

  • StringBuilder:可变长字符串,JDK1.5提供,运行效率快、线程不安全。

  • 和String的区别:效率比String高;比String节省内存;

public class StringBuffer01 {
 ? ?public static void main(String[] args) {
?
 ? ? ? ?StringBuffer stringBuffer = new StringBuffer();
?
 ? ? ? ?//1.append();追加
 ? ? ? ?stringBuffer.append("Java最好的编程语言!");
 ? ? ? ?System.out.println(stringBuffer); ? //Java最好的编程语言!
?
 ? ? ? ?stringBuffer.append("Java最好!");
 ? ? ? ?System.out.println(stringBuffer); ? //Java最好的编程语言!Java最好!
?
 ? ? ? ?//2.insert();添加
 ? ? ? ?stringBuffer.insert(0,"Python、");
 ? ? ? ?System.out.println(stringBuffer); ? //Python、Java最好的编程语言!Java最好!
?
 ? ? ? ?//3.replace();替换
 ? ? ? ?stringBuffer.replace(0,6,"Hello");
 ? ? ? ?System.out.println(stringBuffer); ? ?//Hello、Java最好的编程语言!Java最好!
?
 ? ? ? ?//4.delete();删除
 ? ? ? ?stringBuffer.delete(0,6);
 ? ? ? ?System.out.println(stringBuffer); ? //Java最好的编程语言!Java最好!
 ? ? ? ?
 ? ? ? ?//5.delete();清空
 ? ? ? ?stringBuffer.delete(0,stringBuffer.length());
 ? ? ? ?System.out.println(stringBuffer); ? //为空,没有输出
?
 ?  }
}
public class String04 {
 ? ?public static void main(String[] args) {
 ? ? ? ?long startTime = System.currentTimeMillis();
 ? ? ? ?String num = "";
 ? ? ? ?for (int i = 0; i < 99999; i++) {
 ? ? ? ? ? ?num += i;
 ? ? ?  }
 ? ? ? ?System.out.println(num);
 ? ? ? ?long endTime = System.currentTimeMillis();
 ? ? ? ?System.out.println("循环用时:"+(endTime-startTime)); ? //循环用时:36899
 ?  }
}
public class String05 {
 ? ?public static void main(String[] args) {
 ? ? ? ?long startTime = System.currentTimeMillis();
 ? ? ? ?StringBuffer stringBuffer = new StringBuffer();
 ? ? ? ?for (int i = 0; i < 99999; i++) {
 ? ? ? ? ? ?stringBuffer.append(i);
 ? ? ?  }
 ? ? ? ?System.out.println(stringBuffer);
 ? ? ? ?long endTime = System.currentTimeMillis();
 ? ? ? ?System.out.println("循环用时:"+(endTime-startTime)); ?//循环用时:59
 ?  }
}

9.BigDecimal

  • 位置:java.math包中

  • 作用:精确计算浮点数

  • 创建方式:BigDecimal bd = new BigDecimal("1.0");

  • 方法:

    • BigDecimal add(BigDecimal bd) 加

    • BigDecimal subtract(BigDecimal bd) 减

    • BigDecimal multiply(BigDecimal bd) 乘

    • BigDecimal divide(BigDecimal bd) 除

  • 除法:divide(BigDecimal bd,int scal,RoundingMode mode)

  • 参数scal:指定精确到小数点后几位

  • 参数mode:

    • 指定小数部分的取舍模式,通常采用四舍五入的模式

    • 取值为BigDecimal.ROUND_HALF_UP

import java.math.BigDecimal;
?
public class BigDecimal01 {
 ? ?public static void main(String[] args) {
?
 ? ? ? ?double a = 1.0;
 ? ? ? ?double b = 0.9;
 ? ? ? ?System.out.println(a-b); ?//0.09999999999999998
?
 ? ? ? ?//面试题
 ? ? ? ?double result01 = (0.9)/0.9;
 ? ? ? ?double result02 = (1.4-0.5)/0.9;
 ? ? ? ?System.out.println(result01); ? ? //1.0
 ? ? ? ?System.out.println(result02); ? ? //0.9999999999999999
?
 ? ? ? ?BigDecimal bigDecimal01 = new BigDecimal(1.0);
 ? ? ? ?BigDecimal bigDecimal02 = new BigDecimal(0.9);
?
 ? ? ? ?//减法
 ? ? ? ?BigDecimal subtract = bigDecimal01.subtract(bigDecimal02);
 ? ? ? ?System.out.println(subtract); ? ? //0.09999999999999997779553950749686919152736663818359375
?
 ? ? ? ?//加法
 ? ? ? ?BigDecimal add = bigDecimal01.add(bigDecimal02);
 ? ? ? ?System.out.println(add); ? ?//1.90000000000000002220446049250313080847263336181640625
?
 ? ? ? ?//乘法
 ? ? ? ?BigDecimal multiply = bigDecimal01.multiply(bigDecimal02);
 ? ? ? ?System.out.println(multiply); ?//0.90000000000000002220446049250313080847263336181640625
?
 ? ? ? ?//除法
 ? ? ? ?BigDecimal big = new BigDecimal("1.4").subtract(new BigDecimal("0.5")).divide(new BigDecimal("0.9"));
 ? ? ? ?System.out.println(big); ?//1
?
 ? ? ? ?BigDecimal big02 = new BigDecimal("20").divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);
 ? ? ? ?System.out.println(big02); ? //6.67
 ?  }
}

10.Date

  • Date表示特定的瞬间,精确到毫秒。Date类中的大部分方法都已经被Calendar类的额方法取代;

  • 时间单位

    • 1秒 = 1000毫秒

    • 1毫秒 = 1000微秒

    • 1微秒 = 1000纳秒

import java.util.Date;
?
public class Date01 {
 ? ?public static void main(String[] args) {
?
 ? ? ? ?//今天
 ? ? ? ?Date date = new Date();
 ? ? ? ?System.out.println(date); ? ?//Thu Dec 23 23:05:06 CST 2021
 ? ? ? ?System.out.println(date.getTime()); ? ?//1640271906975
?
 ? ? ? ?//昨天
 ? ? ? ?Date date1 = new Date(date.getTime()-(60*60*24*1000));
 ? ? ? ?System.out.println(date1.toLocaleString()); ?//2021-12-22 23:05:06
 ?  }
}
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:20:30  更:2021-12-24 18:22:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:27:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码