Java一共有八种基本数据类型

  • 整数类型
    • 1字节:byte
      • 表数范围为-128(-27)~127(27-1)
    • 2字节:short
      • -32768(-215)~32767 (215-1)(大约为32万)
    • 4字节:int
      • -2147483648(-231)~2147483647(231-1)(大约为21亿)
    • 8字节:long
      • -263~263-1
  • 字符类型
    • 2字节:char
  • 浮点类型
    • 4字节:float
    • 8字节:double
  • 布尔类型
    • boolean

自动类型转换

Java的所有字符型变量可以相互转换,如果系统支持把某种类型的变量直接赋值给另一种基本类型的变量,这种方式称为自动类型转换.当把一个表数范围小的数值或变量直接赋值给另一个表数范围大的变量时,系统可以进行自动类型转换;否则就需要强制转换.

支持自动类型转换的类型为:byte→short→int→long→float→double和char→int→long→float→double

字符串和任何基本类型的值进行连接运算时,基本类型的值都会自动转化为字符串类型

强制类型转换

当需要把箭头右边的类型转换为箭头左边的类型时,必须进行强制类型转换强制类型转换的语法格式是:(targetType)value,强制类型转换的运算符是().转换时要注意数据溢出问题.

字符串类型与其他类型的转换

其它类型向字符串的转换

  1. 调用类的串转换方法:X.toString();
  2. 自动转换:X+“”;
  3. 使用String的方法:String.valueOf(X);

字符串作为值,向其它类型的转换

  1. 先转换成相应的封装器实例,再调用对应的方法转换成其它类型

例如,字符中“32.1”转换double型的值的格式为:new Float(“32.1”).doubleValue()。

也可以用:Double.valueOf(“32.1”).doubleValue()

  1. 静态parseXXX方法
1
2
3
4
5
6
7
String s = "1";
byte b = Byte.parseByte( s );
short t = Short.parseShort( s );
int i = Integer.parseInt( s );
long l = Long.parseLong( s );
Float f = Float.parseFloat( s );
Double d = Double.parseDouble( s );
  1. Character的getNumericValue(char ch)方法

返回指定的 Unicode 字符表示的 int 值。

其它实用数据类型转换

Date类与其它数据类型的相互转换

整型和Date类之间并不存在直接的对应关系,只是你可以使用int型为分别表示年、月、日、时、分、秒,这样就在两者之间建立了一个对应关系,在作这种转换时,你可以使用Date类构造函数的三种形式

①Date(int year, int month, int date):以int型表示年、月、日

②Date(int year, int month, int date, int hrs, int min):以int型表示年、月、日、时、分

③Date(int year, int month, int date, int hrs, int min, int sec):以int型表示年、月、日、时、

分、秒

在长整型和Date类之间有一个很有趣的对应关系,就是将一个时间表示为距离格林尼治标准时间1970年1月1日0时0分0秒的毫秒数。对于这种对应关系,Date类也有其相应的构造函数:Date(long date)。

获取Date类中的年、月、日、时、分、秒以及星期你可以使用Date类的getYear()、getMonth()、getDate()、getHours()、getMinutes()、getSeconds()、getDay()方法,你也可以将其理解为将Date类转换成int。

而Date类的getTime()方法可以得到我们前面所说的一个时间对应的长整型数,与包装类一样,Date类也有一个toString()方法可以将其转换为String类。

有时我们希望得到Date的特定格式,例如20020324,我们可以使用以下方法,首先在文件开始引入,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.text.SimpleDateFormat;

import java.util.*;

java.util.Date date = new java.util.Date();

//如果希望得到YYYYMMDD的格式

SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMDD");

String dateFormat=sdf.format(date);

//如果希望分开得到年,月,日

SimpleDateFormat sy=newSimpleDateFormat("yyyy");

SimpleDateFormat sm=new SimpleDateFormat("MM");

SimpleDateFormat sd=new SimpleDateFormat("dd");

String syear=sy.format(date);

String smon=sm.format(date);

String sday=sd.format(date);

js中将Data转换成String类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//对Date的扩展,将 Date转化为指定格式的String

// 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2个占位符

// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3位的数字)

//eg:

(new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==>2006-07-02 08:09:04.423

(new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==>2009-03-1020:09:04

(new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==>2009-03-10 周二 08:09:04

(new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss")==> 2009-03-10 星期二 08:09:04

(new Date()).pattern("yyyy-M-d h:m:s.S") ==>2006-7-2 8:9:4.

字符型转时间型

(2005-10-1)

reportdate_str = “2005-10-01”;

reportdate_str = reportdate_str + “ 00:00:00.0”

reportdate = java.sql.Timestamp.valueOf(reportdate_str);