java中必须知道的常用类

 1、Java的包装类

  基本数据类型我们都很熟悉,例如:int、float、double、boolean、char等,基本数据类型不具备对象的特征,不能调用方法,一般能实现的功能比较简单,为了让基本数据类型也具备对象的特性,Java为每个数据类型都提供了一个包装类,这样我们就可以像操作对象一样,操作这些基本数据类型了

  常见的包装类和基本类型对应关系如下:

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

  1、进行多个类型之间的转换

  2、将字符串和本类型及包装类相互转换

  比如下面代码:

1 int i = 2;
2 Integer m = new Integer(5);
3 Integer n = new Integer("8");

  第一行是用基本类型定义了整型变量i,第二行是利用int包装类定义了int对象m,虽然赋值为整型的5,但是现在会将基本类型转换为包装类中的5

  第三行初始化值为字符串类型的"8",但是会被包装类转换成整数类型,这就是包装类的基本使用方法

  每个包装类都可以和其他类进行转换,比如Integer包装类,转换的对应关系如下:

  

根据转换的对应关系,可以写一个简单的实例如下:

 1 public class HelloWorld {
 2     public static void main(String[] args) {
 3
 4          int score1 = 86;
 5
 6          // 创建Integer包装类对象,表示变量score1的值
 7          Integer score2=new Integer(score1);
 8
 9          // 将Integer包装类转换为double类型
10          double score3=score2.doubleValue();
11
12          // 将Integer包装类转换为float类型
13          float score4=score2.floatValue();
14
15          // 将Integer包装类转换为int类型
16          int score5 =score2.intValue();
17
18          System.out.println("Integer包装类:" + score2);
19          System.out.println("double类型:" + score3);
20          System.out.println("float类型:" + score4);
21          System.out.println("int类型:" + score5);
22      }
23  }

通过这个简单的包装类转换程序,可以看出包装类转换为各种基本数据类型也是很方便的

那么基本类型怎么转换为包装类的对象呢?其实前面三行代码已经体现了,只不过不太完全,基本类型转换为包装类可以理解为一个装箱的过程,装箱有两种方式:手动装箱和自动装箱,那么同理包装类转换为基本类型叫做拆箱,同样分为:手动拆箱和自动拆箱,上面的例子就是一个手动拆箱的例子,

那么其中自动装箱和自动拆箱,都是编译器根据数据类型自动完成了转换,简单的代码如下:

 1 public class HelloWorld {
 2      public static void main(String[] args) {
 3          double a = 91.5;
 4
 5           // double类型手动装箱
 6          Double b = new Double(a);
 7
 8          // double类型自动装箱
 9          Double c = a;
10
11          System.out.println("装箱后的结果为:" + b + "和" + c);
12
13          Double d = new Double(87.0);
14
15          // Double包装类对象手动拆箱
16          double e = d.doubleValue();
17
18          //Double包装类对象自动拆箱
19          double f = d;
20
21           System.out.println("拆箱后的结果为:" + e + "和" + f);
22      }
23  }

例子很简单,对每一个数据类型分别完成了自动和手动两个操作,所以b和c的值是一样的,e和f的值是一样的

除了基本数据类型的包装转换之外,基本类型和字符串之间也可以进行转换

比如一个基本类型:int a = 30;有3中方式转换为字符串对象:

  1、使用包装类的toString方法,String str1 = Integer.toString(a);

  2、使用String类的valueOf方法,String str2 = String.valueOf(a);

  3、用一个空字符串加上基本类型,系统会将基本类型转换为字符串类型,String str3 = a + "";

反过来,定义:String str = "18";将一个字符串类型转换为基本类型有以下两种方法:

  1、调用包装类的parseXxx静态方法,int b = Integer.parseInt(str);

  2、调用包装类的valueOf方法,完成自动拆箱,int c = Integer.valueOf(str);

其他类型转换也是一样,替换里面的类型即可,下面是一个简单的例子:

 1 public class HelloWorld {
 2      public static void main(String[] args) {
 3
 4          double m = 78.5;
 5          //将基本类型转换为字符串
 6          String str1 = Double.toString(m);
 7
 8          System.out.println("m 转换为String型后与整数20的求和结果为: "+(str1+20));
 9
10          String str = "180.20";
11          // 将字符串转换为基本类型
12          Double a = Double.valueOf(str);
13
14          System.out.println("str 转换为double型后与整数20的求和结果为: "+(a+20));
15      }
16  }

这个例子实现了两次转换,所以str1+20应该输出:78.520,a+20应该输出:200.20,前者结果是字符串类型,后者结果是基本的浮点数类型

  2、Java日期时间处理

  程序开发中,时间处理必不可少,这些内容相对简单一些,会使用一些固定的类即可

  首先,我们可以使用java.util包中的Date类来获取时间,方法如下:

