搜索
首页Javajava教程Java 中必须了解的常用类的汇总

Java 中必须了解的常用类的汇总

Jul 24, 2017 pm 02:35 PM
java了解

Java中必须了解的常用类



一、包装类

相信各位小伙伴们对基本数据类型都非常熟悉,例如 int、float、double、boolean、char 等。基本数据类型是不具备对象的特性的,比如基本类型不能调用方法、功能简单。。。,为了让基本数据类型也具备对象的特性, Java 为每个基本数据类型都提供了一个包装类,这样我们就可以像操作对象那样来操作基本数据类型。

基本类型和包装类之间的对应关系:

注意:有两个包装类的名称比较特殊一个是Integer,另一个是Character,其他都是基本数据类首字母大写。

包装类主要提供了两大类方法:

1. 将本类型和其他基本类型进行转换的方法

2. 将字符串和本类型及包装类互相转换的方法

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Java 中基本类型和包装类之间的转换

基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦):

1 Integer a=new Integer(3);//定义Integer包装类对象,值为32 int b=a+5;//将对象和基本类型进行运算

在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了。

那什么是装箱和拆箱呢?我们分别来看下:

装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱。

1 int i=10;//定一个int基本数据类型2 Integer x=new Integer(i);//手动装箱3 Integer y=i;//自动装箱
1 Double n=i;//类型不同不能自动装箱2 Double m=new Double(i);//不同类型可以通过手动装箱

拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱。

1 Integer j=new Integer(8);//定义Integer包装类对象,值为82 int n=j.intValue();//手动拆箱3 int m=j;//自动拆箱
1 double x=j.doubleValue();//不同类型手动拆箱2 double y=j;//不同类型可以自动拆箱

注意类型不同不能自动装箱,但是不同类型可以自动拆箱

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Java 中基本类型和字符串之间的转换

在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换。

其中,基本类型转换为字符串有三种方法:

1. 使用包装类的 toString() 方法

2. 使用String类的 valueOf() 方法

3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串

代码如下:

1 //将基本类型转化为字符串2 int x=10;3 String str1=Integer.toString(x);//方法一4 String str2=String.valueOf(x);//方法二5 String str3=x+"";//方法三,本质利用系统自动转换类型

再来看,将字符串转换成基本类型有两种方法:

1. 调用包装类的 parseXxx 静态方法

2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱

代码如下:

1 //将字符串转换为基本类型2 String str="8";3 int n=Integer.parseInt(str);//方法一4 int y=Integer.valueOf(str);//方法二

注意:字符串转换为基本类型里如果字符串包含其他字符,程序运行时将会抛出异常。所以在使用该方法时最好用try-catch语句捕获并处理。

PS:其他基本类型与字符串的相互转化这里不再一一列出,方法都类似。


二、Date 和 SimpleDateFormat 类

在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类。这个类最主要的作用就是获取当前时间,我们来看下 Date 类的使用:

1 Date d=new Date();//使用默认的构造方法创建Date对象2 System.out.println(d);

使用 Date 类的默认无参构造方法创建出的对象就代表当前时间,我们可以直接输出 Date 对象显示当前的时间,显示的结果如下:

其中, Thu 代表 星期四, Jul 代表 七月,06 代表 06 号, CST 代表 China Standard Time (中国标准时间,也就是北京时间,东八区)。

从上面的输出结果中,我们发现,默认的时间格式不是很友好,与我们日常看到的日期格式不太一样,如果想要按指定的格式进行显示,如 2017-07-06 13:31:28 ,那该怎么做呢?

此时就到了 java.text 包中的 SimpleDateFormat 类大显身手的时候了!!可以使用 SimpleDateFormat 来对日期时间进行格式化,如可以将日期转换为指定格式的文本,也可将文本转换为日期

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

1. 使用 format() 方法将日期转换为指定格式的文本

1 //使用 format() 方法将日期转换为指定格式的文本2 Date d=new Date();//使用默认的构造方法创建Date对象3 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//指定日期格式4 String today=sdf.format(d);5 System.out.println(today);

运行结果:

结果分析:

代码中的 “yyyy-MM-dd HH:mm:ss” 为预定义字符串 yyyy 表示四位年, MM 表示两位月份, dd 表示两位日期, HH 表示小时(使用24小时制), mm 表示分钟, ss 表示秒,这样就指定了转换的目标格式,最后调用 format() 方法将时间转换为指定的格式的字符串。

