热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Java语法篇】Java变量、八种基本数据类型及转换详解

一、Java 变量二、Java 八种基本数据类型2.1 基本数据类型 - int2.2 基本数据类型 - long2.3 基本数据类型 - double2.3 基本数据类型 - boolean2.

在这里插入图片描述

    • 一、Java 变量
    • 二、Java 八种基本数据类型
      • 2.1 基本数据类型 - int
      • 2.2 基本数据类型 - long
      • 2.3 基本数据类型 - double
      • 2.3 基本数据类型 - boolean
      • 2.3 基本数据类型 - char
    • 三、基本数据类型间的转换




一、Java 变量

变量即变化的量(数),它是存储数据值的容器。在这里我们先从变量的 声明初始化访问命名 四个方面进行介绍。

声明变量即创建一个变量,语法格式如下。需要注意只有相同类型的变量才可以在一行代码中声明,此外已经声明过的变量不可再声明,否则会报错。

//声明变量
int a; //声明了一个整型变量,名为a
int b,c,d; //声明了三个整型变量,名为b,c,d
int a; //此处会报编译错误(因为a变量已被声明)

变量的初始化可以理解为变量的第一次赋值,也就是第一次存数据。语法如下,两种不同赋值方法的效果是相同的。

int a=100; //声明整型变量a并赋值为100,由于是第一次赋值,所以这里为变量a的初始化int b; //声明一个整型变量b
b = 200; //给变量b赋值为200
b = 300; //修改变量b的值为300

变量的访问其实就是对变量的使用,但是我们使用的并不是变量本身,而是在用它所赋的值。

int a = 1;
int b = a+1; //取出变量a的值加1之后赋给变量b
System.out.println(b); //输出变量b的值2int c = 5;
c = c+10; //在变量c本身基础上增加10
System.out.println(c); //输出变量c的值15

注意变量在使用之前必须先被声明并初始化。

System.out.println(a); //编译错误,变量a未声明int a;
System.out.println(a); //编译错误,变量a未初始化

关于变量的命名,我们自己命名的名称统一称为标识符。标识符的命名规则如下:

  • 只能用英文字母、数字、下划线和 $ 符;
  • 严格区分大小写;
  • 不可使用关键字命名,如 package、public、class、main、static 等等;
  • 可以使用中文命名,但不建议。建议使用英文见名知意的名称,如 age、name 等。
  • 推荐使用 驼峰命名法:如 myName、myScore、MyName、MyScore。

myName 为小驼峰命名法,通常使用最广,多用于变量。
MyName 为大驼峰命名法(每个单词首字母均大写),通常用于类的命名。


二、Java 八种基本数据类型

Java 数据类型分 基本数据类型引用数据类型 两种,基本数据类型又分为以下八种(除了这八种基本数据类型,其余的均为引用数据类型,引用数据类型后续讲解):

基本数据类型含义
byte
short短整型
int整型
long长整型
float单精度浮点型(小数)
double双精度浮点型(小数)
boolean布尔型
char字符型

在开发过程中,所有的变量都是存储在内存中的,变量占用多大内存是则由数据类型来控制。

2.1 基本数据类型 - int

int(整型),占四个字节,取值 -2^31 到 2^31-1。在 Java 中写的整数直接量都默认为 int 类型,但不能超出该取值范围。若整数直接量超出该范围会报编译错误;若在运算过程中超出了该范围会发生溢出,溢出并非错误但也需避免。

整数直接量:我们为变量赋值时直接写出来的整数。

int a = 1; //a占四个字节
int b = 10000; //b占四个字节//占用字节数只与数据类型有关,跟赋值的大小无关。

还应注意在 Java 中两个整数相除时,结果还是整数,小数位均会被舍弃,且不会进行四舍五入。当有小数位参与时才可保留小数。

// 5/2=2;
// 2/5=0;
// 5/2.0=2.5

2.2 基本数据类型 - long

long(长整型),占八个字节,取值 -2^63 到 2^63-1。长整型直接量需要在数据之后加 L,不加 L 则该数据默认为 int 类型。

long a = 25L; //25L为长整型直接量,不加L则为int类型