1 Date d = new Date();
2 System.out.println(d);

这样是最简单的方法了,但是输出格式可能不太适合我们:Mon Sep 21 21:46:13 CST 2015

所以我们需要进行简单的修饰,那么这时需要java.text包中的SimpleDateFormat类中的format方法对文本进行格式化,代码如下:

1 Date d = new Date();
2 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
3 String today = sdf.format(d);
4 System.out.println(today);

这样就输出了我们常用的时间:2015-09-21 21:51:39,另外格式我们也可以按照我们的需要定义

反过来呢,我们还可以把文本变成默认的时间格式,这用到了SimpleDateFormat类中的parse方法,但是这个方法可能会出现异常,所以需要java.text中的异常类ParseException类进行异常处理,看一个小实例:

 1 import java.text.ParseException;
 2 import java.text.SimpleDateFormat;
 3 import java.util.Date;
 4
 5 public class HelloWorld {
 6
 7      public static void main(String[] args) throws ParseException {
 8
 9          // 使用format()方法将日期转换为指定格式的文本
10          SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
11          SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
12          SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
13
14          // 创建Date对象,表示当前时间
15          Date now = new Date();
16
17          // 调用format()方法,将日期转换为字符串并输出
18          System.out.println(sdf1.format(now));
19          System.out.println(sdf2.format(now));
20          System.out.println(sdf3.format(now));
21
22          // 使用parse()方法将文本转换为日期
23          String d = "2015-9-21 21:56:36";
24          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
25
26           // 调用parse()方法,将字符串转换为日期
27          Date date = sdf.parse(d);
28
29          System.out.println(date);
30      }
31  }

例子很简单,实现了时间格式化,文本到日期的转换

另外在java.util包中还有一个时间处理的Calendar类,因为Date类中的本身的设计方法,遭到了众多批评,所以推荐使用Calendar类来处理时间,Calendar类是一个抽象类,可以通过调用getInstance静态方法获得Calendar的一个对象,此对象默认由当前时间进行初始化,直接来一个简单的实例:

 1 package com.imooc.collection;
 2
 3 import java.util.Calendar;
 4
 5 public class DateAction {
 6
 7     public static void main(String[] args) {
 8         Calendar c = Calendar.getInstance();    //实例化Calendar对象
 9         int year = c.get(Calendar.YEAR);    //通过get方法获得当前年
10         int month = c.get(Calendar.MONTH) + 1;    //月份0-11,需要加1
11         int day = c.get(Calendar.DAY_OF_MONTH);    //日期
12         int hour = c.get(Calendar.HOUR_OF_DAY);    //获取小时
13         int minute = c.get(Calendar.MINUTE);    //获取分钟
14         int second = c.get(Calendar.SECOND);    //获取秒数
15         System.out.println("当前时间:" + year + "年" + month + "月" + day + "日" + "   " + hour +
16                 ":" + minute + ":" + second);
17     }
18
19 }

这样就打印出结果了:当前时间:2015年9月21日   22:12:13

Calendar还提供了getTime方法,用来获取Date对象,实现Calendar和Date对象的互转,还可以用getTimeInMillis获得1970年01月01日0时0分0秒,到当前时间的毫秒数,大约是Unix时间戳的1000倍

简单代码如下:

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

这样就实现了转换

  3、Java数学运算Math类

  Math类也是Java中做运算常用的类,在java.lang包中,这个系统会自动导入,这里简单的记录一下,常用的方法:

  

  直接看一个简单的实例:

 1 public class MathAction {
 2
 3     public static void main(String[] args) {
 4         double a = 12.86;
 5         int b = (int) a;    //强制类型转换
 6         System.out.println("强制类型转换:" + b);
 7         long c = Math.round(a);    //四舍五入
 8         System.out.println("四舍五入:" + c);
 9         double d = Math.floor(a);    //返回小于参数a的最大整数
10         System.out.println("小于a的最大整数:" + d);
11         double e = Math.ceil(a);    //返回大于参数a的最小整数
12         System.out.println("大于a的最小整数:" + e);
13         double x = Math.random();    //产生[0,1)区间内的随机浮点数
14         System.out.println("默认随机数:" + x);
15         int y = (int) (Math.random()*99);    //产生[0,99)区间内的随机整数
16         System.out.println("0-99之间的随机整数(不包括99):" + y);
17
18     }
19
20 }

  很容易理解的例子,效果如下:

  以上就是Java开发中经常用到的类和方法,以上主要就是包装类、时间处理、数学计算这些

时间: 2024-10-13 03:43:32

java中必须知道的常用类的相关文章

Java中的集合和常用类

