首页 > 编程语言 >Java的基本数据类型

Java的基本数据类型

时间:2023-01-27 21:00:42浏览次数:50  
标签:基本 short Java 变量 int 数据类型 long byte

Java的基本数据类型

介绍Java中变量的概念、基本数据类型、基本数据类型变量的使用及它们之间转换,最后还会对基本数据类型与String的转换做一个说明。

Author: Msuenb

Date: 2023-01-28


变量的概念

内存中的一个存储区域,该区域的数据可一在同一类型范围内不断变化。变量是程序中最基本的存储单元。变量三要素:类型、名称、值

变量的作用:用于在内存中保存数据

变量的分类

变量的分类方式有两种,一种是按照数据类型,分为基本数据类型和引用数据类型;另一种是按照声明的位置,分为成员变量和局部变量。

按数据类型
  • 基本数据类型(primitive type):
    • 数值型
      • 整数类型:byteshortintlong
      • 浮点类型:floatdouble
    • 字符型:char
    • 布尔型:boolean
  • 引用数据类型(reference type):
    • 类(class):StringInteger、用户声明的类 ...
    • 接口(interface)
    • 数组( [ ] )

八大基本数据类型:byteshortintlongfloatdoublecharboolean

按声明的位置
  • 成员变量:在方法体外,类体内声明的变量
    • 实例变量(不以static修饰)
    • 类变量(以static修饰)
  • 局部变量:在方法体外声明的变量
    • 方法局部变量(在方法内定义)
    • 代码块局部变量(在代码块内定义)
    • 形参(方法、构造器中定义的变量)
public class Test {
    int a = 0;                  // a 实例变量
    static int b = 0;           // b 类变量(静态变量)
    
    public void method(int c) { // c 形参
        int d = 0;              // d 方法局部变量
        while (d++ < 10) {
            int e = 0;          // e 代码块局部变量
        }
    }
}

变量的使用

整数类型:byteshortintlong
  • Java 中各整数类型有固定的便是范围和字段长度,不受具体的OS影响,以保证 java 程序的可移植性。
  • Java的整型常量默认为 int 型,声明 long 型常量须后加 ’l‘ 或 ’L‘ 。
类型 长度 范围
byte 1字节 -128 ~ +127
short 2字节 -2^15 ~ 2^15-1
int 4字节 -2^31 ~ 2^31-1
long 8字节 -2^63 ~ 2^63-1
浮点类型:floatdouble
  • float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足要求。
  • double:双精度,精度是float的两倍。通常采用此类型
  • Java的浮点型常量默认为double型,声明float型变量,须后加 ’f‘ / 'F'。
类型 长度 范围
float 4字节 -3.403E38 ~ 3.403E38
double 8字节 -1.798E308 ~ -1.798E308
字符型和布尔型:charboolean
  • char 类型长度为 2 字节

  • 不可以用 0 和 非0 的整数替代 false 和 true

  • boolean 编译后使用 int 数据类型替代:true用1表示,false用0表示

byte b1 = 12;
//byte b2 = 128;  // 编译不通过 byte范围 -128 ~ +127
System.out.println(b1);

// 声明long型变量,便须加上'l'/'L'
short s1 = 128;
int i1 = 1234;
long l1 = 4567123L;
System.out.println(s1);
System.out.println(i1);
System.out.println(l1);

float f1 = 123.456F;
double d1 = 123456.0987;
System.out.println(f1);
System.out.println(d1);

// 由一对单引号 内部一个字符
char c1 = 'a';
char c2 = ''; //编译不通过  不能为空
char c2 = 'as'; //编译不通过
char c3 = '\t'; // 转义字符   也可以使用Unicode编码值表示
System.out.println(a);

基本数据类型变量间的转换

这里讨论的只是7中数据类型变量间的运算,不包含boolean类型。

自动类型提升

当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。

byteshortchar --> int --> long --> float --> double

char c1 = 'a';
byte b1 = 2;
short s1 = 12;
int i1 = 129;
//byte b2 = i1 + b1;    // 编译不通过
//short s2 = b1 + s1;   // 编译不通过
//short s3 = c1 + b1;   // 编译不通过 char,byte和short运算(包括同种类型之间的运算)时结果为int类型
        
