【Java SE】基本数据类型(上)

简介: 本期我们正式开始进入 Java 的学习,在正式开始之前,我们需要简单的认识下 Java 中的常量。

1、什么是常量?

本期我们正式开始进入 Java 的学习,在正式开始之前,我们需要简单的认识下 Java 中的常量。

Java常量的定义:在程序中永恒不变的值,同时也不能被改变的值我们称为常量。

1.1 Java常量分类:

整型常量:像我们计算机所能识别的二进制,以及我们生活中常用的十进制等等,都是整型常量,但我们要注意,我们为了区分不同的进制,八进制是以0开头,十六进制则以0x开头,当然表示十进制数不能用0开头!

浮点数常量:我们生活中用到的小数都可以算是浮点数常量,在 Java 中浮点数又为单精度浮点型和双精度浮点型,用 floatdouble 来表示,而且默认是 double,而且浮点常量还可以用指数来表示例如:4.9E-324

字符常量:在 Java 中也有字符常量,而且只用来表示单个字符,如果你看到是用一对英文单引号引起来的单个字符,那肯定就是字符常量了,但也不排除用转义序列来表示的特殊字符。

字符串常量:这个相信就很好理解了,字符串常量也就是用英文双引号引起的字符串例如:"hello world" ,同时你也可以不包括任何字符:"" 这样就为一个空字符串,也就是长度为0的字符串。

布尔常量:此常量主要就是用来区分真假的,在一个逻辑表达式中,他最终得出的结果也就是 true或者false,而且 Java 中并不存在 0 为假 非0 为真!

空常量(null)空常量主要用于表示对象的引用为空,而且他只有一个值:null

2、基本数据类型

在 Java 中我们一共有两类数据类型:基本数据类型引用数据类型,但是我们今天主要是来认识基本的数据类型:

2.1 类型的基本认识:

image.png

  • 字面常量值中,整数默认为 int 类型,浮点数默认为 double 类型
  • 数据类型大小不会随着平台的改变而改变,这也体现出 Java 跨平台性
  • 整型家族和浮点数家族不存在无符号数,都是有符号数

2.2 为什么会出现数据类型?

可能有的小伙伴以前没接触过C语言,一来就开始接触 Java,估计有很多小伙伴会觉得,整那么多数据类型干嘛?又难记,我搞一个笼统的类型,就用一两个数据类型就解决了多好,还省时省力。

那么这里我们就来讨论下为什么需要那么多的数据类型?

我不知道大家伙有没有带过帽子,我记得我路过商店的时候,有许多人在买帽子,每个人呢都会拿起帽子在戴在头上看一看,试试合不合适,有的人头大买大帽子,有的人头小买小帽子,那么这里问题来了!

如果张三的头很小,他买一个大帽子,可以吗?可以!但是不好看,戴着也不舒服,还浪费了帽子的充裕的空间,说不定还挡住眼睛。

如果张三的头很大,他买一个小帽子,可以吗?不可以!因为张三根本戴不进去!那不难受死了吗?除非张三愿意舍弃他的帅气的造型去剃光头!

那我们想想,数据类型有大有小,你一个很小的值放入一个 long 类型是不是会造成空间浪费?就比如我只需要打印 99乘法表,最大才是 81,那不白白浪费了空间吗?那如果我们有一个很大的值,比如 10000,我们就想把它放入 byte 类型中,放得下吗?放不下!有的人说编译器会自动截断!这 Java 语法可比 C语言严谨,还有的人说强制类型转换,那肯定可以,那就好比你只要舍得剃光头,就能戴上那顶帽子!

总结:有了不同了类型,确定了变量的大小,系统更容易分配空间,也可以更方便程序员用不同的类型去实现不同的需求防止空间浪费

3、变量和数据类型

3.1 什么是变量?

变量其实来源于数学,相信大家都听过一句话,x 自变量, 还有什么自变量越大函数值越小等,那么在计算中,变量是可以通过变量名来访问的,也就是 Java 中常说的标识符,我们定义一个变量的名字也就叫做标识符。既然是变量,那肯定是能被改变的量,但是也有例外,比如在纯函数语言Haskell 变量就有可能是不可变的,但是今天我们只讨论 Java。张三今天心情好,定义了一个字符串类型 String str = "I am happy!";突然有一天张三心情变差了,就把 str 字符串变量改成 str  = "I am very unhappy!";这就是变量,你想变就能变。(字符串类型后续讲解,属于引用数据类型)

注:Java中变量要赋初值,不然编译会报错!

3.2 标识符的命名规则

【硬性规则】

  • 标识符中可以包含数字,字母,下划线和 $ 符号等
  • 标识符不能以数字开头,不能是关键字 if for 等...并且严格区分大小写

【建议遵守】

  • 类名:每个单词的首字母大写(大驼峰)
  • 方法名:首字母小写,后面每个单词首字母大写(小驼峰)
  • 变量名:首字母小写,后面每个单词首字母大写(小驼峰)
  • 建议不要使用下划线开头,反例:_price
  • 禁止使用拼英!反例:jiage
  • 不要过度缩写,要见名之意

目前就先建议这么多,后面碰到了我们再提一嘴,一个良好的编程规范对你我都好!

这里还想强调一点, Java 中的代码风格,左括号前是不换行的,右括号如果后面有 else 也是不换行的

3.3 整型家族变量