若运算时有可能溢出,建议在第一个数字后加 L。

long b = 1000000000*3*10L;
//这样运算为int类型数据30亿乘以long类型数据10L,结果为300亿
//但是这30亿对于int整型来说已经发生溢出了//所以建议将L放在第一个数之后,可避免发生溢出
long b = 1000000000L*3*10;

2.3 基本数据类型 - double

double(浮点型),占八个字节。在 Java 中浮点数直接量默认为 double 类型,若想表示 float 类型,需要在数字后加 F。

double a = 3.14; //浮点数直接量,默认double类型
double b = 3.14F; //浮点数直接量,float类型

double 和 float 型数据参与运算时,有可能会发生舍入误差,精确开发业务下不可使用。

2.3 基本数据类型 - boolean

boolean(布尔型),占一个字节,只能赋值为 true 或 false。

boolean a = true; //布尔型直接量true
boolean b = false; //布尔型直接量false

2.3 基本数据类型 - char

char(字符型),占两个字节。Java 中的 char 使用的是 Unicode 编码格式,也称万国码、统一码,是世界级通用的定长(16 位)字符集,一个字符对应一个码。表现形式为字符型 char,但本质上也是码 int。

字符型直接量必须放在单引号中,且只能有一个。

char a = '男'; //字符男
char b = '6'; //字符6
char c = '*'; //字符*char d =; //编译错误,字符直接量必须放在''中
char e = ''; //编译错误,必须有字符
cgar f = '10'; //编译错误,只能有一个字符

在字符中有一些特殊符号需要使用 \ 来转义,特殊符号如单引号(‘’)、Tab 键等。

char a = '\''; //转义'
System.out.println(a); //输出'char b = '\\'; //转义\
System.out.println(b); //输出\

三、基本数据类型间的转换

数据类型之间的转换包含 自动类型转换强制类型转换。自动类型转换也称隐式转换(无需任何操作即可转换成功),通常用于小类型转到大类型。强制类型转换则与之相反,且强制转换有可能发生溢出或丢失精度。

基本数据类型从小到大依次为&#xff1a;byte <short <int <long <float <double

int a &#61; 1; //未发生转换
long b &#61; a; //自动类型转换 int-->long
int c &#61; (int)b; //强制类型转换 long-->intlong d &#61; 5; //自动类型转换 int-->long
double e &#61; 5; //自动类型转换 int-->doublelong f &#61; 10000000000L; //未发生转换
int g &#61; (int)f; //强制类型转换 long-->intdouble h &#61; 14.33223; //未发生转换
int i &#61; (int)h; //强制转换 double-->int

关于数据类型间的转换&#xff0c;需注意两点规则&#xff1a;

  1. 整数直接量可以直接赋值给 byte、short、char&#xff0c;但不可超出范围&#xff1b;

  2. 当 byte、short、char 型数据参与运算时&#xff0c;系统会先统一将其转换为 int 整型后再进行运算&#xff0c;所以这时需注意可能需要强制转换&#xff0c;否则报错。如下&#xff1a;

byte a1 &#61; 5;
byte a2 &#61; 5;//byte a3 &#61; a1&#43;a2; //错误语法
//此时a1和a2均会被系统转为int型&#xff0c;相加之后a1&#43;a2也为int型
//所以就成了int-->byte&#xff0c;需强制转换&#xff0c;正确的强制转换语法如下&#xff1a;
byte a3 &#61; (byte)(a1&#43;a2); //将int型数据a1&#43;a2强转为byte型


推荐阅读
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Java自带的观察者模式及实现方法详解
    本文介绍了Java自带的观察者模式,包括Observer和Observable对象的定义和使用方法。通过添加观察者和设置内部标志位,当被观察者中的事件发生变化时,通知观察者对象并执行相应的操作。实现观察者模式非常简单,只需继承Observable类和实现Observer接口即可。详情请参考Java官方api文档。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了C函数ispunct()的用法及示例代码。ispunct()函数用于检查传递的字符是否是标点符号,如果是标点符号则返回非零值,否则返回零。示例代码演示了如何使用ispunct()函数来判断字符是否为标点符号。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
author-avatar
Jump_jiedB0_666
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有