Java数据类型

embedded/2024/11/7 13:52:41/

一、基本数据类型
1、数值型:
(1)、整型
1、byte:一个字节
2、short:2个字节
3、int:4个字节
4、long:8个字节
(2)、浮点型
1、float:4个字节
2、double:8个字节
2、字符型
char:2个字节
3、布尔型
boolean:1个字节
二、引用数据类型
1、string
2、数组
3、类(Scanner)
4、接口
5、对象

变量和常量
1、变量:一个变化的量,它是在内存中存储
定义(三要素):数据类型 变量名=变量值;
注意:
1、没有赋值的变量不能直接使用
2、在同一作用域中变量不能重复定义(后续:成员变量,局部变量)
3、变量在使用前必须声明数据类型
4、变量的值在声明之后是可以改变的
变量内存图
在这里插入图片描述
理解变量:内存中变量好比旅馆的房间,内存中的常量好比住旅馆房间的人
在这里插入图片描述
2、常量
1、 字面常量
2、整形常量:10、11…默认类型为int类型
3、浮点常量:3.15,315e2,默认类型是double类型
4、‘a’:字符常量
5、true,false:布尔常量

数据类型转换
1、自动类型转换
大类型转小类型
2、强制类型转换
小类型转大类型(小类型 变量=(小类型)大类型值)

Java运算符
1、算术运算符
+:求和,正数,连接
-:求差,负数
:求积
/:求商(数学)如:13.0/2=6.5,13/2=6
%:求余数(整数)符号和被除数要一致
++:后加:代表先运算后自加,先加:代表先自加后运算
– :后减代表先运算后自减,先减:代表先自减后运算
2、赋值运算符
=:赋值
扩展赋值运算符(其实是算数运算符和赋值运算符的结合)
+=,-=,
=,/=,%=
好处:
1、自动强制类型转换
2、简单
3、编译速度快

3、关系运算符1、>,<,>=,<=主要用于数值型运算:整形。浮点型,字符型2、==,!=;主要用于基本数据类型和引用数据类型结果的布尔值优先级(>,<,>=,<=)大于(==,!=)4、逻辑运算符1、&,|,^,!2、&&,||操作数:布尔值;结果布尔值优先级:!>&>^>|逻辑与(或):&,|;短路与(或):&&,||;相同点:两者运算规则一致不同点:&&:如果左边为false,则右边不计算了结果为false||:如果左边是true,右边就不计算了,结果是true&,|还可以做位运算5&6优先级:关系>逻辑5、位运算符(位移)1、&,|,^,~2、<<:左移动>>:右移动>>>:无符号位右移

public class TestOperator5{
public static void main(String[] args){

System.out.println(5&6);//4;
System.out.println(5|6);//7;
System.out.println(5^6);//3;System.out.println(~6);//-7
System.out.println(~(-7));//如果一个数和另外一个数异或两次,还是原来的数;可以用作加密解密;
System.out.println(5^6^6);
System.out.println(5^3^3);System.out.println("=================================");

/*
<<:左移,左移n位,相当于乘以2的n次方,右边空位补0;
>>:右移,右移n位,相当于除以2的n次方,左边空位补符号位;
16:000…0001 0000;
16<<1: 000…0010 0000;右边空位补0;
16>>1: 000…0000 1000; 左边空位补符号位;
*/
System.out.println(16<<1);//32;
System.out.println(16<<2);//64;
System.out.println(16<<3);//128;
System.out.println(16>>3);//2

/*

:无符号右移,右移n位,相当于除以2的n次方,左边空位补0;
-7: 111…1111 1001;
-7>>>1: 011…1111 1100;
*/
System.out.println(-7>>>1);//2147483644;

}
}

6、条件运算符x?y:z,三个操作数x表示布尔表达式,如果是true,表达式的值就是y,如果是false,表达式的值是z

运算符的结合性
表达式的运算符优先级相同,从右往左算
例:
5>6?‘a’:‘b’>‘c’?‘c’:‘d’:从右往左
int x=y=z=10;从右往左
运算符的优先级
赋值<条件<关系<算数<单目


http://www.ppmy.cn/embedded/126017.html

相关文章

Ultralytics_yolov10目标检测,预处理函数入口

日期&#xff1a;2024.10.7. 随着Ultralytics的更新&#xff0c;yolov5-v11可以统一使用Ultralytics包体&#xff0c;我之前分析的yolov5关键代码定位在Ultralytics中不适用&#xff0c;这篇博客更新一下。 1. Ultralytics包体版本&#xff1a; $ pip list | grep ultralytic…

优达学城 Generative AI 课程2:Large Language Models (LLMs) Text Generation

建议先了解一下附录知识。 文章目录 1 官方课程内容自述Lesson 1: 大型语言模型&#xff08;LLMs&#xff09;简介Lesson 2: 自然语言处理&#xff08;NLP&#xff09;基础Lesson 3: Transformer 和注意力机制Lesson 4: 检索增强生成&#xff08;RAG&#xff09;Lesson 5: 为大…

Python编程:创意爱心表白代码集

在寻找一种特别的方式来表达你的爱意吗&#xff1f;使用Python编程&#xff0c;你可以创造出独一无二的爱心图案&#xff0c;为你的表白增添一份特别的浪漫。这里为你精选了六种不同风格的爱心表白代码&#xff0c;让你的创意和情感通过代码展现出来。 话不多说&#xff0c;咱…

frida

出frida魔改过检测方案

制造已然走出国门,数据如何走向全球?

1 行业趋势和背景 1.1 海外全球化——由中国制造到中国品牌全球造的全球化布局 为实现资源的最优配置、效率的最大化&#xff0c;现在越来越多的制造业企业&#xff0c;凭借着自己的品牌力和技术能力&#xff0c;进行全球化布局&#xff0c;加速从原来的“中国制造”到“中国…

rabbitmq死信队列详解与使用

RabbitMQ 中的死信队列&#xff08;Dead Letter Queue, DLQ&#xff09;是处理无法正常消费消息的有效机制。以下是对死信队列的详细解读和使用方法。 1. 什么是死信队列 死信队列是一个特殊的队列&#xff0c;用于存储那些无法被正常消费的消息。这些消息通常会被转移到死信…

PostgreSQL学习笔记六:模式SCHEMA

模式&#xff08;Schema&#xff09; PostgreSQL中的模式&#xff08;Schema&#xff09;是一个命名的数据库对象集合&#xff0c;包括表、视图、索引、数据类型、函数、存储过程和操作符等。模式的主要作用是组织和命名空间数据库对象&#xff0c;使得同一个数据库中可以包含…

基于PHP+MySQL组合开发的720VR全景在线制作网站源码系统 带完整的安装代码包以及搭建部署教程

系统概述 该系统采用PHP作为后端开发语言&#xff0c;MySQL作为数据库管理系统&#xff0c;两者结合具有高度的稳定性和可扩展性。PHP作为一种广泛使用的开源脚本语言&#xff0c;具有丰富的库函数和强大的社区支持&#xff0c;能够轻松处理各种复杂的业务逻辑。MySQL则以其高…