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

news2025/2/23 11:49:51

文章目录

  • 数据类型
    • 基本数据类型
    • 引用数据类型
  • 常量
  • 变量
    • 变量类型
    • 类型转换
      • 自动类型转换(隐式)
      • 强制类型转换(显式)
    • 类型提升
  • 字符串类型

数据类型

在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);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1098483.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代理IP可以用于哪些实际场景?遇到问题如何解决

代理IP的应用场景非常广泛,可以在不同领域提供许多有用的功能。以下是关于代理IP应用场景的详细扩充,包括每个场景的优势和应用建议,以及在使用代理IP时可能遇到的问题和应对方法。 1.价格监控: 商业竞争很大程度上是价格竞争。在…

解决Maven依赖下载缓慢的问题(亲测管用)

解决Maven依赖下载缓慢 众所周知,欲练神功,必先自宫。最好的方式就是不用镜像,自己在本地下载一个稳定版本的Maven,以后每次用的时候直接在IDEA里面一导入就可以。(为了保险,在以下的步骤里配置了aliyun镜像…

高防CDN怎样保护网站安全的

在当今数字化时代,互联网安全问题日益严重。网络攻击和数据泄露威胁着个人隐私、企业机密以及关键基础设施的安全。在应对这些挑战方面,高防CDN(内容分发网络)崭露头角,它不仅提高了性能,还加强了网络安全。…

算法学习——贪心算法

目录 一,柠檬水找零 1.题目 2.题目接口 3.题目解题思路 二,将数组减半的最小操作数 1.题目 2.题目接口 3.解题思路及代码 三,摆动序列 1.题目 2.题目接口 3.解题代码及思路 一,柠檬水找零 1.题目 在柠檬水摊上&#xf…

Linux文件系统 struct file 结构体解析

文章目录 一、open系统调用1.1 简介1.2 files_struct1.2.1 简介1.2.2 init_files1.2.2 CLONE_FILES 1.3 源码分析1.3.1 get_unused_fd_flags1.3.2 do_filp_open1.3.3 fd_install 二、struct file简介三、其他参考资料 一、open系统调用 1.1 简介 NAMEopen, creat - open and …

手撸java对象拷贝工具类(赶快来试试)

今天心血来潮想自己手撸一个对象拷贝工具学习学习,感觉很不错,使用纯原生java,不依赖任何工具类,健壮性就不优化了。技术主要用到了反射和stream,赶快来试试,炒鸡好用! /*** 对象拷贝注入* 参数…

加权平均、EMD、小波等方法去噪效果对比

加权平均、EMD、小波等方法去噪效果对比 代码 整体代码如下 %% clear all; clc;load(data_filter120Hz.mat); %可自己生成随机噪声 fs1000;%采样频率是1000Hz %% %生成正弦波信号 tlinspace(0, length(data)/fs-1/fs, length(data)); y1 15*sin(2*pi* 2.8 *t);%生成频率为2.…

如何选择一款适合的工单管理系统?“的修”工单系统有什么优势?

在如今快节奏的单位环境中,一个高效、便捷的工单管理系统对于单位的重要性不言而喻。面对琳琅满目的工单管理系统,单位该如何选择最合适的一款呢?本文将详细评测“的修”工单管理系统,带您了解它的强大功能和优势,帮您…

游戏缺少dll文件用什么修复?dll多种修复方法指南

在玩游戏时,有时候可能会遇到游戏缺少dll文件的问题。dll文件是动态链接库的缩写,它包含了一些函数和资源,游戏运行需要依赖这些文件。如果缺少了某个dll文件,游戏就可能无法正常运行。那么游戏缺少dll文件用什么修复?…

C语言---预处理详解

1.预定义符号 在C语言中有一些内置的预定义符号 __FILE__ __LINE__ __DATE__ __TIME__ __STDC__//进行编译的源文件 //文件当前的行号 //文件被编译的日期 //文件被编译的时间 //如果编译器遵循ANSI C,其值为1,否则未定义 编译器在__STDC__报错,说明,v…

基于IPSec VPN隧道技术的国密加密网关保障电力工控数据安全

IPSec VPN(Internet Protocol Security Virtual Private Network)隧道技术为电力工控系统提供了重要的数据安全传输手段。该技术能实现身份鉴别和数据加密传输,为系统的防护工作增添了有力的支持。 电力工控系统对数据传输的可靠性要求较高。…

String的intern()方法详解

文章目录 前言一、new String()创建了几个对象?二、Stting anew String("ab")new String("c")创建了几个对象三、String的intern()方法四:面试题五:总结 前言 在开发过程中很多朋友,由…

vue.config.js配置proxy代理产生404错误的原因

在使用vue做开发时,请求api接口时为了解决跨域问题,一般会设置proxy代理, 但有时候会莫名其妙的出现404错误,这里总结一下vue设置proxy代理产生404错误的几种原因: 原因1:没有注意vue proxy代理优先级的规…

SQL Server向表中插入数据

SQL Server向表中插入数据 切换到对应的数据库 use DBTEST插入数据 方式1 insert into 表名(列名1,列名2) values(数据1,数据2)注意: 列名就算是字符类型也不用加引号,数据如果对应的字段是字符串类型&…

48.排列问题求解

思路分析&#xff1a;通过为每一队分配一个id&#xff0c;join条件要求t1.num < t2.num实现相同两队只比一次 代码实现&#xff1a; with t as (SELECT team_name,caseteam_nameWHEN 勇士 then 1WHEN 湖人 then 2WHEN 灰熊 then 3else 4end numFROM team )SELECT t1.team_…

零经验想跳槽转行网络安全,需要准备什么?

最近在后台看到很多私信都是有关转行网络安全的问题&#xff0c;目前咨询最多的都是&#xff1a;觉得现在的工作没有发展空间&#xff0c;替代性强&#xff0c;工资低&#xff0c;想跳槽转行网络安全。其中&#xff0c;他们主要关心的是&#xff1a;没有经验怎么学习&#xff1…

模糊测试面面观 | 电动汽车充电桩安全漏洞案例分享

在上一期我们讲了针对车载以太网DOIP协议详细阐释在实际过程的漏洞发掘过程&#xff0c;本期我们将继续延展&#xff0c;探讨电动车充电系统的安全漏洞。开源网安在基于 GB/T 27930-2015通信标准的电动汽车充电桩中&#xff0c;采用渗透测试、模糊测试和数据流分析等多种安全漏…

易天光通信推出100G BIDI ER光模块最新解决方案

随着数字信息时代的快速发展&#xff0c;网络通信技术的迅猛进步成为推动科技创新和产业升级的重要引擎之一。作为光通信行业的新秀&#xff0c;近期易天光通信推出了全新的100G BIDI ER1 Lite光模块和100G BIDI LR1 Lite光模块&#xff0c;助力崭新的未来网络建设。 易天光通…

45.复购率问题求解

思路分析&#xff1a; &#xff08;1&#xff09;近xx天&#xff0c;最大日期肯定就是最新的一天&#xff0c;故先用max(order_date) over() today计算当天日期 &#xff08;2&#xff09;过滤出最近90天的订单并且按照user_id,product_id分组求购买次数&#xff1b; &#xff…

逐字稿 | 视频理解论文串讲(上)【论文精读】

大家好&#xff0c;前两期我们讲了视频理解领域里的两篇经典的论文&#xff0c;一个是双流网络&#xff0c;第一个是 I3D 网络&#xff0c;所以说对视频理解这个问题有了个基本的了解。 那今天我们就从 2014 年开始&#xff0c;一直到最近 2021 年的工作&#xff0c;我们一起来…