【深入了解Java常用类】

发布时间:2026/10/13 5:57:57
【深入了解Java常用类】 前言Java中的常用类主要提供了广泛的工具和功能用于简化开发任务处理常见的编程需求。前面我们已经介绍过String类的一些基本使用方法接下来我们再介绍一些其它常用类的使用本文主要介绍以包装类Integer为例、Math类、Random类。后续再介绍其它常用类。包装类引入【1】什么是包装类以前定义变量经常使用基本数据类型对于基本数据类型来说它就是一个数加点属性加点方法加点构造器将基本数据类型对应进行了一个封装产生了一个新的类---》包装类。int,byte.....---基本数据类型包装类---引用数据类型【2】对应关系基本数据类型 对应的包装类 继承关系byte Byte ---》Number---》Objectshort Short ---》Number---》ObjectintInteger---》Number---》Objectlong Long ---》Number---》Objectfloat Float ---》Number---》Objectdouble Double ---》Number---》ObjectcharCharacterObjectboolean Boolean Object【3】已经有基本数据类型了为什么要封装为包装类1java语言 面向对象的语言最擅长的操作各种各样的类。2以前学习装数据的---》数组int[] String[] double[] Student[]以后学习的装数据的---》集合有一个特点只能装引用数据类型的数据【4】是不是有了包装类以后就不用基本数据类型了不是。对于集合来说要用包装类(引用数据类型)。对于一般的类Student等只需要用基本数据类型更简洁方便。以Integer为例【1】直接使用无需导包【2】类的继承关系【3】实现接口【4】这个类被final修饰那么这个类不能有子类不能被继承【5】包装类是对基本数据类型的封装 对int类型封装产生了Integer【6】类的历史【7】属性/** * Auther: themyth */ public class Test01 { //这是一个main方法是程序的入口 public static void main(String[] args) { //属性 System.out.println(Integer.MAX_VALUE);//2147483647 System.out.println(Integer.MIN_VALUE);//-2147483648 //“物极必反”原理 System.out.println(Integer.MAX_VALUE1);//-2147483648 System.out.println(Integer.MIN_VALUE-1);//2147483647 } }【8】构造器发现没有空参构造器1int类型作为构造器的参数/** * Auther: themyth */ public class Test02 { //这是一个main方法是程序的入口 public static void main(String[] args) { Integer integer new Integer(12); System.out.println(integer.toString());//12 System.out.println(new Integer(13));//13 } }2String类型作为构造器的参数【9】包装类特有的机制自动装箱 自动拆箱/** * Auther: themyth */ public class Test03 { //这是一个main方法是程序的入口 public static void main(String[] args) { //自动装箱int---》Integer Integer i 12; System.out.println(i); //自动拆箱Integer---》int Integer i2 new Integer(12); int num i2; System.out.println(num); } }1自动装箱 自动拆箱 是从JDK1.5以后新出的特性2自动装箱 自动拆箱 将基本数据类型和包装类进行快速的类型转换。验证可以自定打断点测试是否走入valueOf方法中【10】常用方法valueOf方法的底层import org.omg.CORBA.INTERNAL; /** * Auther: themyth */ public class Test04 { //这是一个main方法是程序的入口 public static void main(String[] args) { //compareTo:只返回三个值0-11 Integer i1 new Integer(6); Integer i2 new Integer(12); System.out.println(i1.compareTo(i2));//return (x y) ? -1 : ((x y) ? 0 : 1); //equalsInteger对Object中的equals方法进行了重写比较的是底层封装的那个value的值。 //Integer对象是通过new关键字创建对象 Integer i3 new Integer(12); Integer i4 new Integer(12); System.out.println(i3 i4);//false 因为比较的是两个对象的地址 boolean flag i3.equals(i4); System.out.println(flag); //Integer对象通过自动装箱来完成 Integer i5 12; Integer i6 12; System.out.println(i5.equals(i6));//true System.out.println(i5 i6);//true Integer i7 128; Integer i8 128; System.out.println(i7.equals(i8));//true System.out.println(i7 i8);//false Integer i9 -129; Integer i10 -129; System.out.println(i9.equals(i10));//true System.out.println(i9 i10);//false /** 如果自动装箱在-128~127之间那么比较的就是具体的数值 否则比较的就是对象的地址 */ //intValue()的作用将Integer---int Integer i11 130; int i i11.intValue(); System.out.println(i); //parseInt(String s)String---int int i12 Integer.parseInt(12); System.out.println(i12); //toStringInteger---String Integer i13 13; System.out.println(i13.toString()); } }Math类【1】直接使用无需导包【2】final修饰类这个类不能被继承【3】构造器私有化不能创建Math类的对象不能【4】Math内部的所有的属性方法都被static修饰类名.直接调用无需创建对象【5】常用方法/** * Auther: themyth */ public class Test01 { //这是一个main方法是程序的入口 public static void main(String[] args) { //常用属性 System.out.println(Math.PI); //常用方法 System.out.println(随机数Math.random());//[0.0,1.0) System.out.println(绝对值Math.abs(-80)); System.out.println(向上取值Math.ceil(9.1)); System.out.println(向下取值Math.floor(9.9)); System.out.println(四舍五入Math.round(3.5)); System.out.println(取大的那个值Math.max(3, 6)); System.out.println(取小的那个值Math.min(3, 6)); } }【6】静态导入//静态导入 import static java.lang.Math.*; /** * Auther: themyth */ public class Test01 { //这是一个main方法是程序的入口 public static void main(String[] args) { //常用属性 System.out.println(PI); //常用方法 System.out.println(随机数random());//[0.0,1.0) System.out.println(绝对值abs(-80)); System.out.println(向上取值ceil(9.1));//天花板 System.out.println(向下取值floor(9.9));//地板 System.out.println(四舍五入round(3.5)); System.out.println(取大的那个值max(3, 6)); System.out.println(取小的那个值min(3, 6)); } //如果跟Math中方法重复了那么会优先走本类中的方法就近原则 public static int random(){ return 100; } }随机数案例在java中依靠一个类Math类帮助我们生成这个类中有一个方法专门用来生成随机数Math.random() ------- [0.0,1.0)Math.random()*6 -----[0.0,6.0)(int)(Math.random()*6) -----[0,5](int)(Math.random()*6) 1 -----[1,6]应用到程序中int num (int)(Math.random()*6) 1;练习[32,98] ----- [0,66]32 ---- (int)(Math.random()*67)32[-100,200] ----- [0,300] (-100) ---- (int)(Math.random()*301)-100Random类/** * Auther: themyth */ public class Test02 { //这是一个main方法是程序的入口 public static void main(String[] args) { //返回带正号的double值该值大于等于0.0且小于1.0 System.out.println(随机数Math.random()); //学习Random类 //1利用带参数的构造器创建对象 Random r1 new Random(System.currentTimeMillis()); int i r1.nextInt(); System.out.println(i); //2利用空参构造器创建对象 Random r2 new Random();//表面是在调用无参构造器实际底层还是调用了有参构造器 System.out.println(r2.nextInt(10));//返回一个伪随机数它是取自此随机数生成器序列的、在 0包括和指定值不包括之间均匀分布的 int 值。 System.out.println(r2.nextDouble());//返回一个伪随机数它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。 } }Math.random()和Random类的区别Math.random()和Random类都是用于生成随机数的工具但它们的使用方式和功能略有不同。以下是它们的主要区别Math.random()定义:Math.random()是一个静态方法属于java.lang.Math类。返回值: 生成一个在[0.0, 1.0)范围内的double型随机数即大于等于 0.0 且小于 1.0。种子控制: 不能显式设置种子。它使用一个全局的种子无法手动控制或重置因此随机序列不可重复生成。常见用途: 简单的随机数生成需求例如生成一个随机的小数或通过乘法生成指定范围内的整数。示例代码:double randomValue Math.random(); // 返回 0.0 到 1.0 之间的随机数 int randomInt (int) (Math.random() * 10); // 返回 0 到 9 之间的随机整数Random类定义:Random是java.util包中的一个类需要先创建Random类的实例。返回值: 可以生成不同类型的随机数如int、long、float、double、boolean等还可以生成指定范围内的随机数。种子控制: 可以在创建Random对象时指定种子值这样每次使用相同的种子值时生成的随机数序列都是相同的便于测试和重现。多功能性: 提供更多功能如生成高效的随机整数、长整型数字、布尔值等。可以生成指定范围内的随机数。示例代码:Random random new Random(); int randomInt random.nextInt(); // 返回任意整数 int randomIntWithinRange random.nextInt(10); // 返回 0 到 9 之间的随机整数 double randomDouble random.nextDouble(); // 返回 0.0 到 1.0 之间的随机 double 数 boolean randomBoolean random.nextBoolean(); // 返回 true 或 false 的随机值总结Math.random(): 简单易用适合快速生成[0.0, 1.0)范围内的随机double值。Random类: 更加灵活且功能丰富适合需要生成不同类型或特定范围随机数的场景并支持通过种子值生成可重复的随机序列。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询