零基础学Java(2)数据类型与变量

零基础学Java(2)数据类型与变量前言Java是一种强类型语言。这就意味着必须为每一个变量声明一种类型。在Java中,一共8种基本类型,其中有4种整型、2种浮点型、1种字符串类型char(用于表示Unicode编码的代码单元)和1种

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

Java是一种强类型语言。这就意味着必须为每一个变量声明一种类型。在Java中,一共8种基本类型,其中有4种整型、2种浮点型、1种字符串类型char(用于表示Unicode编码的代码单元)和1种用于表示真值的boolean类型。

注释
Java有一个能够表示任意精度的算术包,通常称为”大数"(big number),它不是一种基本Java类型,而是一个Java对象。
 

数据类型

 

整型

Java提供了4种整型,如下表格

类型 存储需求 取值范围
int 4字节 -2147483648~2147483647
short 2字节 -32768~32767
long 8字节 -9223372036854775808~9223372036854775807
byte 1字节 -128~127

通常情况下,int类型最常用,long类型可以忽略,byteshort类型主要用于特定的应用场合,例如,底层的文件处理或者存储空间很宝贵的大数组。
 

浮点类型

浮点类型用于表示有小数部分的数值。在Java中有两种浮点类型如下

类型 存储需求 取值范围
float 4字节 大约±3.40282347E+38F
double 8字节 大约±1.79769313486231570E+308

  double表示双精度浮点型,数值精度是float两倍。在很多情况下,float类型的精度并不能满足需求。实际上,只有很少的情况适合使用float类型,例如,需要单精度数的库,或者需要存储大量数据时。
  float类型的数值有一个后缀F或f(例如3.14F)。没有后缀F的浮点数值(如3.14)总是默认为double类型。当然,也可以浮点数值后面添加后缀D或者d(例如3.14D)

double x1 = 3.14D;  // 双精度
double x2 = 3.14;  // 双精度
float y = 3.14F;  // 单精度

  有三个特殊的浮点数

  • Double.POSITIVE_INFINITY:正无穷大
  • Double.NEGATIVE_INFINITY:负无穷大
  • Double.NaN:不是一个数字
     

char类型

  char类型原本用于表示单个字符。如今,有些Unicode字符可以用一个char值描述,另外一些Unicode字符则需要两个char值。
  char类型的字面量值要用单引号括起来。例如:'A'是编码值为65的字符常量。它与"A"不同,"A"是包含一个字符A的字符串。char类型的值可以表示为十六进制值
 

boolean类型

boolean类型有两个值:false和true,用来判断逻辑条件。整型值和布尔值之间不能进行相互转换。
注释
在C++中,数值甚至指针可以代替boolean值。值0相当于布尔值false,非0值相当于布尔值true。在Java中则不是这样。因此,Java程序员不会遇到下述麻烦:

if(x = 0) 

在C++中这个测试可以编译运行,其结果总是false。而在Java中,这个测试将不能通过编译,其原因是整数表达式x=0不能转换为布尔值。
 

变量与常量

 

声明变量

在Java中,每个变量都有一个类型(type)。在声明变量时,先指定变量的类型,然后是变量名,示例如下:

double salary;
int vacationDays;
long earthPopulation;
boolean done;

注意点

  • 变量名必须是一个字母开头并由字母或数字构成的序列。
  • 变量名大小写敏感
  • +这样的符号不能出现在变量名中,空格也不行
  • 不能使用Java保留字作为变量名
     

变量初始化

声明一个变量之后,必须用赋值语句对变量进行显式初始化,千万不要使用未初始化的变量的值。例如,Java编译器认为下面的语句序列是错误的:
零基础学Java(2)数据类型与变量
报错原因如下:
零基础学Java(2)数据类型与变量
所以声明变量格式如下:

String student = "jkc";

注意:在Java中,变量的声明尽可能地靠近变量第一次使用的地方
 

常量

在Java中,利用关键字final指示常量。例如:

public class FirstSample {
    public static void main(String[] args) {
        final double CM_PER_INCH = 2.54;
    }
}

关键字final表示这个变量只能被赋值1次。一旦被赋值之后,就不能修改了。习惯上,常量名使用全大写。
零基础学Java(2)数据类型与变量
我们可以看到当我们要修改常量时,就会报错,原因如下:
零基础学Java(2)数据类型与变量
在Java中,经常希望某个常量可以在一个类的多个方法中使用,通常将这些常量称为类常量。可以使用关键字static final设置一个类常量。

