Java数据类型,变量与运算符

news2024/12/23 21:01:14

 1.字面常量

常量是在程序运行期间,固定不变的量称为常量。

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello,world");
    }
}

在以上程序中,输出的Hello Word,其中的“Hello Word”就是字面常量。

字面常量的分类:

  • 字符串常量
  • 整形常量
  • 浮点数常量
  • 字符常量
  • 布尔常量
  • 空常量

注意:字符串,整形,浮点型,字符型以及布尔型,在Java中都称为数据类型。

2.数据类型

在java中数据类型主要分为两类:基本数据类型引用数据类型

基本数据类型有四类八种

1.四类:整形,浮点型,字符型以及布尔型

2.八种

 注意:

  • 不论是在16位系统还是32位系统,int都占用4个字节,long都占8个字节
  • 整形和浮点型都是带有符号的
  • 整型默认为int型,浮点型默认为double
  • 字符串属于引用类型,该中类型后序介绍

总结:不管你是在多少位操作系统下,这个数据类型所占的字节数都是一样的,这就是java的可移植性。

3.变量

3.1变量的概念

        简单来说变量就是可以改变的量,在我们的日常生活中有很多值是需要改变的,比如说年龄,身高,成绩分数等等,在这个时候就要通过不同的数据类型来定义不同的变量。

3.2语法格式

定义变量的语法格式为:

数据类型   变量名  =  初始值;

比如:

int a = 10; // 定义整形变量a,a是变量名也称为标识符,该变量中放置的值为10

3.3整型变量

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

注意事项:

1.int无论在任何操作系统下都是4个字节。

2.在给变量设置初始值时,值不能超过int的表示范围,否则会溢出。

3.变量在使用之前必须要赋初值,否则编译报错。

4.int的包装类型为Integer

5.java所有的数据类型都是有符号的,没有无符号这个说法。

长整型变量
public class test {
    public static void main(String[] args){
        long a = 10L;
        System.out.println(a);
    }
}

注意事项:

1.为了区分int和long,一般建议在初始值后面加上有个

2.长整型在所有操作系统下都占8个字节

3.long的包装类型为Long

短整型变量
public class test {
    public static void main(String[] args){
        short a = 10;
        System.out.println(a);
    }
}

注意事项:

 1. short在任何系统下都占2个字节
2. short的表示范围为:-32768 ~ 32767
3. 使用时注意不要超过范围(一般使用比较少)
4. short的包装类型为Short

字节型变量
public class test {
    public static void main(String[] args){
        byte a = 10;
        System.out.println(a);
    }
}

注意事项:
1. byte在任何系统下都占1个字节
2. byte的范围是:-128 ~ 127
3. 字节的包装类型为Byte

可以通过这两条语句分别打印最大值和最小值

3.4 浮点型变量

双精度浮点型
double d = 3.14;
System.Out.println(d);

在下面这个代码中会输出0.5吗?

int a = 1;
int b = 2;
System.out.println(a / b);

 肯定不会啊,在java中,int 除以 int 的值仍然是 int(会直接舍弃小数部分)。如果想得到 0.5, 需要使用 double 类型计算。

这个代码的运行结果是什么?

double num = 1.1;
System.out.println(num * num);

执行结果为
1.2100000000000002

注意事项:
1. double在任何系统下都占8个字节
2. 浮点数与整数在内存中的存储方式不同,不能单纯使用 的形式来计算
3. double的包装类型为Double
4. double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差,因此浮点数是个近似值,并不是精确值。

单精度浮点型
float num = 1.0f; // 写作 1.0F 也可以
System.out.println(num);

 float 类型在 Java 中占四个字节, 同样遵守 IEEE 754 标准. 由于表示的数据精度范围较小, 一般在工程上用到浮点数都优先考虑 double, 不太推荐使用 float. float的包装类型为Float。

3.5字符型变量

char c1 = 'A'; // 大写字母
char c2 = '1'; // 数字字符
System.out.println(c1);
System.out.println(c2);
// 注意:java中的字符可以存放整形
char c3 = '帅';
System.out.println(c3);

3.6布尔型数据

布尔类型只能用来表示真假,类似网络用语:“尊都假都”。