2. 使用 parse() 方法将文本转换为日期

 1                 //创建日期格式的字符串 2         String day="2017年07月06日 13:42:10"; 3         //创建SimpleDateFormat对象,指定字符串的日期格式 4         SimpleDateFormat sd=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); 5         //调用parse方法,将字符串转化为日期 6         Date date; 7         try { 8             date = sd.parse(day); 9             System.out.println(date);10         } catch (ParseException e) {11             // TODO Auto-generated catch block12             e.printStackTrace();13         }

运行结果:

结果分析:

代码中的 “yyyy年MM月dd日 HH:mm:ss” 指定了字符串的日期格式,调用 parse() 方法将文本转换为日期。因为将字符串转换为Date类型可能会抛出异常,所以要用try-catch语句捕获。

一定要注意哦:

1、 调用 SimpleDateFormat 对象的 parse() 方法时可能会出现转换异常,即 ParseException ,因此需要进行异常处理。

2、 使用 Date 类时需要导入 java.util 包,使用 SimpleDateFormat 时需要导入 java.text 包。


三、Calendar 类的应用

Date 类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用 Calendar 类进行时间和日期的处理。

java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,如 Calendar c = Calendar.getInstance();

那么如何使用 Calendar 获取年、月、日、时间等信息呢?我们来看下面的代码:

 1 public static void main(String[] args)  { 2         // TODO Auto-generated method stub 3          Calendar c = Calendar.getInstance();//创建Calendar对象 4          int year = c.get(Calendar.YEAR);//获取年 5          int month = c.get(Calendar.MONTH)+1;//获取月份,0表示一月份 6          int day = c.get(Calendar.DAY_OF_MONTH);//获取日期 7          int hour = c.get(Calendar.HOUR_OF_DAY);//获取小时 8          int minute = c.get(Calendar.MINUTE);//获取分钟 9          int second = c.get(Calendar.SECOND);//获取秒10          System.out.println("当前时间:"+year+"-"+month+"-"+day+"-"+hour+":"+minute+":"+second);11     12     }

运行结果:

结果分析:

调用 Calendar 类的 getInstance() 方法获取一个实例,然后通过调用 get() 方法获取日期时间信息,参数为需要获得的字段的值, Calendar.Year 等为 Calendar 类中定义的静态常量

注意:其中有两个特别的参数:DAY_OF_MONTH和HOUR_OF_DAY,千万不要写成DAY和HOUR了;MONTH获取的月份,0表示一月

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Calendar 类提供了 getTime() 方法,用来获取 Date 对象,完成 Calendar 和 Date 的转换,还可通过 getTimeInMillis() 方法,获取此 Calendar 的时间值,以毫秒为单位。如下所示:

1  Date date=c.getTime();//将Calendar对象转换为Date对象2          Long time=c.getTimeInMillis();//获取当前毫秒数3          System.out.println("当前时间:"+date);4          System.out.println("当前毫秒数"+time);

运行结果:

总结:

 1.通过调用 getInstance() 静态方法获取一个 Calendar 对象---对象初始化

  Calendar c = Calendar.getInstance();

2.通过调用 get() 方法获取日期时间信息

  int month=c.get(Calendar.MONTH)+1;----0表示1月份

3.提供 getTime() 方法,用来获取 Date 对象

  Date date=c.getTime();----将Calender对象转换为Date对象

4.通过 getTimeInMillis() 方法,获取此 Calendar 的时间值

  long time=c.getTimeInMillis();----获取当前毫秒


四、使用 Math 类操作数据

Math 类位于 java.lang 包中,包含用于执行基本数学运算的方法, Math 类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类名.方法名,如: Math.round();

常用的方法:

下面用代码来实现:

 1 public static void main(String[] args)  { 2         double a=12.81; 3         int b=(int)a;//强制类型转换 4         System.out.println("强制类型转换:"+b); 5         long c=Math.round(a);//调用round方法,进行四舍五入 6         System.out.println("四舍五入:"+c); 7         double d=Math.floor(a);//调用floor方法,返回小于参数的最大整数 8         System.out.println("floor方法:"+d); 9         double e=Math.ceil(a);//调用ceil方法,返回大于参数的最小整数10         System.out.println("ceil方法:"+e);11         double x=Math.random();//调用random方法,产生[0,1)之间的随机数12         System.out.println("随机数:"+x);13         int y=(int)(Math.random()*100);//产生[0,100)之间的随机数14         System.out.println("[0,100)之间的随机数:"+y);15 16     }

运行结果:

注意:要注意Math各个方法返回值类型,可以用强制类型转换来转为自己想要的类型。

PS: Math 类还提供了许多其他方法,各位小伙伴们可以按需去API文档查找想要知道的方法。

以上是Java 中必须了解的常用类的汇总的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Java开发的哪些方面取决于平台?Java开发的哪些方面取决于平台?Apr 26, 2025 am 12:19 AM

JavadevelovermentIrelyPlatForm-DeTueTososeVeralFactors.1)JVMVariationsAffectPerformanceNandBehaviorAcroSsdifferentos.2)Nativelibrariesviajnijniiniininiinniinindrododerplatefform.3)

