首页 > 编程语言 >Java基础语法(变量)

Java基础语法(变量)

时间:2024-07-27 10:28:24浏览次数:17  
标签:类型转换 字符 Java 变量 示例 int 浮点数 数据类型 语法

+号的使用

在 Java 中,如果在一个运算表达式中,从左往右只要有一方是字符串,那么后续的运算就会被视为字符串的拼接运算。

一、基本数据类型
  1. 整数类型

    • byte
      • 占用 1 个字节(8 位)。
      • 取值范围:-128 到 127 。
      • 示例:byte b = 10;
    • short
      • 占用 2 个字节(16 位)。
      • 取值范围:-32768 到 32767 。
      • 示例:short s = 100;
    • int
      • 占用 4 个字节(32 位)。
      • 取值范围:-2147483648 到 2147483647 。
      • 示例:int i = 1000;
    • long
      • 占用 8 个字节(64 位)。
      • 示例:long l = 1000000L; (注意:数值后加 L 表示长整型)
  2. 浮点类型
    • float
      • 占用 4 个字节。
      • 示例:float f = 3.14f; (注意:数值后加 f 表示单精度浮点型)
      • 0.342f==.342f
    • double
      • 占用 8 个字节。
      • 精度高于 float 。
      • 示例:double d = 3.14;
  3. 字符类型

    • char
      • 占用 2 个字节。
      • 用于表示单个字符。
      • 示例:char c = 'A';
  4. 布尔类型

    • boolean
      • 只有两个值:true 和 false 。
      • 示例:boolean flag = true;
