包装类
基本数据类型:如 int、float、double、boolean、char 等。它们并不具备对象的特性,比如不能调用方法。为了让基本数据类型也能具有对象的特性,java为每个基本数据类型提供了包装类。
基本类型和包装类之间的对应关系:
Integer
Integer 包装类的构造方法:
int a = 10;
Integer m = new Integer(22);
Integer n = new Integer("100");
- Integer包装类的方法
// 定义int类型变量,值为86
int score1 = 86;
// 创建Integer包装类对象,表示变量score1的值
Integer score2=new Integer(score1);
// 将Integer包装类转换为double类型
double score3=score2.doubleValue();
// 将Integer包装类转换为float类型
float score4=score2.floatValue();
// 将Integer包装类转换为int类型
int score5 =score2.intValue();
System.out.println("Integer包装类:" + score2);
System.out.println("double类型:" + score3);
System.out.println("float类型:" + score4);
System.out.println("int类型:" + score5);
Java 中基本类型和包装类之间的转换
基本类型和包装类之间经常需要互相转换
在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了
装箱
把【基本类型】转换成【包装类】,使其具有对象的性质,又可分为【手动装箱】和【自动装箱】。
int i = 10;
Integer x = new Integer(i); // 手动包装
Integer y = i; // 自动包装
拆箱
和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱.
Integer j = new Integer(9);
int m = j.intValue(); // 手动拆箱
int n = j; // 自动拆箱
// 定义double类型变量
double a = 91.5;
// 手动装箱
Double b = new Double(a);
// 自动装箱
Double c = a;
System.out.println("装箱后的结果为:" + b + "和" + c);
// 定义一个Double包装类对象,值为8
Double d = new Double(87.0);
// 手动拆箱
double e = d.doubleValue();
// 自动拆箱
double f = d;
System.out.println("拆箱后的结果为:" + e + "和" + f);
Java 中基本类型和字符串之间的转换
基本数据 => 字符串
- 使用包装类的toString()方法
- 使用String类的valueOf()
- 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串
int c = 10;
String str1 = Integer.toString(c);
String str2 = String.valueOf(c);
String str3 = c + "";
字符串 => 基本数据
- 调用包装类的 parseXxx 静态方法
- 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱
String str = "8";
int d = Integer.parseInt(str);
int e = Integer.valueOf(str);
double m = 78.5;
//将基本类型转换为字符串
String str1 = String.valueOf(m); ;
//String str1 = String.toString(m);
System.out.println("m 转换为String型后与整数20的求和结果为: "+(str1+20));
String str = "180.20";
// 将字符串转换为基本类型
Double a = Double.valueOf(str) ;
//Double a = Double.parseDouble(str);
System.out.println("str 转换为double型后与整数20的求和结果为: "+(a+20));
ps: 其他基本类型与字符串的相互转化这里不再一一列出,方法都类似
Date
在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类。
使用 Date 类的默认无参构造方法创建出的对象就代表当前时间,我们可以直接输出 Date 对象显示当前的时间,显示的结果如下:
- 按指定的格式进行显示,如 2014-06-11 09:22:30 ,那该怎么做呢
Date d5 = new Date();
System.out.println(d5); // Fri Aug 17 22:03:51 CST 2018
SimpleDateFormat d1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String today = d1.format(d5); // 2018-08-18 07:29:38
System.out.println(today);
// 使用format()方法将日期转换为指定格式的文本
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 创建Date对象,表示当前时间
Date now =new Date();
// 调用format()方法,将日期转换为字符串并输出
System.out.println(sdf1.format(now)); //2018年08月18日 07时29分38秒
System.out.println(sdf2.format(now)); //2018/08/18 07:29
System.out.println(sdf3.format(now)); //2018-08-18 07:29:38
- 使用 parse() 方法将文本转换为日期
// 使用parse()方法将文本转换为日期
String d = "2018年08月10日 10:29:38";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
// 调用parse()方法,将字符串转换为日期
Date date = sdf.parse(d);
System.out.println(date);
- 完整代码
package myDate;
import java.text.SimpleDateFormat; // 使用 Date 类时需要导入 java.util 包,使用 SimpleDateFormat 时需要导入 java.text 包
import java.text.ParseException; // 调用 SimpleDateFormat 对象的 parse() 方法时可能会出现转换异常,即 ParseException ,因此需要进行异常处理
import java.util.Date;
public class test {
public static void main(String[] args) throws ParseException{
// TODO Auto-generated method stub
Date d5 = new Date();
System.out.println(d5); // Fri Aug 17 22:03:51 CST 2018
SimpleDateFormat d1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String today = d1.format(d5); // 2018-08-18 07:29:38
System.out.println(today);
// 使用format()方法将日期转换为指定格式的文本
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 创建Date对象,表示当前时间
Date now =new Date();
// 调用format()方法,将日期转换为字符串并输出
System.out.println(sdf1.format(now)); //2018年08月18日 07时29分38秒
System.out.println(sdf2.format(now)); //2018/08/18 07:29
System.out.println(sdf3.format(now)); //2018-08-18 07:29:38
// 使用parse()方法将文本转换为日期
String d = "2018年08月10日 10:29:38";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
// 调用parse()方法,将字符串转换为日期
Date date = sdf.parse(d);
System.out.println(date);
}
}
Calendar类
Date 类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用 Calendar 类进行时间和日期的处理。
package com;
import java.util.Calendar;
public class test {
public static void main(String [] args) {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;
int day = c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
System.out.println("当前时间:"+ year +"年"+month+"月"+day+"日 "+hour+": "+ minute+": "+second+"");
}
}
package com;
import java.util.Date;
import java.util.Calendar;
public class test {
public static void main(String [] args) {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;
int day = c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
System.out.println("当前时间:"+ year +"年"+month+"月"+day+"日 "+hour+": "+ minute+": "+second+"");
Date date = c.getTime(); // 将calendar对象转换为date对象
System.out.println(date);
Long time = c.getTimeInMillis(); //获得当前毫秒数
System.out.println(time);// 1534553739595
}
}
Math类
使用 Math 类操作数据
Math 类位于 java.lang 包中,包含用于执行基本数学运算的方法, Math 类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类名.方法名,如: Math.round();
package com.math;
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
double a = 12.81;
int b = (int)a; // 强制类型转换
System.out.println("强制类型转换"+b);
long c = Math.round(a);
System.out.println("四舍五入"+c);
double d = Math.floor(a);
System.out.println("向下取整floor"+d);
double e = Math.ceil(a);
System.out.println("向上取整ceil"+e);
double x = Math.random();
System.out.println("随机数[0,1)"+x);
int f = (int) (Math.random() * 99);
System.out.println("随机数[0,99)"+f);
// 定义一个整型数组,长度为10
int[] nums = new int [10];
//通过循环给数组赋值
for (int i = 0; i < nums.length; i++) {
// 产生10以内的随机数
int n = (int) (Math.random() * 10);
nums[i] = n;// 为元素赋值
}
// 使用foreach循环输出数组中的元素
for ( int num : nums ) {
System.out.print(num + " ");
}
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。