在不同平台上运行Java代码时是否存在性能差异?为什么?在不同平台上运行Java代码时是否存在性能差异?为什么?Apr 26, 2025 am 12:15 AM

Java代码在不同平台上运行时会有性能差异。1)JVM的实现和优化策略不同,如OracleJDK和OpenJDK。2)操作系统的特性,如内存管理和线程调度,也会影响性能。3)可以通过选择合适的JVM、调整JVM参数和代码优化来提升性能。

Java平台独立性有什么局限性?Java平台独立性有什么局限性?Apr 26, 2025 am 12:10 AM

Java'splatFormentenceHaslimitations不包括PerformanceOverhead,versionCompatibilityIsissues,挑战WithnativelibraryIntegration,Platform-SpecificFeatures,andjvminstallation/jvminstallation/jvmintenance/jeartenance.therefactorscomplicatorscomplicatethe“ writeOnce”

解释平台独立性和跨平台发展之间的差异。解释平台独立性和跨平台发展之间的差异。Apr 26, 2025 am 12:08 AM

PlatformIndependendecealLowsProgramStormonanyPlograwsStormanyPlatFormWithOutModification,而LileCross-PlatFormDevelopmentRequiredquiresMomePlatform-specificAdjustments.platFormIndependence,EneblesuniveByjava,EnablesuniversUniversAleversalexecutionbutmayCotutionButMayComproMisePerformance.cross.cross.cross-platformd

即时(JIT)汇编如何影响Java的性能和平台独立性?即时(JIT)汇编如何影响Java的性能和平台独立性?Apr 26, 2025 am 12:02 AM

JITcompilationinJavaenhancesperformancewhilemaintainingplatformindependence.1)Itdynamicallytranslatesbytecodeintonativemachinecodeatruntime,optimizingfrequentlyusedcode.2)TheJVMremainsplatform-independent,allowingthesameJavaapplicationtorunondifferen

为什么Java是开发跨平台桌面应用程序的流行选择?为什么Java是开发跨平台桌面应用程序的流行选择?Apr 25, 2025 am 12:23 AM

javaispopularforcross-platformdesktopapplicationsduetoits“ writeonce,runanywhere”哲学。1)itusesbytbytybytecebytecodethatrunsonanyjvm-platform.2)librarieslikeslikeslikeswingingandjavafxhelpcreatenative-lookingenative-lookinguisis.3)

讨论可能需要在Java中编写平台特定代码的情况。讨论可能需要在Java中编写平台特定代码的情况。Apr 25, 2025 am 12:22 AM

在Java中编写平台特定代码的原因包括访问特定操作系统功能、与特定硬件交互和优化性能。1)使用JNA或JNI访问Windows注册表;2)通过JNI与Linux特定硬件驱动程序交互;3)通过JNI使用Metal优化macOS上的游戏性能。尽管如此,编写平台特定代码会影响代码的可移植性、增加复杂性、可能带来性能开销和安全风险。

与平台独立性相关的Java开发的未来趋势是什么?与平台独立性相关的Java开发的未来趋势是什么?Apr 25, 2025 am 12:12 AM

Java将通过云原生应用、多平台部署和跨语言互操作进一步提升平台独立性。1)云原生应用将使用GraalVM和Quarkus提升启动速度。2)Java将扩展到嵌入式设备、移动设备和量子计算机。3)通过GraalVM,Java将与Python、JavaScript等语言无缝集成,增强跨语言互操作性。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器