boolean b = true;
System.out.println(b);
b = false;
System.out.println(b);

注意事项: 

1. boolean 类型的变量只有两种取值, true 表示真, false 表示假.
2. Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法
3. Java虚拟机规范中,并没有明确规定boolean占几个字节,也没有专门用来处理boolean的字节码指令,在Oracle公司的虚拟机实现中,boolean占1个字节。
4. boolean的包装类型为Boolean


3.7类型转换

Java 作为一个强类型编程语言, 当不同类型之间的变量相互赋值的时候, 会有教严格的校验
比如说:

int a = 10;
long b = 100L;
b = a; // 可以通过编译
a = b; // 编译失败

在java中,当参与运算的数据类型不一致时,就会进行类型转换。

主要可以分为两种转换:自动类型转换(隐式),强制类型转换(显示)

自动类型转换:就是当你不知道的情况下编译器会帮你把这些事情给做了。

强制类型转换:当数据类型由大到小时,需要强转,否则会编译失败。

注意事项:

1. 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型
2. 如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是可能精度丢失
3. 将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查
4. 强制类型转换不一定能成功,不相干的类型不能互相转换


3.8类型提升

不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的

 int a = 10;
long b = 20;
int c = a + b; // 编译出错: a + b==》int + long--> long + long 赋值给int时会丢失数据
long d = a + b; // 编译成功:a + b==>int + long--->long + long 赋值给long

结论:

 1. 不同类型的数据混合运算, 范围小的会提升成范围大的.
 2. 对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算

4.字符串类型 

在Java中使用String类定义字符串类型,比如
 

public static void main(String[] args) {
    String s1 = "hello";
    String s2 = " world";
    System.out.println(s1);
    System.out.println(s2);
    System.out.println(s1+s2); // s1+s2表示:将s1和s2进行拼接
}

本节对只是对字符串进行简单的介绍,大家能够正常使用即可,后序会详细给大家介绍
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1139334.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go语言的Mutex

在本教程中,我们将了解互斥体。我们还将学习如何使用互斥体和通道解决竞争条件。 关键部分 在跳转到互斥体之前,了解并发编程中临界区的概念非常重要。当程序并发运行时,修改共享资源的代码部分不应被多个Goroutines同时访问。这部分修改共…

Delft3D水动力-富营养化模型实践技术高级应用

湖泊富营养化等水质问题严重威胁我国经济社会的发展,也是水环境和水生态领域科研热点之一。水环境模型是制定湖泊富营养化控制对策,预测湖泊水环境发展轨迹的重要工具,在环境影响评价、排污口论证等方面也有着广泛的应用。荷兰Delft研究所开发…

腾讯云轻量应用服务器性能如何?来自学生的评价

腾讯云轻量应用服务器怎么样?CPU性能如何?我们班同学人手一台,轻量服务器简单高效快速部署,不限制CPU性能,并且费用很低,很适合我们这种群生群体。可以的话,可以推出一些适合学生用户的GPU实例&…

二叉树问题——验证二叉搜索树

摘要 98. 验证二叉搜索树 一、验证二叉搜索树解析 给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是…

何为自制力?如何提高自制力?

什么是自制力? 自制力也即是自我控制能力,是一个人如何去抵御外部诱惑力,从而坚持自己的原本计划,坚定去完成目标。除了外部诱惑力,也可以指的是面对困境,不良情绪等外部因素。 自制力是自我管理能力的体…

【Qt】文件系统

文章目录 文件系统文件操作案例:显示路径到标题框,显示内容到文本框对文件进行写操作获取文件相关信息 文件系统 Qt 通过QIODevice提供了对 I/O 设备的抽象,这些设备具有读写字节块的能力,下面是 I/O 设备的类图: QIO…

【Proteus仿真】【STM32单片机】智能助眠机系统设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用蜂鸣器闹铃模块、LCD1602显示模块、心率血氧模块、PCF8691 ADC模块、按键模块等。 主要功能: 系统运行后,LCD1602显示传…

