JavaSE入门---数据类型与变量

数据类型

在Java中,数据类型基本分为俩类:基本数据类型和引用数据类型
基本数据类型分为四类八种

基本数据类型

四类:整型、浮点型、字符型、布尔型。
八种:
在这里插入图片描述

特别说明:每种基本数据类型都有其对应的包装类,即:
在这里插入图片描述
包装类的出现是因为:Java是一个面向对象的编程语言,但是他的八种数据类型却不是面向对象的,为了使用方便和解决这个不足,在设计类时都为每个基本数据类型设计了一个类进行代表。

包装类的用途,主要有俩个
1.作为和基本数据类型对应的类 类型存在,方便设计到对象的操作。
2.包含每种数据类型的相关属性,如最大值、最小值以及相关操作方法等。

注:
1.不管是在32位系统还是在64位系统,int都占4个字节,long都占8个字节
2.整形和浮点型都是带有符号的
3.整形默认为int 浮点型默认为double

引用数据类型

引用数据类型包括:String类、接口、枚举等。

常量

字面常量的分类:
1.字符常量:由单引号引起来的单个字符,如:’A‘,’8‘
2.字符串常量:有“ ”引起来的,比如“hello”、“123456”等。
3.整形常量:程序中直接写的数字(没有小数点),如10、1000
4.浮点数常量:程序中直接写的小数,如3.14、9.99
5.布尔常量:只有两种:true(真)、false(假)
6.空常量:null

变量

在程序中,除了有始终不变的常量外,有些内容可能会经常改变,比如:人的年龄、身高、成绩分数、数学函数的计算结果等,对于这些经常改变的内容,在Java程序中,称为变量。而数据类型就是用来定义不同种类变量的。

定义变量的语法格式为:数据类型 变量名 = 初始值;

变量类型

1.整型变量

1.1 定义整型变量

//方式一:在定义时给出初始值
        int a = 10;
//方式二: 在定义时没有初始值 但是在使用前必须赋值
        int b;
        b = 10;

注:
1.int不管在什么系统下都是4字节
2.在给int变量设置初始值的时候,不能超过int的表示范围

1.2 定义长整型变量

//方式一:直接定义
        long a = 10;
//方式二:在数值后加标识  与int类型的变量进行区分
        long b = 10L;
        long c = 10l;

注:

  1. long不管在什么系统下都是8字节
  2. long变量的初始值后加L或者l 推荐加L

1.3 定义短整型

        short a = 10;

注:
1.short不管在什么系统下都是2字节
2.使用时不要超过short能表示的范围(使用较少)

1.4 定义字节型变量

        byte a = 10;

注:

  1. byte不管在什么系统下都是1字节
  2. byte的范围是:-128 ~ 127

2.浮点型变量

2.1 定义单精度浮点型

        float a = 0.1f;
        float b = 0.1F;
        //输出结果 0.1

注:

  1. float变量的初始值后加f或者F 推荐加f
  2. float表示的精度范围较小,因此一般用到浮点数都会使用double

2.2 定义双精度浮点型

        double a = 1.1;
        System.out.println(a*a);
        //输出的结果是 1.21?
        //输出结果:1.2100000000000002

注:

  1. 浮点数与整数在内存中的存储规则不同,不能单纯使用2^n来计算
  2. double类型的内存布局遵守IEEE 754标准(准确定义了单精度和双精度浮点格式),要求在有限的内存空间内表示可能无限的小数,势必会存在一定的精度误差,因此浮点数是个近似值,并不是准确值。

3.字符型变量

        char a = 'A';
        char b = 'a';
        char c = '1';
        char d = '啊';

注: 计算机中字符本质上是一个整数。在C语言中使用ASCII表示字符 而在Java中用Unicode表示字符

4.布尔类型变量

        boolean a = true;
        boolean b = false;

注:

  1. boolean类型的变量只有俩种取值,true表示真 false表示假
  2. Java的boolean类型和int不能转换,不存在1表示真、0表示假这样的用法

类型转换

Java 作为一个强类型编程语言, 当不同类型之间的变量相互赋值的时候, 会有教严格的校验。当参与运算数据类型不一致时,就会进行类型转换。Java中类型转换主要分为两类:自动类型转换(隐式) 和 强制类型转换(显式)。

