java基本数据类型

java基本数据类型

3.1 java基本数据类型

3.1.1整数

    整数表示没有小数的数值,允许是负数。

Java提供四种整型

int

4B

-2147483648~2147483647

short

2B

-32768~32767

long

8B

-9 233 372 036 854 755 808~9 223 372 036 854 775 807

byte

1B

-128~-127

在java中整数的取值范围与平台无关,且java保证所有的机器上的远行结果相同。

长整型数值的一个后缀L。十六进制有一个前缀0x。八进制有一个前缀是0。一般不建议使用八进制,容易混淆。

 

3.1.2 浮点数

浮点数用于表示小数部分的数值。

java提供两种浮点数

float                 4B

double                8B

 

double的精度是float的两倍。但是,float只是用在需要快速处理或者存储大量的数据时适用。例如:个人的年薪可以用float表示,但是公司总裁的年薪可能就不够了。

jdk5.0中,可以用十六进制表示浮点数。例如:0.125表示为0x1.0p-3,用p表示指数。而不是用e表示。

虽然浮点数表示的数值够大,但还是会出错和溢出的情况。例如:1/0 负数开平方等等。因此,我们定义了三个常量Double.POSITIVE_INFINITY、Double.NEGATIVE_INFINITY、Double.NaN来表示正无穷大、负无穷大、Not a Number。正整数/0=正无穷大,0/0=NaN。测试一个结果是不是NaN不能这样测试:

   if (x==Double.NaN)

应该使用Double.isNaN方法

   if (Double.isNaN(x))//

注意:浮点数不适用于禁止出现舍入误差的金融计算中。例如:System.out.println(2.0-1.1)将打印出0.899999999999,而不是0.9。出现这种问题的原因是浮点数值是采用二进制系统表示的,而在系统中无法精确的表示分数1/10。

需要在计算中不含有任何舍入误差,就应该使用BigDecimal类。

将一个类标记为strictfp  ,那么这个类中的所有方法都要使用严格的浮点数计算,

将一个方法标记为strictfp,那么这个方法就会使用严格的浮点数计算,

public static strictfp void main(String [] args)

3.1.3大数值BigDecimal BigInteger

java.math中包含两个很有用的类BigDecimalBigInteger

1.   BigInteger

可以处理任意长度的整数运算, 即不可变的任意精度的整数

 

BigInteger a=BigInteger.valueOf(100);

使用静态方法valueOf可以把普通的数值转换为大数值。

但是,大数值运算不可以使用去处符+ - * /,而是使用

BigInteger c=a.add(b); //c=a+b //BigDecimal 加法

BigInteger c=a. subtract (b); //c=a+b//BigDecimal 减法

BigInteger c=a. multiply (b); //c=a*b//BigDecimal 乘法

BigInteger c=a. divide (b); //c=a/bBigDecimal 除法

BigInteger d=c.multiply(b.add(BigInteger.valueOf(2)));//d=c*(b+2)

2. BigDecimal

不可变的、任意精度的有符号十进制数。BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)

可以处理任意长度的浮点数运算。

BigDecimal add(BigDecimal val) //BigDecimal 加法

BigDecimal subtract (BigDecimal val) //BigDecimal 减法

BigDecimal multiply (BigDecimal val)  //BigDecimal 乘法

BigDecimal divide (BigDecimal val,RoundingMode mode)  

   // BigDecimal 除法必须提供舍入方法 如:RoundingMode.HALE_UP就是四舍五入方式。

 

int compareTo(BigDecimal val)

 

//  a.compareTo(b) 比大小。如果 a=b返回0,a>b返回正数 a<b返回负数

 

static BigDecimal valueOf(long x)

static BigDecimal valueOf(long x,int sacle)

//返回一个值为x或x/10scale

 

3.1.4 字符和字符串

1.char类型

 char类型是用UTF-16编码描述的一个代码单元。如果确实有必要在程序中对UTF-16代码单元进行操作你才可以使用char类型。

2. 转义字符

 

3. String

String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例来实现。字符串是常量;它们的值在创建之后不能改变。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享它们。例如:

    String str = "abc";

 

等效于:

    char data[] = {'a', 'b', 'c'};

    String str = new String(data);

 

String g=”Hello”;

int b=g.length();//b=5

int cpCount=g.codePointCount(0,g.length()); //返回代码点数量

char first=g.charAt(0); //first is ‘H’

//---------------

int cp=g.codePointAt(i);

if (Character.isSupplementaryCodePoint(cp)) i=+2

else i++;

//遍历一个字符串

3.3        布尔类型

boolean只有两个值 false和true,用来判断逻辑条件。而且这两个值不能与整型进行转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值