public class TestDemo {
    public static void main(String[] args) {
        int a = 10;
        System.out.println(Integer.MAX_VALUE); //打印 int 能存储的最大值
        System.out.println(Integer.MIN_VALUE); //打印 int 能存储的最小值
        short s = 20;
        System.out.println(Short.MAX_VALUE); //打印 short 能存储的最大值
        System.out.println(Short.MIN_VALUE); //打印 short 能存储的最小值
        long l = 30L;
        System.out.println(Long.MAX_VALUE); //打印 long 能存储的最大值
        System.out.println(Long.MIN_VALUE); //打印 long 能存储的最小值
        char c = 'w';
        System.out.println(Character.MAX_VALUE); //打印 char 能存储的最大值(符号)
        System.out.println(Character.MIN_VALUE); //打印 char 能存储的最小值(符号)
    }
}

这里我们有几点要注意:

  • 这些变量类型在任何系统上的大小都不会改变
  • int 的包装类为 Integershort 的包装类为 Shortlong 的包装类为 Longchar 的包装类为 Character 这些类不了解没没关系,后期会一一讲解
  • 长整型后面建议加上l或L,第一为了与 int 区分,但更建议加大写L,小写 l 与 1 不好区分
  • Java中 char 占两个字节,因为使用的是 Unicode 编码,表示的字符种类更多,包括中文。
  • 如果使用 javac 编译的话,如果程序中有中文,可能会报错,此时我们在 javac 时加上 -encoding UTF-8 Test.java 就行了
相关文章
|
2月前
|
存储 Java Go
【Java】(3)8种基本数据类型的分析、数据类型转换规则、转义字符的列举
牢记类型转换规则在脑海中将编译和运行两个阶段分开,这是两个不同的阶段,不要弄混!
207 2
|
2月前
|
Java Go 开发工具
【Java】(2)Java数据类型阐述、基本数据类型的占用和范围、二进制的讲述
数据的一种表示形式。十进制表示满十进一原则。二进制表示满二进一原则。例如:十进制例如:二进制计算机在任何情况下都只能识别二进制。
143 1
|
3月前
|
安全 Java
使用Java多态性进行数据类型转换
以上示范了如何通过多态性来执行安全有效地对于Java对象间相互之间进行正确方式与场合下正确格式与条件限定内对于各个层级关系内部成员及其功能调取与应有操作处理过程,并通过 `instanceof`关键字确保了程序运行期间遵循逻辑合理并符合预设规则条件限定内正常工作流程而无需担忧潜藏风险问题出现可能带来影响结果质量问题情况存在可能。
166 12
|
9月前
|
存储 Java
# 【Java全栈学习笔记-U1-day02】变量+数据类型+运算符
本篇笔记主要围绕Java全栈学习的第二天内容展开,涵盖了变量、数据类型、运算符以及Scanner类的应用。首先介绍了变量的概念与命名规范,以及如何定义和使用变量;接着详细讲解了Java中的基本数据类型,包括整型、浮点型、字符型、布尔型等,并通过实例演示了数据类型的运用。随后,深入探讨了各类运算符(赋值、算术、关系、逻辑)及其优先级,帮助理解表达式的构成。最后,介绍了如何利用Scanner类实现用户输入功能,并通过多个综合示例(如计算圆面积、购物打折、变量交换及银行利息计算)巩固所学知识。完成相关作业将进一步加深对这些基础概念的理解与实践能力。
185 13
|
3月前
|
安全 Java API
Java SE 与 Java EE 区别解析及应用场景对比
在Java编程世界中,Java SE(Java Standard Edition)和Java EE(Java Enterprise Edition)是两个重要的平台版本,它们各自有着独特的定位和应用场景。理解它们之间的差异,对于开发者选择合适的技术栈进行项目开发至关重要。
466 1
|
4月前
|
存储 缓存 算法
Java数据类型与运算符深度解析
本文深入解析Java中容易混淆的基础知识,包括八大基本数据类型(如int、Integer)、自动装箱与拆箱机制,以及运算符(如&与&&)的使用区别。通过代码示例剖析内存布局、取值范围及常见陷阱,帮助开发者写出更高效、健壮的代码,并附有面试高频问题解析,夯实基础。
|
5月前
|
存储 人工智能 JavaScript
Java中的数据类型转换
本文介绍了 Java 中常见的数据类型转换方法,涵盖字符串与整型、长整型、浮点型、布尔型及日期类型的相互转换,并讲解了可能出现的异常和处理方式。
261 0
|
6月前
|
设计模式 算法 Java
Java SE 与 Java EE 组件封装使用方法及实践指南
本指南详细介绍了Java SE与Java EE的核心技术使用方法及组件封装策略。涵盖集合框架、文件操作、Servlet、JPA、EJB和RESTful API的使用示例,提供通用工具类与基础组件封装建议,如集合工具类、文件工具类、基础Servlet、实体基类和服务基类等。同时,通过分层架构集成示例展示Servlet、EJB和JPA的协同工作,并总结组件封装的最佳实践,包括单一职责原则、接口抽象、依赖注入、事务管理和异常处理等。适合希望提升代码可维护性和扩展性的开发者参考。
212 0
|
9月前
|
Java
课时14:Java数据类型划分(初见String类)
课时14介绍Java数据类型,重点初见String类。通过三个范例讲解:观察String型变量、"+"操作符的使用问题及转义字符的应用。String不是基本数据类型而是引用类型,但使用方式类似基本类型。课程涵盖字符串连接、数学运算与字符串混合使用时的注意事项以及常用转义字符的用法。
285 9
|
9月前
|
Java
课时13:Java数据类型划分(布尔型)
观察布尔型的操作。布尔是一位数学家的名字,这个布尔发明了两个单词:True、False(一个表示真一个表示假)。一般布尔类型都只表示逻辑的计算结果。
232 9