【跟我学Java就对了!!!】:数据类型(变量和常量)

1.变量和类型

(1)变量

变量就和c语言的概念是一样的。变量在程序运行时,数值是可以改变的。

什么类型的变量就可以储存对应类型的数据,比如int a = 10;a是一个变量,a储存了整型数据。

①作用域

要找作用域,就找{}找它在哪个{}里面,它的作用域就是那个{}包含的内容。

②命名规则

a.以数字、字母、下划线、$组成。

b.变量名采用小驼峰形式命名(第二个单词开始首字母大写 ,比如maxNumSize)。

c.不能与关键字同名。

d.数字不能开头。

e.变量名是区分大小写的(num和Num不是同一个变量)

注意:

变量定义的时候,如果不赋值,是没办法打印的,不像c语言,c语言如果不给值,默认是0,但java不一样,会报错。

(2)内置类型

java所有类型的大小都和平台没有关系。所有类型的赋值都不能超过它所对应的范围。

①int【integer】

在java当中,不管我们是多少位的操作系统,int都是4个字节。java具有跨平台和可移植性,java的代码是跑在jvm上的。所以我们在Windows写的代码,也可以在mac跑。也就是我们的.class文件,放到任何电脑,都可以直接跑起来。

Ⅰ.表示范围:

在java当中,所有的数都是有符号数。

public class test {
    public static void main(String[] args) {
        int a = Integer.MAX_VALUE;
        System.out.println(a);
        int b = Integer.MIN_VALUE;
        System.out.println(b);
    }
}

MAX_VALUE和MIN_VALUE是什么值呢,我们只需要用ctrl+鼠标左键点击MAX_VALUE就可以看到了。
在这里插入图片描述
这是我们打印输出的结果:
在这里插入图片描述
如果超过这个最大限度会发生什么呢?

        int a = Integer.MAX_VALUE+1;
        System.out.println(a);
        int b = Integer.MIN_VALUE-1;
        System.out.println(b);

结果是这样的:
在这里插入图片描述正数最大值加成了负数最小值。负数减成了最小值。

可见我们的int是这样形式的:
在这里插入图片描述

Ⅱ.int类型的转换:
a.int如何转换成string呢?
public class test {
    public static void main(String[] args) {
        int b = 10;
        String a = b+"";
        System.out.println("a="+a);
        String c = String.valueOf(b);
        System.out.println("c="+c);
    }
}

输出的结果是这样的:
在这里插入图片描述

②long【Long】

相当于int的加强版。

大小:8byte。(1位符号位,63位数据位)。

        long a = Long.MAX_VALUE;
        System.out.println(a);
        long b = Long.MIN_VALUE;
        System.out.println(b);

结果为:
在这里插入图片描述
用long定义的时候,我们一般在后面加一个L。
在这里插入图片描述

③byte【Byte】

字节类型是我们c语言当中没有的。byte是1个字节,8位,它可以表示正负数,第一位是符号位,接下来就是数据位。byte的取值范围是-128~127。所以我们赋值的时候一定要注意不能超过这个范围。

public class test {
    public static void main(String[] args) {
        byte b = 10;
        byte a = 11;
        byte c = a+b;
    }
}

在这里插入图片描述这里居然报错了!
那我们这样呢?
在这里插入图片描述这样又没有问题。
这是为什么呢?

b和a都是变量,编译器不知道变量相加会不会超过byte的范围,所以就报错了。还有一点原因就是,计算机在存储数据,存在整型提升(小于4byte都会被整型提升),就是都以整型的方式进行运算,我们的a和b存储到计算机里面的时候,都变成整型了,都变成4个字节的了,而我们的byte只有1个字节,所以分析byte c = a+b;我们想把大人塞到小孩子衣服里面,这是不可能的。而我们byte = 10+11;这样写的时候,10和11是常量,在编译的时候直接会被替换成21了。
在这里插入图片描述 这样也是不行的。
整型提升的意义就是提高运算速率。

④short【Short】

大小:2byte。表达范围是-32768~32767。

⑤float【Float】
public class test {
    public static void main(String[] args) {
        float a = 12.5;
    }
}

在c语言中我们这样做是可以编译的,但java是比较安全的语言。所以我们这样定义会出现报错。
在这里插入图片描述
在java里,12.5这种小数都会 被归为double类。double是8个字节,而float是4个字节。

所以我们定义的时候,要这样定义:

float a = 12.5f;

或者是进行强制类型转化:

float a = (float)12.5;

这两种方式都可以解决上述问题

⑥double【Double】

在计算机里,小数的精度是存在问题的。

所以当我们写如下程序时,会出现问题。

public class test {
    public static void main(String[] args) {
        double a= 1.1;
        double b = 1.1;
        double c = a*b;
        System.out.println(c);
    }
}

会出现如下结果:
在这里插入图片描述

⑦char【Character】

大小2byte。java当中char一定表示正数。

我们来写一段代码:

public class test {
    public static void main(String[] args) {
        char ch ='a';
        System.out.println(ch);
        char ch1 = '高';
        System.out.println(ch1);
        char ch2 = 98;
        System.out.println(ch2);
    }
}

输出的结果是这样的:
在这里插入图片描述
我们知道,汉字是占2个字节的。所以char在java里面是2个字节,这一点和c语言不太一样。

当我们输入数字的时候 ,输出的仍是字符。

那我们再试试输入负数呢

char ch =-8;这样会出现报错的。在这里插入图片描述

⑧boolean【Boolean】

布尔类型在java中要么取true,要么取false。**不是1或者0!**对于boolean的大小,没有明确规定。有的说是1bit,有的说是1byte。

c语言可没有布尔类型,c++、java有。在这里插入图片描述
int 类型是不可以赋值给boolean类型的。

(3)引用类型

①String

String str = "zzy-zbossz";

Ⅰ.拼接字符串
public class test {
    public static void main(String[] args) {
        String str  = "zzy";
        String str2 = "like";
        String str3 = "phy";
        String str4 = str+str2+str3;
        System.out.println(str4);
        System.out.println("zzy"+" "+"like"+" "+"phy");
    }
}

输出的结果是这样的:
在这里插入图片描述
还有一个就是字符串+数字,是把数字当做字符来凭借的,所以不会进行运算。

数字+字符串,是可以将前面的数字进行运算的。

Ⅱ.类型转换
a.String转换成int

方法一:

public class test {
    public static void main(String[] args) {
        String a = "11";
        int b = Integer.valueOf(a);
        System.out.println(b);
    }
}

输出结果是这样的:
在这里插入图片描述
注意:

这里的a必须要是全数字的字符串。

方法二:

public class test {
    public static void main(String[] args) {
        String a  = "11";
        int b = Integer.parseInt(a);
        System.out.println(b);
    }
}

结果是这样的:
在这里插入图片描述

2.常量

(1)final关键字修饰的常量

final int b = 20;这里的final相当于c语言中的const。final修饰的常量只能初始化一次,后续不能改。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值