当前位置: 首页 > article >正文

Java 基础之数据类型

数据类型

为了能让计算机识别和有效的使用数据,需要将这些数据加以类别区分。在程序设计中,使用数据类型来标识一个数据是属于哪个类别的,且实现事物各种属性的数据都能找到与之匹配的类型。在 Java 中,数据类型可划分为简单类型和复合类型。

(1)简单类型:

  1. 整数类型: 没有小数部分的数为整数类型数据,如 255 ,1024 ,-101 等,根据占内存容量分为 byte、short、int、long 4 种。在数据后加 l 或 L 表示该数为 long 型,默认为 int 型;
  • byte : 占一个字节,能表示范围为 -2^7 ~ 2^7 -1
  • short: 占 2 个字节,能表示的范围为 -2^15 ~ 2^15 - 1
  • int: 占 4 个字节,能表示的范围为 -2^31 ~ 2^31 - 1
  • long : 占 8 个字节,能表示的范围为 -2^63 ~ 2^63 -1

2.浮点类型: 有小数部分的数为数为浮点类型数据,如255.0,1024.11,-10.00f 等,根据占用内存容量分为 float 和 double 两种。 在数据后加f 和 F 表示 float 型,加 d 或 D 表示该数据为 double 型,默认数据为 double 型。

  • float : 占 4 个字节,能表示的范围大约为 ± 3.40282347E+38F (有效位数为 15 位)
  • double: 占 8 个字节,能表示的范围大约为 ± 1.79769313486231570E+308(有效位数位数为 15 位)。

3.字符类型: char,用一对单引号括起来的单个字符,如 ’A‘ ’l‘ ’a‘
等,对于被系统所占用的一些字符,在程序中若要用到,必须使用转义字符 “\” 来完成。转义字符
如表 2-2 所示。

转义字符名称转义字符名称
\n换行\反斜杠
\b退格"双引号
\r回车单引号
\t制表
  • 布尔类型: boolean,其中有两个值,即 true 和 false ;
  • 数组类型: 一维数组、多维数组。

复合类型: 复合类型包括类(class)和接口(interface)。

变量与常量

在程序运行中,数据必须进入内存空间才能得到运算的机会,然而怎样去定义一个内存空间呢? 在内存管理上这是用地址来完成的,但在程序设计中,用内存地址来操作数据是很不方便的,因此可给该内存空间一个别名以方便记忆和使用。这一别名即可用做变量和常量。变量和常量的类型是与数据类型相对应的,即一个变量或常量仅是属于某一种数据类型的。

(1) 常量
常量是指在程序执行过程中其值不可发生变化的量。常量可分为整型常量,浮点数常量,字符常量,字符串常量和布尔常量。

  1. 整型常量:可分为 int 型和 long 型两种,缺省为 int 型, long 型数值后加 L 。 整型常量可用 10 、8 、16 进制表示,如:123
    (十进制)、052(八进制)0x3c(十六进制);
  2. 浮点数常量:有单精度和双精度之分,缺省为双精度,单精度在数值后加 f。另外,浮点数常量也可用普通计数法和科学计数法来表示,如
    1.23f 、 1.1E-2。
  3. 字符常量: 用 ‘’ 括起来的一个字符,如 ’a‘、’H‘。
  4. 字符串常量用 “” 包括,如 “Hello World”。
  5. 布尔常量只有两个值,即 true 和 false。

声明常量的格式如下:
final 类型 常量名[,常量名] = 常量值,----------;
实例:
final String title1 = “尊敬的顾客,您这次的消费清单明细表如下:”;
final String title2 = " 名称 单价 数量 单项总计";

(2) 变量

  • 变量的声明
    变量是指在程序执行过程中其值可以发生变化的量,在使用时必须先声明。声明变量的格式如下:
    类型 变量名 [, 变量名] [= 初值,…];
    例如:
    String name = “1. 小炒鱼”;
    float price = 12.0f;
    声明时也可不给初值,但应用前必须给初值,例如:
    float numb;
    int a,b;
  • 变量的作用范围:
    声明变量后,该变量只能在特定的范围内使用。
    在类中声明的变量为成员变量,在类的开始处声明,可在整个类中使用。
public class TestRange {
  public static void main(String[] args) {
  int x = 12; // 定义变量 x
  int y;  // 定义变量y
  {
  int q = 96; // x 和 q 都可用
  int x = 3; // 错误对的定义,Java 中不允许有这种嵌套定义
  System.out.println("x is" + x);
  System.out.println("q is " + q);
  System.out.println("y is " + y);  // 未给初值
  }
  q = x; // q 不可用
  int y = 0; // 重复定义 y,不正确
  System.out.println("x is " + x); // x 可用
  }
  }

数据类型的转换

整型、实型和字符型数据可以混合运算。在运算过程中,不同的类型数据要先转换为同一类型的数据才能进行运算,其转换规则如下表:

原始类型目标类型原始类型目标类型
Byteshort,char,int,long,float,doubleintlong,float,double
Shortint,long,float,doublelongfloat,double
charint,long,float,doublefloatdouble

以上转换不会产生数据信息的丢失。
反向强制转换,但数据信息会因为存储位数的缩小而丢失,导致数据不正确。


http://www.kler.cn/a/155896.html

相关文章:

  • STM32问题集
  • 【最新版】Stable Diffusion4.9(AI绘画)下载及安装教程(附软件安装包)!
  • 在linux中使用nload实时查看网卡流量
  • 【Rust练习】21.动态数组 Vector
  • 字节、快手、Vidu“打野”升级,AI视频小步快跑
  • 机器学习——损失函数、代价函数、KL散度
  • 什么是跨站脚本攻击
  • Clickhouse在货品标签场景的应用
  • 模型量化相关知识汇总
  • 程序的未定义行为(Undefined Behavior)
  • 含光伏发电的变电站供电系统设计
  • PMP考试解析
  • 目标检测YOLO系列从入门到精通技术详解100篇-【图像处理】图像识别
  • xxl-job(分布式调度任务)
  • 分享一下docker的使用心得
  • Jupyter Markdown 插入图片
  • Blender学习笔记:小车狂奔动画
  • Vue3 Router跳转传参
  • Vmware17虚拟机安装windows10系统
  • Android跨进程通信,RPC,IPC
  • DBS note7 (end):DB Design
  • 根文件系统构建-对busybox进行配置
  • java中如何将mysql里面的数据取出来然后通过stream流的方式进行数据处理代码实例?
  • 论文阅读——Loss odyssey in medical image segmentation
  • 1.1、Autosar_CP软件集群设计与集成指南说明
  • CentOS7搭建部署NTP服务器