【Java基础教程】Java数据类型

简介: Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。

65e6e9499736459d941b7a39b5fb1e73.jpg


基础数据类型💬💬💬



整数类型


Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。


整型常量


整型常量有三种表达形式:十进制、八进制、十六进制

十进制数:由0~9组成,但不能以0开头。例如23,100

八进制数:由0~7组成,且以0开头。例如027,015

十六进制数:由0~ 9和A~ F组成,且以0x开头。例如0x2C,0x3B

Java中有四种整数类型,分别是byte、short、int、long



整数类型 占用字节数 数据位 表示范围
byte 1 8位 -128~127
short 2 16位 -32268~32767
int 4 32位 -2147483648~2147483647
long 8 64位 -2的63次方~2的63次方-1


public class User {
    public static void main(String[] args) {
    int a = 1;
    System.out.println(a);
    }
}
1


浮点数类型


浮点型常量是可以带小数点的数据类型,有两种表示形式:小数点形式、指数形式

小数点形式:由整数部分,小数点和小数部分组成。例如2.34,12.76

浮点型数据可以分为单精度浮点数(float)和双精度浮点数(double)


浮点数类型 占用字节数 数据位 范围
float 4 32位 -3.4e38~3.4e38
double 8 64位 -1.7e308~1.7e308


public class User {
    public static void main(String[] args) {
    float a = 1;
    System.out.println(a);
    }
}
1.0


字符类型


在Java中,字符常量是用单引号括起来恩典单个字符,如’a’,‘B’,‘1’

在Java语言中,还存在一种特殊的字符常量,称为转义字符。它是以\开头的字符序列。

常见转义字符如下表所示


转义字符 含义
\r 回车
\n 换行
\t 水平制表符(相当于tab,缩进)
\b 退格符(Backspace)
\f 换页符


布尔型


布尔型常量只有两个值:true(真)和false(假)


public class User {
    public static void main(String[] args) {
    boolean a = true;
    System.out.println(a);
    }
}
true


字符串类型


字符串类型是用双引号括起来的由一个或多个字符构成的序列


public class User {
    public static void main(String[] args) {
    String a = "hello Java world";
    System.out.println(a);
    }
}
hello Java world


引用数据类型💬💬💬



引用数据类型是建立在八大基本数据类型基础之上,包括数组、接口、类。引用数据类型是由用户自定义,用来限制其他数据类型。简单的说,除八大基本类型之外的所有数据类型,都为引用数据类型。

所有引用类型的默认值都为 null 。


数据类型转换💬💬💬


数据范围从小到大

byte < char,short< int < long < float < double


自动类型转换


把一个表示数据范围小的数值或者变量赋值给另一个表示范围大的变量

例如:double a = 10

public class User {
    public static void main(String[] args) {
        // 自动类型转换
        double a = 10;
        System.out.println(a); // 10.0
    }
}


强制类型转换


把一个表示数据范围大的数值或者变量赋值给另一个表示范围小的变量

例如:int h = (int)77.77;

如果直接double转换int会报错


fd09f798f8a74e338c76b44a6255c2d2.png


这时需要强制类型转换为int类型(不建议使用,使用会有损耗)


public class User {
    public static void main(String[] args) {
        // 强制类型转换
        int h = (int) 77.77;
        System.out.println(h); // 77
    }
}


结束语🏆🏆🏆


🔥推荐一款模拟面试、刷题神器网站

点击跳转进入网站

1、算法篇(398题):面试必刷100题、算法入门、面试高频榜单

2、SQL篇(82题):快速入门、SQL必知必会、SQL进阶挑战、面试真题

3、大厂笔试真题:字节跳动、美团、百度、腾讯…


相关文章
|
6天前
|
JavaScript NoSQL Java
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
144 96
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
|
27天前
|
消息中间件 Java 数据库
自研Java框架 Sunrays-Framework使用教程「博客之星」
### Sunrays-Framework:助力高效开发的Java微服务框架 **Sunrays-Framework** 是一款基于 Spring Boot 构建的高效微服务开发框架,深度融合了 Spring Cloud 生态中的核心技术组件。它旨在简化数据访问、缓存管理、消息队列、文件存储等常见开发任务,帮助开发者快速构建高质量的企业级应用。 #### 核心功能 - **MyBatis-Plus**:简化数据访问层开发,提供强大的 CRUD 操作和分页功能。 - **Redis**:实现高性能缓存和分布式锁,提升系统响应速度。 - **RabbitMQ**:可靠的消息队列支持,适用于异步
自研Java框架 Sunrays-Framework使用教程「博客之星」
|
28天前
|
存储 移动开发 算法
【潜意识Java】Java基础教程:从零开始的学习之旅
本文介绍了 Java 编程语言的基础知识,涵盖从简介、程序结构到面向对象编程的核心概念。首先,Java 是一种高级、跨平台的面向对象语言,支持“一次编写,到处运行”。接着,文章详细讲解了 Java 程序的基本结构,包括包声明、导入语句、类声明和 main 方法。随后,深入探讨了基础语法,如数据类型、变量、控制结构、方法和数组。此外,还介绍了面向对象编程的关键概念,例如类与对象、继承和多态。最后,针对常见的编程错误提供了调试技巧,并总结了学习 Java 的重要性和方法。适合初学者逐步掌握 Java 编程。
52 1
|
28天前
|
前端开发 Java 开发工具
Git使用教程-将idea本地Java等文件配置到gitte上【保姆级教程】
本内容详细介绍了使用Git进行版本控制的全过程,涵盖从本地仓库创建到远程仓库配置,以及最终推送代码至远程仓库的步骤。
38 0
|
2天前
|
Java 程序员 开发者
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
35 14
|
5天前
|
安全 Java 程序员
Java 面试必问!线程构造方法和静态块的执行线程到底是谁?
大家好,我是小米。今天聊聊Java多线程面试题:线程类的构造方法和静态块是由哪个线程调用的?构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节有助于掌握Java多线程机制。下期再见! 简介: 本文通过一个常见的Java多线程面试题,详细讲解了线程类的构造方法和静态块是由哪个线程调用的。构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节对掌握Java多线程编程至关重要。
34 13
|
6天前
|
安全 Java 开发者
【JAVA】封装多线程原理
Java 中的多线程封装旨在简化使用、提高安全性和增强可维护性。通过抽象和隐藏底层细节,提供简洁接口。常见封装方式包括基于 Runnable 和 Callable 接口的任务封装,以及线程池的封装。Runnable 适用于无返回值任务,Callable 支持有返回值任务。线程池(如 ExecutorService)则用于管理和复用线程,减少性能开销。示例代码展示了如何实现这些封装,使多线程编程更加高效和安全。
|
1月前
|
监控 Java
java异步判断线程池所有任务是否执行完
通过上述步骤,您可以在Java中实现异步判断线程池所有任务是否执行完毕。这种方法使用了 `CompletionService`来监控任务的完成情况,并通过一个独立线程异步检查所有任务的执行状态。这种设计不仅简洁高效,还能确保在大量任务处理时程序的稳定性和可维护性。希望本文能为您的开发工作提供实用的指导和帮助。
109 17
|
2月前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
|
1月前
|
缓存 安全 算法
Java 多线程 面试题
Java 多线程 相关基础面试题