二、引用数据类型
  1. 类(class):自定义的类对象。

    • 示例:MyClass obj = new MyClass();
  2. 接口(interface

  3. 数组

在 Java 中,确实小数(浮点数)的默认类型是 double ,而整数的默认类型是 int 。

这是 Java 语言的设计规定。当您直接写一个小数,例如 3.14 ,它会被视为 double 类型。如果您希望将其明确指定为 float 类型,需要在数值后面加上 f 或 F ,例如 3.14f 。

对于整数,例如 10 ,它默认被认为是 int 类型。如果您希望表示一个长整型 long ,并且数值超出了 int 的范围或者您想更明确地表示其为 long 类型,需要在数值后面加上 L 或 l (通常建议使用 L ,以避免与数字 1 混淆),例如 1000000L 。

在 Java 中,对运算结果是小数(浮点数)的判断确实需要小心考虑,主要有以下几个原因:

精度问题:如前面所提到,浮点数存在精度限制。在进行运算时,可能会出现舍入误差,导致结果与预期不完全一致。

例如,计算 0.1 + 0.2 ,期望结果是 0.3 ,但由于浮点数的精度问题,实际得到的结果可能会有微小的偏差。

比较问题:直接使用 == 来比较两个浮点数是否相等通常是不可靠的,因为可能存在精度误差。

边界情况:在处理浮点数的边界值,如非常接近 0 、正无穷大或负无穷大时,需要特别小心。

例如,判断一个浮点数是否接近 0 时,不能简单地与 0 进行比较,而应该考虑一个很小的误差范围。

为了更准确地处理浮点数的判断,通常可以采用以下方法:

  1. 定义一个可接受的误差范围,然后比较两个浮点数的差值是否在这个误差范围内。

  2. 使用专门的数学库或工具类提供的方法来进行更精确的比较和判断。math.abs

 Math.abs 是 Java 中 Math 类的一个静态方法,用于返回一个数的绝对值。

科学计数法是一种用于表示非常大或非常小的数的简洁方式。

在 Java 中,科学计数法通常采用以下形式:

一个数字(可以是整数或小数)乘以 10 的幂次方,用 e 或 E 来表示乘以 10 的幂次方。

例如:

  • 1.23E4 表示 1.23 × 10^4,即 12300。
  • 5.67e-3 表示 5.67 × 10^(-3),即 0.00567。 

字符编码是将字符集中的字符映射为数字的规则。

常见的字符编码有:
  1. ASCII 编码:这是最早也是最基础的字符编码标准,使用 7 位二进制数(0 - 127)来表示常见的英文字母、数字、标点符号等。

    • 例如,字符 'A' 的 ASCII 码是 65,字符 '0' 的 ASCII 码是 48。
  2. Unicode 编码:为了涵盖世界上几乎所有的语言字符,Unicode 被创建。它为每个字符分配一个唯一的代码点。

    • Unicode 可以用多种编码方式实现,如 UTF-8、UTF-16、UTF-32 等。
  3. UTF-8 编码:是一种变长的 Unicode 编码方式,使用 1 到 4 个字节来表示一个字符。对于常见的英文字符,只使用 1 个字节,对于其他语言的字符可能使用 2 - 4 个字节。

    • 它具有节省存储空间和良好的兼容性等优点。
  4. GBK 编码:是中文编码标准之一,主要用于汉字的编码。

 

在 Java 中,基本数据类型之间存在一定的转换规则,主要包括自动类型转换(隐式类型转换)和强制类型转换(显式类型转换)。

自动类型转换(隐式类型转换)

当把一个取值范围小的数据类型的值赋给一个取值范围大的数据类型的变量时,会自动进行类型转换。以下是一些自动类型转换的示例:

  1. byte 可以自动转换为 shortintlongfloatdouble
  2. short 可以自动转换为 intlongfloatdouble
  3. int 可以自动转换为 longfloatdouble
  4. long 可以自动转换为 floatdouble
  5. char 可以自动转换为 intlongfloatdouble
强制类型转换(显式类型转换)
  1. 精度丢失:当将一个具有更高精度的数据类型强制转换为较低精度的数据类型时,可能会导致精度丢失。例如,将 double 类型转换为 int 类型时,小数部分会被截断。
  2. 数据溢出:如果强制转换的结果超出了目标数据类型的取值范围,会得到错误的结
  3. 符号问题:对于有符号和无符号类型的转换,需要注意符号的处理。
  4. 浮点数到整数的转换:直接将浮点数强制转换为整数时,会进行向零取整。
  5. 布尔类型不能进行强制类型转换:boolean 类型与其他基本数据类型之间不能进行强制转换。
基本数据类型转换为 String 类型

直接将基本数据类型与空字符串连接;

String 类型转换为基本数据类型

需要使用相应的包装类的 parseXXX() 方法,例如:

Integer.parseInt() :将字符串转换为 int 类型;

标签:类型转换,字符,Java,变量,示例,int,浮点数,数据类型,语法
From: https://blog.csdn.net/weixin_63599588/article/details/140721929

相关文章

  • Java初学-8.3-代码块(实例初始化块/普通代码块和静态初始化块/静态代码块)
    代码块又称初始化块,属于类中的成员,即类的一部分。类似于方法,将逻辑语句封装在方法体中,用{}包围起来。与方法不同的是,代码块没有方法名,没有返回值,没有参数,只有方法体,而且不能通过对象或类显式调用,而是在加载类时或创建对象时隐式调用。 代码块可以用访问修饰符修饰,也可以写st......
  • Java计算机毕业设计精品课程网站的设计与实现(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在数字化教育日益普及的今天,传统的教学模式正逐步向线上线下融合的方向转变。精品课程作为高等教育质量提升的重要载体,其传播与分享已不再局限于课堂......
  • Java计算机毕业设计考生订房管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着各类考试规模的不断扩大,考生对于考试期间的住宿需求日益增长,特别是在大型考试如高考、研究生入学考试等期间,考点周边的住宿资源尤为紧张。传统的......
  • 274java jsp SSM办公自动化管理系统员工档案员工考勤员工请假员工销假工作内容工作报
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......
  • 269java jsp SSM网上购物商城网站系统(源码+文档+运行视频+讲解视频)
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......
  • 265java jsp SSM搬家服务预约系统搬家人员搬家须知搬家订单货车类型(源码+文档+运行视
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......
  • 267java jsp SSM防疫信息登记系统风险地区管理(源码+文档+PPT+运行视频+讲解视频)
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......
  • 【数据结构】:用Java实现链表
    在ArrayList任意位置插入或者删除元素时,就需要将后序元素整体往前或者往后搬移,时间复杂度为O(n),效率比较低,因此ArrayList不适合做任意位置插入和删除比较多的场景。因此:java集合中又引入了LinkedList,即链表结构。概念顺序表是物理上连续,逻辑上也是连续的链表......
  • Java计算机毕业设计教学辅助系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和教育理念的不断革新,传统教学模式正面临着前所未有的挑战与机遇。传统教学中,教师与学生的互动往往受限于时间和空间的限制,教......
  • Java计算机毕业设计驾校管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着汽车保有量的持续增长,驾驶技能已成为现代社会的基本需求之一,驾校作为培养驾驶员的重要机构,其管理效率与服务质量直接关系到学员的学习体验与道路......