自动类型转换(隐式)

自动类型转换:代码不需要经过任何处理,编译器会自动进行处理。

特点:数据范围小的类型转为数据范围大的类型时会自动进行。

//示例一:
        int a = 10;
        long b = 10L;
        b = a;   //a的范围小 b的范围大  先将a的类型转换为long 然后进行赋值
        a = b    //a的范围小 b的范围大  将大数存储在小的内存空间会有数据丢失  不安全
//示例二:
        float a = 3.14f;
        double b = 3.14;
        b = a;    //a的范围小 b的范围大  先将a的类型转换为double 然后进行赋值
        a = b;    //a的范围小 b的范围大  将大数存储在小的内存空间会有数据丢失  不安全

强制类型转换(显式)

强制类型转换:当进行操作时,代码需要经过一定的格式处理,不能自动完成。

特点:数据范围大的到数据范围小的。

		int a = 10;
        long b = 100L;
        b = a; // int-->long,数据范围由小到大,隐式转换
        a = (int)b; // long-->int, 数据范围由大到小,需要强转  否则编译失败

注:

  1. 不同的数字类型的变量之间赋值,表示范围较小的类型能隐式转换成表示范围较大的类型
  2. 如果需要把表示范围较大的类型转换成表示范围较小的类型,需要强制类型转换 但是可能会丢失数据、丢失精度;
  3. 强制类型转换不一定能成功,不相干的类型不能互相转换。

类型提升

不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的。

		int a = 10;
        long b = 20;
        int c = a + b; //  编译出错: a + b -->int + long--> long + long 赋值给int时会丢失数据
        long d = a + b; // 编译成功: a + b --> int + long--->long + long 赋值给long

注:

  1. 不同类型的数据混合运算,范围小的会提升为范围大的
  2. 对于short、byte这种比4个字节小的类型,会先提升为4个字节的int 再参与运算

字符串类型

在Java中使用String类定义字符串类型。(在这里做简单介绍,后面详细介绍)

		String s1 = "hello";
        String s2 = "world";

常用的三个字符串操作:

		//一.字符串拼接
        String s3 = s1 + s2;
 		//二.将int转为String
        int num = 10;
        String s1 = String.valueOf(num);
		//三. 将String转为int
        String s1 = "10";
        int a = Integer.parseInt(s1);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面向对象编程是一种编程范式,它将程序的构建和设计思路以面向对象的方式进行组织和实现。在Java中,面向对象编程是基于Java SE(Standard Edition)的一种编程方式。第07讲主要介绍了面向对象编程中的一些基本概念和关键术语。 在面向对象编程中,我们将程序中的数据和对数据的操作(方法)封装在一起,形成一个对象。对象由两部分构成:属性和方法。属性是用来描述对象的特征,而方法则是对象可以执行的操作。对象之间通过消息(方法调用)进行通信和交互。面向对象的核心思想是通过封装、继承和多态实现程序的复用和扩展。 封装是面向对象编程中的一个重要概念,它指的是将类的属性和方法进行封装,使得外部无法直接访问和修改对象的内部状态,只能通过公共的方法来操作属性和执行方法。封装提供了一种将数据和行为组合在一起的方式,可以保护数据的完整性和安全性。 继承是面向对象编程中的另一个重要概念,它指的是通过定义一个新的类来继承现有类的属性和方法。通过继承,子类可以继承父类的属性和方法,并可以在此基础上进行扩展和修改。继承提供了一种代码复用的机制,可以减少重复编码的工作量。 多态是面向对象编程的又一个重要概念,它指的是同一类型的对象在不同的情况下可以有不同的表现形式。多态通过方法的重写和方法的重载实现。方法的重写指的是在子类中重新定义和实现父类的方法,方法的重载指的是在同一个类中可以定义多个同名但参数列表不同的方法。 总结来说,面向对象编程是一种将程序组织和设计思路以对象为中心的编程方式。在JavaSE中,我们可以通过封装、继承和多态来实现面向对象编程的目标。封装可以提高程序的可维护性和可复用性,继承可以减少重复编码的工作量,多态可以灵活地操作对象。掌握这些基本概念和关键术语,可以帮助我们更好地理解和应用面向对象编程的思想。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值