Java中的常用类: ? Object类 ? Math类 ? String类和StringBuffer类(字符串) ? 8种基本类型所对应的包装类 ? java.util包中的类——Date类 Object类: Object类是Java语言程序中所有类的父类,即承自Object类.Object类中包含了Java语言类中的所有的公共属性. ? toString()方法 ? equals()方法 ? getClass()方法 ? clone()方法 ? finalize()方法 枚举类: 用于储存变

java中必须了解的常用类

java中的包装类 为何有包装类的出现? 基本数据类型不具备对象的特性的,比如基本类型不能调用方法.功能简单. 为了让基本数据类型也具备对象的特性, Java 为每个基本数据类型都提供了一个包装类,这样就可以像操作对象那样来操作基本数据类型. 每个基本类型都有相对应的包装类: 包装类主要提供了两大类方法: 将本类型和其他基本类型进行转换的方法. 将字符串和本类型及包装类互相转换的方法 下面看一个例子: public class HelloWorld { public static void ma

java中IO写文件工具类

下面是一些根据常用java类进行组装的对文件进行操作的类,平时,我更喜欢使用Jodd.io中提供的一些对文件的操作类,里面的方法写的简单易懂. 其中jodd中提供的JavaUtil类中提供的方法足够我们使用,里面的方法写的非常简练,例如append,read等方法,封装更好,更符合面向对象, 这里面我写的一些方法可多都是模仿jodd,从里面进行抽取出来的. /** * 获取路径文件夹下的所有文件 * @param path * @return */ public static File[] ge

重温java中的String,StringBuffer,StringBuilder类

任何一个系统在开发的过程中, 相信都不会缺少对字符串的处理. 在 java 语言中, 用来处理字符串的的类常用的有 3 个: String.StringBuffer.StringBuilder. 它们的异同点: 1) 都是 final 类, 都不允许被继承; 2) String 长度是不可变的, StringBuffer.StringBuilder 长度是可变的; 3) StringBuffer 是线程安全的, StringBuilder 不是线程安全的. String 类已在上一篇随笔 小瓜牛

死磕 Java 系列(一)—— 常用类(1) String 源码解析

写在前面 这是博主新开的一个 java 学习系列,听名字就可以看出来,在这一些系列中,我们学习的知识点不再是蜻蜓点水,而是深入底层,深入源码.由此,学习过程中我们要带着一股钻劲儿,对我们不懂的知识充满质疑,力求把我们学过的知识点都搞清楚,想明白. 一.引言 在 java 的世界里,存在一种特殊的类,它们的创建方式极为特别,不需要用到 new XXX(当然也可以用这种方式创建), 但是却大量出现在我们的代码中,那就是 String 类.作为日常中使用频率最高的类,它是那么普通,普通到我们从来都不会

java中的URLEncoder和URLDecoder类的联系与区别

今天碰到了这个问题,就查找了些资料总结下:java中的URLEncoder和URLDecoder类的联系与区别. 首先说这两者的联系与区别: URLEncoder是编码,URLDecoder是解码.两者的转换过程刚好是相反的.URLEncoder该类包含了将 String 转换为 application/x-www-form-urlencoded MIME 格式的静态方法:URLDecoder该类包含了将 String 从 application/x-www-form-urlencoded MI

【转 Java 中的内部类和匿名类

 Java 中的内部类和匿名类 2008-10-16 13:47:41 标签:Java 内部类 匿名类 休闲 职场 Java 中的内部类和匿名类* 为什么需要内部类? Java 内部类有什么好处?为什么需要内部类? 首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法的名称,参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口.由于内部类对外部类的所有内容都是可访问的,所以这样做可以完成所有你直接实现这个接口的功能. 不过你可能要质疑,更改一

讲说问题:|和||的区别以及&和&&的区别。2、Java中的数据类型分几类?基本数据类型有哪些?

|和||的区别以及&和&&的区别. |或 为或运算 判断为逻辑或 || 为短路或 只有逻辑判断 当左侧为真不再继续判断 &与 为与运算 判断为逻辑与 &&为短路与 当左侧为假不再继续判断 java中的数据类型分几类? 分为基本数据类型和引用数据类型 基本数据类型有8种 引用数据类型 是指如数组 字符串 集合等 也可以是用户自定义的类型.如Person Phone等 原文地址:https://www.cnblogs.com/qingyundian/p/8416

java总结第四次//常用类

六.常用类 主要内容:Object类.String类.Date类.封装类 (一)Object类 1.Object类是所有Java类的根父类 2.如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类 public class Person { ... } 等价于: public class Person extends Object { ... } (二)==操作符与equals方法 ==操作符: 引用类型比较引用(是否指向同一个对象): Person p1=new P