类比C语言初识Java(1)

1.常量

2.数据类型与变量

3.类型转换

4.类型提升

1.常量

Java中通过sout+enter进行输出,我们可以先随意输出一些数据。

public class Blogdemo {
    public static void main(String[] args) {
        System.out.println(3.14);
        System.out.println(3);
        System.out.println(true);
        System.out.println('a');
        System.out.println("abc");
    }
}

输出的这些数据在程序运行期间并不会改变,他们被统一称为常量。

这些就是输出结果,大部分都与C语言相同,如整形、浮点型等。而比较陌生的布尔型、字符串型,我们将在数据类型中讲解。

2.数据类型与变量

Java中数据类型总体分为两部分:基本数据类型、引用数据类型。

基本数据类型包括布尔型、字符型、字节型、短整型、长整型、整型、单/双精度浮点型。

引用数据类型包括数组、字符串等。引用数据类型我们稍后介绍,先看基本数据类型。

 (1)整型 短整型 双精度浮点型 字符型

   这些与C语言基本相同,定义变量时与C语言也几乎一样。

        int a=1;
        short b=1;
        double c=1.0;
        char d='d';

其中整型占四个字节,短整型占两个字节,双精度浮点数占八个字节,字符型占两个字节,我们也能类比C语言轻松算出他们的范围。且不论是十六位还是三十二位整形都占四个字节,其他一样。这就是Java环境的稳定与优点。而无论整型还是浮点型默认是带符号的。类似于c语言中signed int等。

(2)单精度浮点型

Java中整型默认是int型,浮点型默认是double型。而我们想要定义单精度浮点型变量,需要在末尾加一个‘L’(大小写均可,一般加大写)。如:

float a=10L;

一般无特殊要求,我们均用double;

(3)字节型

顾名思义,它只占一个字节。范围是-127~128,相比起来更加节省空间。

(4)布尔类型

这是Java所独有的数据类型。在C语言中,我们用0表示假,非0表示真,而通常我们用1表示真。在Java中,没有这样的概念,我们直接用true表示真,false表示假,而true和false被称为布尔型数据类型。它可以被定义成变量,如:

boolean a=true;

以上就是基本数据类型。

(5)字符串类型

引用数据类型我们先学习字符串数据类型,其余的我们后面再介绍。C语言中我们用字符数组来定义字符串,非常麻烦,在进行传参,修改等操作时十分吃力。所以Java中,我们有字符串这样一个数据类型来方便我们操作。如:

String a="abcde";

此时a是字符串数据类型。

3.类型转换

类型转换分为隐式类型转换和显示类型转换。简单来说就是小转大可以隐式,大转小必须显式。

(1)隐式类型转换

隐式类型转换又称自动类型转换,是我们java编译器自己进行,不需要人工进行操作。而它只会在把数据范围小的数转换为数据大的数时进行。如:

public static void main(String[] args) {
        int a=10;
        long b=a;
        System.out.println(b);
    }

此时编译器并未报错,因为long比int范围更大,编译器自己进行了类型转换。

(2)显示类型转换

我们再看下面一个代码:

我们发现编译器报错,这是因为long类型范围更大,编译器无法自动转换,类比C语言,此时我们若想转换,需要自己进行显式类型转换(强制类型转换),如:

此时编译器不再报错,我们将long类型的a强制转成了int类型。需要注意,强制类型转换需要承受数据丢失的风险,当我们进行转换,便代表我们对丢失数据是认可的。

值得一提的是,布尔类型变量不能进行强制转换,很明显,true和3.14这种完全不同,自然无法进行转换。

4.类型提升

简单来说,不同类型数据之间相互运算时,数据类型小的会被提升为大的。下面我们看一个例子:

int c报错,而long d没有,这是因为在计算a+b时,a被提升为long类型进行计算,a+b的结果也自然也就是long类型,因此需要用long类型的d进行接收。

在实际计算中,程序会将小于四个字节的内容(short/byte)提升为int类型进行计算 。

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值