【开源】基于SpringBoot的高校学院网站的设计和实现

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学院院系模块2.2 竞赛报名模块2.3 教育教学模块2.4 招生就业模块2.5 实时信息模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 学院院系表3.2.2 竞赛报名表3.2.3 教育教学表3.2.4 招生就业表3.2.5 实时信息表 四、系…

校园门禁升级改造,终于看到了希望!

随着社会的不断发展和技术的日益进步,安全和访问控制成为了各种场所和组织的首要关切。门禁监控系统作为一种融合了物理安全与电子监控的创新解决方案,已经成为了现代社会不可或缺的一部分。 客户案例 企业办公楼 福州某企业办公楼公司采用了泛地缘科技…

【开源】基于SpringBoot的农村物流配送系统的设计和实现

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统登录、注册界面2.2 系统功能2.2.1 快递信息管理:2.2.2 位置信息管理:2.2.3 配送人员分配:2.2.4 路线规划:2.2.5 个人中心:2.2.6 退换快递处理:…

Spring源码-3.Bean的后置处理器

Bean后置处理器与注解的关系 首先以一个没有添加额外的后置处理器来说明:️GenericApplicationContext GenericApplicationContext context new GenericApplicationContext();public class Bean1 {private static final Logger log LoggerFactory.getLogger(Bea…

工作流审批平台,可迁移,可快速开发审批单(源码)

前言 activiti工作流引擎项目,企业erp、oa、hr、crm等企事业办公系统轻松落地,请假审批demo从流程绘制到审批结束实例。 一、项目形式 springbootvueactiviti集成了activiti在线编辑器,流行的前后端分离部署开发模式,快速开发平…

vscode C++项目相对路径的问题

如图所示的项目目录结构 如果要在main.cpp里用相对路径保存一个txt文件 std::ofstream file("./tree_model/my_file.txt");if (file.is_open()) {file << "This is a sample text.\n";file.close();std::cout << "File saved in the mode…

stm32 Keil V5 开发pack突然丢失

1.好好的工程,前一天可以正常编译,第二天突然无法编译,显示缺少安装包文件,如是重新下载安装包进入导入。 2.显示丢失 1.做STM32开发时,经常发现下载的DEMO代码无法打开,ST自带的更新库软件根本连不上服务器,每次到此都非常恼火。 3. CMSIS变成可红色 2. 莫名其妙的丢…

通过servlet设计一个博客系统

博客系统 准备工作servlrt依赖mysql依赖jackson依赖 服务器和数据库的交互设计数据库/数据表封装DBUtil,实现建立连接和断开连接创建实体类bloguser 编写Dao类BlogDaoUserDao 前端和服务器的交互功能一:博客列表页约定格式后端代码前端代码 功能二:实现博客详情页约定格式后端代…

NCP1256ESN65T1G具有多种保护功能 一款低功率离线电流模式PWM控制器

NCP1256ESN65T1G 包括构建几瓦到几十瓦成本高效开关模式电源所需的一切功能。该零件采用微型 TSOP-6 封装&#xff0c;供电范围高达 30 V&#xff0c;具有带抖动的 65 kHz 或 100 kHz 开关电路&#xff0c;在峰值电流模式控制下运行。当辅助侧功率开始降低时&#xff0c;该控制…

ARP欺骗攻击

ARP协议的概念 地址解析协议&#xff0c;即ARP&#xff08;Address Resolution Protocol&#xff09;&#xff0c;是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机&#xff0c;并接收返回消息&#xff0c;以此…

邂逅React及React初体验

文章目录 一、React是什么二、React数据对比三、React特点3.1 技术特点3.2 声明式编程3.3 组件化开发3.4 多平台适配 四、React开发依赖4.1 React的开发依赖4.2 Babel和React的关系4.3 React的依赖引入 五、React初体验5.1 Hello World5.2 增加按钮&#xff0c;点击修改文本5.3…

多元数据库时代,如何选择数据库基础设施?

一 多元数据库时代趋势特点 在数据库技术发展、数字化转型应用和信创三大驱动力共同作用下&#xff0c;数据库从单一架构支持多类应用演变为多类架构支持多类应用。这些架构并非替代关系&#xff0c;而是相互共存、共同发展的关系&#xff0c;数据库的多样性成为必然&#xff0…