【Java基础系列】第2章 数据类型和运算符(2)

2.3 基本类型(四类八种)

2.3.1 整数类型

  ① byte   字节型                1 byte=1字节=8bit        [-27,27-1]

  ② short  短整型                1 short=2字节=16bit     [-215,215-1] 

  ③ int    整型(默认类型)     1 int= 4字节=32bit        [-231,231-1]

  ④ long   长整型                1 long=8字节=64bit      [-263,263-1]   后面加L或l

  1. 整数类型表示形式:

                二进制:0 、 1

                八进制:0开头  0-7

                十进制:0-9

                十六进制:0x开头  0-9,A-F

  1. 进制数间的转换:

①二进制转八进制:三位转一位

例:二进制     10  110  101

       八进制      2     6      5

②二、八、十六进制转十进制:乘权求和

例:二进制     00101101

       十进制     0*2^7+0*2^6+1*2^5+0*2^4+1*2^3+1*2^2+0*2^1+1*2^0=45

例:八进制     0476

       十进制     4*8^2+7*8^1+6*8^0=318

例: 十六进制   0x12F

        十进制     1*16^2+2*16^1+15*16^0=303

③二进制转十六进制:四位转一位

例:  二进制     0101 0111

         十六进制    5      7

③十进制转二、八、十六进制:整数部分:除2、8、16取余数(逆序)

小数部分:乘2、8、16取整数(顺序)

例:  十进制     23.125

         二进制     00010111.001

                        

2.3.2 浮点类型   

①float        单精度浮点  (定义时要在后面加F或者f)   1 float=4字节=32bit

②double    双精度浮点(默认类型)                              1 double=8字节=64bit

小数形式:   如 :3.14159

科学计算形式: e(E)    如:0.125e3  0.125保留三位小数

Java提供了3个特殊的浮点数值:

正无穷大:一个正数除以0将得到正无穷大,正无穷大通过Double或Float的POSITIVE_INFINITY表示.

负无穷大:一个负数除以0将得到负无穷大,通过Double或Float的NEGATIVE_INFINITY表示。

非数:0.0除以0.0或对一个负数开方将得到一个非数

2.3.3 字符型     

①char : 表示单个字符用赋值,一个汉字或者汉字符号两个字节 1 char=2字节=16bit 

字符型通常用于表示单个的字符,字符常量必须使用单引号(‘  ’)括起来,Java 语 言使用16位的unicode字符集作为编码方式。

字符型常量有如下3种表示形式:

  • 直接通过单个字符来指定字符型常量,例如’A’;
  • 通过转义字符表示特殊字符型常量,直接使用Unicode值来表示字符型常量,例如‘\n’;
  • 格式量’\uXXXX’;

例子:

public class StringUnicodeText{
    public static void main(String[] args){
        String name="小明";
        for(int i = 0 ; i< name.length(); i++){
            //获取该下标的字符
            char c = name.charAt(i); 
            //将该字符转换为十六进制以String接收
            String s = Integer.toHexString(c);
            //可以将\u+16进制数  输出该字符
            System.out.println(s); 
        }
    }
}

2.3.4 布尔型   

①boolean  只有true和false(默认false)          1 boolean=1字节=8bit

布尔型中有一个boolean类型,用于表示逻辑上的“真”或“假”。在Java语言中, boolean类型的数值只能是true或false,不能用0或者非0来代表。

2.4 引用类型

又叫面向对象类型,在Java里面,任何事物(对象)都可以作为一个数据类型,比如定义的接口、类(class型事物)等等,String类型,Object类型是常用的系统引用类型。

2.5 基本数据类型转换

2.5.1 自动转换(精度从低到高)

char→int→long→float→double

short→int→long→float→double

表数范围小的会向表数范围大的自动转换,沿箭头方向;

基本数据类型与字符串类型运算也会自动转换,如:int a=2;String s=a+”454”;

                    

2.5.2 强制转换(精度从高到低)

byte←short←char←int←long←float←double

表数范围大的可以向表数范围小的按箭头方向强制转换,但是有时会溢出或者转换 到浮点类型时会忽略精度,强制类型转换格式:(targetType)value

如:double d=5.2222;int a=(int) d;(结果a=5)

2.5.3 方法转换:

String → int                  int a=Integer.parseInt(字符串);

int    → String               String s=String.valueOf(int值);

Object → double          double d=Double.parseDouble(Object数据.toString())

 (Object数据先toString()转换为String后再转换为double)

2.5.4 包装类型转换:(字符串转型)  

在通常情况下,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。
例如:

int-->Integer

int i=0;

Integer integer = Integer.ValueOf(i);


Integer-->int

Integer integer = new Integer(i);

Int i = integer.intValue();

Java为8种基本类型都提供了对应的包装类:boolean对应Boolean、byte对应Byte、short对应Short、int对应Integer、long对应Long、char对应Character、float对应Float、double对应Double,8个包装类都提供了一个parseXxx(String str)的静态方法用于将字符串转换成基本类型。

2.5.5 表达式类型的自动提升   

当一个算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升规则:

所有的byte类型、short类型和char类型将被提升到int类型。

整个算术表达式的数据类型自动控制提升到与表达式中最高等级操作数同样的类型。

如:short a=1;

Int b =a+1; //此处就发生了转换

2.6 直接量

直接量是指在程序中通过源代码直接指定的值。能指定直接量的通常只有3种类型:基本类型、字符串类型、null类型

int类型的直接量:在程序中直接给出的整型数值,可分为二进制、十进制、八进制、十六进制4种

long类型的直接量:在整型数据后l或L

double类型的直接量:直接给出一个标准小数形式或者科学计数法形式,5.34F、3.14E5f

boolean类型的直接量:只有true和false

char类型:单引号、转义字符和Unicode的字符

String类型:一个用双引号括起来的字符序列

null类型:这个类型的直接量只有一个值,即null

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__Yvan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值