int i2 = i1 + b1;
int i3 = i1 + b1;
long l1 = i1 + b1;
float f1 = l1;
double d1 = f1;

注意:char,byte和short运算(包括同种类型之间的运算)时结果为int类型

强制类型转换

自动类型提升运算的逆运算。使用强转符cast

double d1 = 13.3;
int i1 = (int) d1;  // 结果:13   会丢失精度

long l1 = 123;
short s2 = (short) l1;  // 结果:123  没有丢失精度

int i2 = 128;
byte b1 = (byte) i2;  //-128  丢失精度
类型转换注意事项
long l = 123123;    // 123123 为int型 且没超出int型范围 自动提升为long型
//long l2 = 123123123123123;  // 编译失败

//float f = 12.3; //编译失败 12.3 默认为double 需要强转为float
         
byte b = 12;
//byte b1 = b + 1;    // 1 默认为int  结果要用 int接受

基本数据类型与String间转换

String属于引用数据类型,声明String类型变量时,使用一对""。String可以和8种基本数据类型变量做运算,且只能是连接运算,结果为String类型。

int num = 1001;
String numStr = "学号:";
String info = numStr + num;		// 结果:“学号:1001”  此处 + 执行的是连接运算

boolean b = true;
String s = "hello ";
String s1 = s + b;	// 结果:“hello true”

// 字符之间的运算会转换为ASCII码值进行运算
// 字符与字符串之间 + 执行连接运行
System.out.println('*' + '\t' + '*');   // + 加法  + 加法   96
System.out.println('*' + "\t" + '*');   // + 连接  + 连接   *   *
System.out.println('*' + '\t' + "*");   // + 加法  + 连接   51*
System.out.println('*' + ('\t' + "*")); // + 连接  + 连接   *   *

标签:基本,short,Java,变量,int,数据类型,long,byte
From: https://www.cnblogs.com/msuenb/p/17069322.html

相关文章

  • gRPC介绍(以Java为例)
    1.简介1.1gRPC的起源RPC是RemoteProcedureCall的简称,中文叫远程过程调用。用于解决分布式系统中服务之间的调用问题。通俗地讲,就是开发者能够像调用本地方法一样调用......
  • [转]Python3 xlrd库基本教程
    本文转自:https://www.w3cschool.cn/python3/python3-xlrd.htmlxlrd库是一个python用于操作excel的第三方库。它的主要功能是用来读取excel。通常会与xlwt 、 xlutils组......
  • 用 JavaScript 制作一个新年的日历小工具
    2023年,让我们携手一道兔谋大业、做出兔出贡献!同打拼、共丰盈、多喜乐、长安宁,好运一路相随兔气扬眉!......
  • Java与Modbus通信
    1、引入依赖<dependency><groupId>com.intelligt.modbus</groupId><artifactId>jlibmodbus</artifactId><!--版本号可依照mave......
  • javafx程序运行
    下载openjfxhttps://gluonhq.com/products/javafx/openjfx的LTS版本好像要付费才能下载,所以勾选“Includeolderversions”下载一个非LTS的。下载后解压到一个地方执......
  • 【参考答案】java基础练习:方法、递归
    方法实现定义方法(不用jdk提供的方法),计算x的y次方,如2的5次方packagecom.qzcsbj;/***@公众号:全栈测试笔记*@描述:<>*/publicclassTest{publicstaticvoid......
  • Java 解析 带 T Z 的 UTC 时间格式 日期
    直接上代码吧publicstaticvoidmain(String[]args)throwsParseException{SimpleDateFormatdf=newSimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");......
  • Apache Kafka 的基本概念
    ​​基本概念​​主题Topictopic是Kafka最基础的组织单位,类似于关系数据库中的数据表。做为使用kafka的开发者,你最应该考虑的是和topoc相关的抽象。创建不同的topi......
  • 01-Java概述
    计算机包括两部分:硬件:鼠标、键盘、显示器、主机箱内部的cpu、内存条、硬盘等软件:包括系统软件和应用软件系统软件:直接和硬件交互,例如window7、winxp、win8、win10......
  • 学习java第一天
    MARKDOWN学习标题二级标题三级标题 字体Hello,World!Hello,World!Hello,World!Hello,World!Hello,World!Hello,World!引用选择从未设想的道路,走出自......