public class FirstSample {
    public static final double CM_PER_INCH = 2.54;
    public static void main(String[] args) {
        System.out.println(CM_PER_INCH);
    }
}

需要注意,类常量的定义位于main方法的外部。因此,在同一个类的其他方法中也可以使用这个常量。而且,如果一个常量被声明为public,那么其他类的方法也可以使用这个常量。

public class FirstSample {
    public static final double CM_PER_INCH = 2.54;
    public static void main(String[] args) {
        System.out.println(CM_PER_INCH);
        FirstSample.write();
    }
    public static void write() {
        // 在write方法中依然可以使用类变量,因为都是FirstSample这个类中的方法
        System.out.println(CM_PER_INCH);
    }
}

 

枚举类型

有时候,变量的取值只在一个有限的集合内。例如,销售的服装或比萨只有小、中、大这三种尺寸。当然,可以将这些尺寸分别编码为1、2、3。但这种设置很容易出错。很可能在变量中保存的是一个错误的值(比如0)。
针对这种情况,可以自定义枚举类型。例如:

enum Size { SMALL, MEDIUM, LARGE };

现在,可以声明这种类型的变量:

Size s = Size.MEDUIM;

Size类型的变量只能存储这个类型声明中给定的某个枚举值,或者特殊值null,null表示这个变量没有设置任何值。
 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164798.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 实例分割简述_图像实例分割

    实例分割简述_图像实例分割针对图像目标我们可以利用目标检测算法将其框出来也可以利用语义分割算法将属于猫的像素标记出来存在的弊端:1、目标检测可以区分个体但不够准确2、语义分割可以划分像素但不可以区分个体实例分割0、实例分割可以解决以上问题1、利用先验框获得建议框2、利用建议框获得预测框3、利用预测框获得语义分割结果…

    2022年8月23日
    3
  • 矿机和普通电脑区别_计算机挖矿是什么意思

    矿机和普通电脑区别_计算机挖矿是什么意思原标题:处理的挖矿机能当家用电脑用吗?现在购买划算吗?目前市场上的矿机主要分为两类,一类是PC架构的矿机,另一类是基于ASIC芯片的专业矿机。一般PC架构的矿机可以当做家用电脑用,但cpu性能较弱,功耗较高。基于ASIC芯片的专业矿机由于没有显卡,不支持主流的桌面操作系统,,所以无法当普通电脑使用。基于PC架构的矿机可以作为普通电脑使用,但cpu性能较弱,功耗较高!一般基于pc架构的矿机,cpu…

    2022年9月29日
    0
  • 第一范式、第二范式和第三范式「建议收藏」

    第一范式、第二范式和第三范式「建议收藏」数据库的范式概念:设计数据库是,需要遵循的一些规范,要遵循后边的范式要求,必须遵循前边的所有范式要求设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈梯次规范,越高的范式数据库冗余越小目前关系型数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BC范式、第四范式(4NF)、第五范式(5NF)。…

    2022年5月23日
    40
  • 一篇教会你写90%的shell脚本_flash动画脚本怎么写

    一篇教会你写90%的shell脚本_flash动画脚本怎么写如果将运维比作手链,将珍珠比作服务,那么将珍珠串起来的线就是Shell,作为实现Linux系统自动管理以及自动化运维所必备的Shell脚本,其重要性便不言而喻。每一位合格的Linux系统管理员或运维工程师,都应该将熟练编写Shell脚本视为基本技能之一,只有这样才能减少不必要的劳动。但是新人在编写脚本时却只会:#!/bin/bash,所以今天就给大家分享100个经典实用的脚本范例,手把手教你写Shell脚本。这100个脚本范例从基础到进阶均涵盖,有侧重地提高编写能力,结构清晰准确,PDF格式,可

    2022年10月3日
    0
  • Http通过header传递参数_http contenttype

    Http通过header传递参数_http contenttype提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、header常用指令header分为三部分:发送一个200正常响应set404header:页面没找到页面被永久删除,可以告诉搜索引擎更新它们的urls访问受限服务器错误重定向到一个新的位置延迟一段时间后重定向覆盖X-Powered-Byvalue内容语言(en=English)最后修改时间(在缓存的时候可以用到)告诉浏览器要获取的内容还没有更新设置内容的长度(缓存的时候可以用到):用来下载文件:禁止

    2022年8月24日
    5
  • RAID 小结

    RAID 小结

    2021年8月18日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号