java基础教程(2)-Java基本数据类型

简介: 【4月更文挑战第2天】这段内容介绍了Java程序的基础和基本数据类型。一个简单的Java程序由`public class`定义,包含`main`方法,用于控制台输出。程序中类名、文件名需一致,注释有三种形式。Java有8种基本数据类型:4种整型(byte, short, int, long),2种浮点型(float, double),1种字符型(char)和1种布尔型(boolean)。整型的范围由字节数决定,浮点型如float和double的范围与其位数布局相关。char类型用于Unicode字符,boolean表示真或假。

一个Java程序的基本结构:

public class DemoTest {
   
    public static void main(String[] args) {
   
     // 打印一句话
        System.out.println("hello...");
    }
}

以上程序功能是实现打印一句话到控制台输出;这是一个基本的java结构,所有java程序都是这种结构;

以上基本结构主要包含如下信息:

  • public 是访问修饰符,用于控制程序的其他部分对块代码的访问级别; 其他修饰符还有private protected default等
  • class关键字表明java程序中的全部内容包含在类中;java程序的所有内容必须放到类中;类是一个基本的构建块;类是一个程序的基本单位;
  • class后面跟着的是类名:类名必须以英文字母开头,后接字母,数字和下划线的组合;习惯以大写字母开头;类名不能是java的保留字;
  • 源代码的文件名称必须与公共的类名相同;并以java作为扩展名;java对大小写是敏感的;
  • 一个类中的所有内容都包含在{}中,在{}内部可以定义多个方法;方法中的语句也是包含在{}中;
  • 方法定义了一组执行语句,方法内部的代码将会被依次顺序执行。上面代码中的方法名是main,返回值是void,表示这个方法没有返回任何值;
  • Java入口程序规定的方法必须是静态方法,用static修饰,方法名必须为 main ,括号内的参数必须是String数组。
  • 以上代码中,main方法内部包含一个注释,和一个执行语句;

    在Java程序中,注释是一种给人阅读的文本,不是程序的一部分,所以编译器会自动忽略注释; Java有3种注释,第一种是单行注释,以双斜线开头,直到这一行的结尾结束:而多行注释以 / 星号开头,以 / 结束,可以有多行:还有一种特殊的多行注释,以 /* 开头,以 / 结束,如果有多行,每行通常以星号开头:这种特殊的多行注释需要写在类和方法的定义处,可以用于自动创建文档。
    其中执行语句实现输出一个文本到控制台; Java的每一行执行语句必须以分号结束:

  • 如果没有IDE而去执行java程序,需要手动编译后执行

    使用javac DemoTest.java 会编译出一个class文件
    使用java DemoTest 执行程序,输出文本;

  • 有IDE的话,点运行按钮;IDE会自动执行以上操作;

Java中的基本数据类型:

Java是一种强类型语言;

Java中一共有8中基本数据类型;

基本数据类型是CPU可以直接进行运算的类型。

8种数据类型分别是:

四种整数类型 btye short int long
两种浮点类型: float double
一种字符类型: char
一种布尔类型: boolean

要了解Java定义的这些基本数据类型的区别,需要简单了解一下计算机内存的基本结构。

计算机内存的最小存储单元是字节(byte),一个字节就是一个8位二进制数,即8个bit。它的二进制表示范围从 00000000 ~ 11111111 ,换算成十进制是0~255,换算成十六进制是 00 ~ ff 。

整型

Java 中的四种整型,表示的数字范围也是从小到大的,之所以表示范围不同主要和他们存储数据时所占的字节数有关。

Java只定义了带符号的整型,因此,最高位的bit表示符号位(0表示正数,1表示负数)
整型的这几个类型中:

  • byte:byte 用 1 个字节来存储,范围为-128(-2^7) 到 127(2^7-1),
    • short:short 用 2 个字节存储,范围为-32,768 (-2^15)到 32,767 (2^15-1)
    • int:int 用 4 个字节存储,范围为-2,147,483,648 (-2^31)到 2,147,483,647 (2^31-1)
    • long:long 用 8 个字节存储,范围为-9,223,372,036,854,775,808 (-2^63)
      到 9,223,372,036, 854,775,807 (2^63-1),

浮点型

在计算机科学中,浮点是一种对于实数的近似值数值表现法,由一个有效数字(即尾数)加上幂数来表示,通常是乘以某个基数的整数次指数得到。以这种表示法表示的数值,称为浮点数(floating-point number)。

浮点类型的数就是小数,因为小数用科学计数法表示的时候,小数点是可以“浮动”的,所以称为浮点数。

浮点型又分为单精度浮点型和双精度浮点型:

  • float是单精度浮点数,在计算机存储器中占用 4 个字节(32 bits);
  • double双精度浮点数,使用 64 位(8 字节) 来存储一个浮点数;

为什么在java中int类型和float类型都是4个字节,但是float类型的数值范围却大于int的数值范围

其原因就是:int类型和float组成结构不同:
int类型:第一位是符号位代表正负,剩下的31位表示数值位。float类型:第一位是符号位代表正负,余下的是八位指数位和23位底数位(底数是无符号的)。
int:此类型是各个位之间表示的值直接相加,所以表示的值范围是-2^31 ~ 2^31 - 1。
float:此类型是8位指数23位底数,这么来说可以表示最大的值就是2^23^127,最小值就是-2^23^127。所以范围就是-2^23^127 ~ 2^23^127。
在Java的不同数据类型之间虽然可能是占用相同的字节,但是不同数据类型对于位数的组合不同,数值范围也会有很大的区别。

字符类型char

字符类型 char 表示一个字符。使用2个字节(16位)存储;

Java的 char 类型除了可表示标准的ASCII外,还可以表示一个Unicode字符: char 类型使用单引号 ' ,且仅有一个字符;

布尔值类型boolean

布尔类型 boolean 只有 true 和 false 两个值,布尔类型总是关系运算的计算结果;
Java语言对布尔类型的存储并没有做规定,因为理论上存储布尔类型只需要1 bit,但是通常JVM内部会把 boolean 表示为4字节整数;

相关文章
|
2天前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
2天前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
|
2天前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
|
11天前
|
JSON Java Maven
实现Java Spring Boot FCM推送教程
本指南介绍了如何在Spring Boot项目中集成Firebase云消息服务(FCM),包括创建项目、添加依赖、配置服务账户密钥、编写推送服务类以及发送消息等步骤,帮助开发者快速实现推送通知功能。
25 2
|
11天前
|
存储 Java 关系型数据库
[Java]“不同族”基本数据类型间只能“强转”吗?
本文探讨了不同位二进制表示范围的计算方法,重点分析了Java中int和char类型之间的转换规则,以及float与int类型之间的转换特性。通过具体示例说明了显式和隐式转换的条件和限制。
27 0
[Java]“不同族”基本数据类型间只能“强转”吗?
|
9天前
|
存储 Java 编译器
[Java]基本数据类型与引用类型赋值的底层分析
本文详细分析了Java中不同类型引用的存储方式,包括int、Integer、int[]、Integer[]等,并探讨了byte与其他类型间的转换及String的相关特性。文章通过多个示例解释了引用和对象的存储位置,以及字符串常量池的使用。此外,还对比了String和StringBuilder的性能差异,帮助读者深入理解Java内存管理机制。
12 0
|
8天前
|
监控 安全 Java
在 Java 中使用线程池监控以及动态调整线程池时需要注意什么?
【10月更文挑战第22天】在进行线程池的监控和动态调整时,要综合考虑多方面的因素,谨慎操作,以确保线程池能够高效、稳定地运行,满足业务的需求。
79 38
|
5天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?
|
9天前
|
Java 调度
[Java]线程生命周期与线程通信
本文详细探讨了线程生命周期与线程通信。文章首先分析了线程的五个基本状态及其转换过程,结合JDK1.8版本的特点进行了深入讲解。接着,通过多个实例介绍了线程通信的几种实现方式,包括使用`volatile`关键字、`Object`类的`wait()`和`notify()`方法、`CountDownLatch`、`ReentrantLock`结合`Condition`以及`LockSupport`等工具。全文旨在帮助读者理解线程管理的核心概念和技术细节。
25 1
[Java]线程生命周期与线程通信
|
7天前
|
安全 Java
在 Java 中使用实现 Runnable 接口的方式创建线程
【10月更文挑战第22天】通过以上内容的介绍,相信你已经对在 Java 中如何使用实现 Runnable 接口的方式创建线程有了更深入的了解。在实际应用中,需要根据具体的需求和场景,合理选择线程创建方式,并注意线程安全、同步、通信等相关问题,以确保程序的正确性和稳定性。