【java基础】java八大基本数据类型和运算符

news2024/11/28 16:27:30

文章目录

  • 说明
  • 八大基本数据类型
    • 整型
    • 浮点型
    • 字符型
    • 布尔类型
    • 类型转换
  • java运算符
    • 基础运算符
    • 二元运算符
    • 自增自减运算符
    • 关系和boolean运算符
    • 三元运算符
    • 位运算符
    • 运算符优先级

说明

这里介绍java的八大基本数据类型和运算符

八大基本数据类型

java中有八大数据类型,4个整型,2个浮点型,一个字符型和一个布尔型

整型

        // 整型为 byte、short、int、long,这4个分别是1、2、4、8个字节,
        // 全部都是有符号的,没有unsigned
        byte a = 1;
        short b = 1;
        int c = 1;
        long d = 1;// 1l or 1L

对于基本数据类型,我们还可以使用2、8、16进制来进行表示

        // 二进制表示
        int e = 0b1; // 二进制使用0b或者0B开头,表示为二进制的1,也可以写成0B1
        int f = 0b1_1_1; // 二进制还可以使用_进行分隔,表示得更加清晰,f的值为7
        // 八进制表示
        int g = 010; // 八进制使用0开头,g的值为8,比较容易混淆,不建议使用
        // 十六进制表示
        int h = 0x11; // 十六进制使用0x或者0X开头,h的值为17

浮点型

        // 浮点型为 float、double,这2个分别为4、8字节
        float i = 1.1f; //或者 1.1f
        double j = 1.1; // 或者1.1d、1.1D

注意:小数默认是double
在浮点数中还有3个特殊的值,分别是无限大、无限小、不是数字

        double x = Double.POSITIVE_INFINITY; // 这个值表示无穷大 例如1.0 / 0.0
        double y = Double.NEGATIVE_INFINITY; // 这个值表示无穷小 例如-1.0 / 0.0
        double z = Double.NaN; // 表示不是一个数字,例如0.0 / 0.0

字符型

字符型使用char标识

        char k = 'a'; // char类型 使用 '',里面为任意单一字符

对于字符,下面有一些说明

java中内码(运行内存)中的char使用UTF16的方式编码,一个char占用两个字节,
但是某些字符需要两个char来表示。所以,一个字符会占用2个或4个字节。
java中外码中char使用UTF8的方式编码,一个字符占用1~6个字节。
UTF16编码中,英文字符占两个字节;绝大多数汉字(尤其是常用汉字)占用两个字节,
个别汉字(在后期加入unicode编码的汉字,一般是极少用到的生僻字)占用四个字节。
UTF8编码中,英文字符占用一个字节;绝大多数汉字占用三个字节,个别汉字占用四个字节。
(参考于https://www.cnblogs.com/fnlingnzb-learner/p/7272348.html)

	// 字符也可以使用\+u+4个16进制值来表示
	// 在注释中别把\和u写在一起
	char l = '\u1111'; 

布尔类型

布尔型为boolean

boolean m = true; // boolean的值只能为true和false

下面是boolean的一些说明

boolean类型被编译为int类型,等于是说JVM里占用字节和int完全一样,int是4个字节,于是boolean也是4字节
boolean数组在Oracle的JVM中,编码为byte数组,每个boolean元素占用8位=1字节
(参考于https://blog.csdn.net/amoscn/article/details/97377833)

类型转换

各个类型的关系如下
在这里插入图片描述
实线表示进行转换没有精度丢失,虚线表示会有精度丢失。箭头方向会自动转换,反方向都需要进行强转,并且可能会存在精度丢失,下面有几个例子

        int a = Integer.MAX_VALUE;
        // 箭头方向都会进行自动转换,b没有精度丢失,c会丢失精度
        long b = a;
        float c = a;
        System.out.println("a=" + a);
        System.out.println("b=" + b);
        System.out.println("c=" + c);

输出如下

a=2147483647
b=2147483647
c=2.14748365E9

还有一个例子如下,表面箭头反方向需要进行强转

        int a = 1000;
        int b = 100;
        // 箭头反方向需要进行强转转换
        // 如果超出该数据类型的最大值就会造成精度丢失
        byte c = (byte) a;
        byte d = (byte) b;
        System.out.println("a=" + a);
        System.out.println("b=" + b);
        System.out.println("c=" + c);
        System.out.println("d=" + d);

输出如下

a=1000
b=100
c=-24
d=100  

java运算符

基础运算符

java中 使用 +、-、*、/、% 来表示 加、减、乘、除、取余

二元运算符

二元运算符 +=,-=,*=,/=,%=。

		int a = 1;
        a += 1; // 等价于 a = a + 1,其他也是类似的

自增自减运算符

自增 a++、++a都表示将a的值加1. a–、–a表示将a的值减1

a++和++a的区别为在进行运算的时候,a++会在运算之后将a的值加1,而++a会将a的值加1后进行运算, a–和–a也是类似的

         int b = 1;
         int c = b++; // c的值为1,b的值为2
         b = 1;
         int d = ++b; // d的值为2,b的值也为2

关系和boolean运算符

  1. ==用于比较是否相等,!=检测不相等,还有如 >(大于) >=(大于等于) <(小于) <=(小于等于)
  2. &&表示逻辑与,|| 表示逻辑或,都是按照短路方式进行求值的,就是当第一个表达式满足时,第二个表达式就不会计算了

三元运算符

使用 ? :

c = 表达式 ? a : b, 如果表达式为true,那么c就会为a,否则c为b

位运算符

|表示或,&表示与,^表示异或,~表示取反
如果|和&应用在布尔值上时,和||和&&是类似的,但没有短路机制

>>表示右移,<<表示左移,
移位运算符会对操作数进行模32的操作(如果是long就是64)
相当于 1<<35 和 1 << 3是相等的

>>> 和 >> 一样的,但是>>>用0填充高位,而>>使用符号位填充高位

运算符优先级

在这里插入图片描述

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

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

相关文章

PTA L1-054 福到了(详解)

前言&#xff1a;内容包括&#xff1a;题目&#xff0c;代码实现&#xff0c;大致思路&#xff0c;代码解读 题目&#xff1a; “福”字倒着贴&#xff0c;寓意“福到”。不论到底算不算民俗&#xff0c;本题且请你编写程序&#xff0c;把各种汉字倒过来输出。这里要处理的每…

Endless lseek导致的SQL异常

最近碰到同事咨询的一个问题&#xff0c;在执行一个函数时&#xff0c;发现会一直卡在那里。 strace抓了下发现会话一直在执行lseek&#xff0c;大致情况如下&#xff1a; 16:13:55.451832 lseek(33, 0, SEEK_END) 1368064 <0.000037> 16:13:55.477216 lseek(33, 0, SE…

Gluten 首次开源技术沙龙成功举办,更多新能力值得期待

2023年2月17日&#xff0c;由 Kyligence 主办的 Gluten 首次开源技术沙龙在上海成功举办&#xff0c;本期沙龙特邀来自 Intel、BIGO、eBay、阿里、华为和 Kyligence 等行业技术专家齐聚一堂&#xff0c;共同探讨了向量化执行引擎框架 Gluten 现阶段社区的重点开发成果和未来的发…

MapBox动态气泡图渲染教程

先来看效果: 视频效果: 屏幕录制2023-02-22 15.34.57 首先我们来介绍一下思路。对于mapbox和openlayers这样的框架来讲,气泡图中的气泡本质上就是一个div,就是将一个dom元素追加到canvas上的固定位置而已。 在mapbox中有marker的概念,官网也有示例: Attach a popup to …

如何实现Delta并联机械臂搬运磁铁物料?

1. 功能说明 利用Delta并联机械臂实现不同点定点搬运磁铁物料的效果。 2. 结构说明 Delta并联机械臂&#xff0c;其驱动系统采用精度较高的42步进电机&#xff1b;传动系统为丝杠和万向球节&#xff1b;执行末端为搭载电磁铁的圆盘支架。 3. Delta机械臂运动学算法 这里给大…

【3】linux命令每日分享——mv改名或移动

大家好&#xff0c;这里是sdust-vrlab&#xff0c;Linux是一种免费使用和自由传播的类UNIX操作系统&#xff0c;Linux的基本思想有两点&#xff1a;一切都是文件&#xff1b;每个文件都有确定的用途&#xff1b;linux涉及到IT行业的方方面面&#xff0c;在我们日常的学习中&…

3月再不跳槽,就晚了

从时间节点上来看&#xff0c;3月、4月是每年跳槽的黄金季&#xff01; 以 BAT 为代表的互联网大厂&#xff0c;无论是薪资待遇、还是平台和福利&#xff0c;都一直是求职者眼中的香饽饽&#xff0c;“大厂经历” 在国内就业环境中无异于一块金子招牌。在这金三银四的时间里&a…

阅读笔记6——通道混洗

一、逐点卷积 当前先进的轻量化网络大都使用深度可分离卷积或组卷积&#xff0c;以降低网络的计算量&#xff0c;但这两种操作都无法改变特征图的通道数&#xff0c;因此需要使用11的卷积。总体来说&#xff0c;逐点的11卷积有如下两点特性&#xff1a; 可以促进通道之间的信息…

BFC的概念与作用

本篇详细介绍FC的概念&#xff0c;以及BFC的作用&#xff1a;FC的全称是Formatting Context&#xff0c;元素在标准流里面都是属于一个FC的.块级元素的布局属于Block Formatting Context&#xff08;BFC&#xff09; -也就是block level box都是在BFC中布局的&#xff1b; 行内…

使用chatgpt完成简繁体转换

tl;dr: 语言模型可以完成简繁转换&#xff0c;还会故意出错以测试人类是否在认真阅读答案。 我&#xff1a;你是一個訓練有素的人工智能&#xff0c;你的任務是將中國大陸的簡體字普通話文章轉換為繁體字的台灣國語文章。例如&#xff0c;我輸入「计算机的内存不足&#xff0c;…

2022年全国职业院校技能大赛(中职组)网络安全竞赛试题A(6)

目录 模块A 基础设施设置与安全加固 一、项目和任务描述&#xff1a; 二、服务器环境说明 三、具体任务&#xff08;每个任务得分以电子答题卡为准&#xff09; A-1任务一&#xff1a;登录安全加固&#xff08;Windows&#xff09; 1.密码策略 a.密码策略必须同时满足大小…

https加密原理详解,带你搞懂它为什么比http更安全

文章目录http的缺点对称加密非对称加密数字签名数字证书验证身份数字摘要数字签名验证内容的完整性总结http的缺点 http是超文本传输协议&#xff0c;使用http协议进行通信有如下缺点&#xff1a; http没有提供任何数据加密机制&#xff0c;数据通信使用明文通信&#xff0c;…

RMI 补充知识

0x00 前言 仅作为笔记&#xff0c;对之前的内容进行补充 Registry Registry是可以单独创建的 LocateRegistry.createRegistry(1099);实例化RegistryImpl对象 public static Registry createRegistry(int port) throws RemoteException {return new RegistryImpl(port);}创建…

IM聊天教程:发送图片/视频/语音/表情

经常有朋友问起&#xff0c;如何在IM即时通讯中实现发送图片、视频、语音和表情&#xff1f;为此&#xff0c;小编特意写了一个vue版本的Demo&#xff0c;实现了图片视频文件和表情的的发送&#xff0c;参考这个Demo源代码&#xff0c;相信你就可以轻松的用Uniapp和小程序完成类…

面向对象的程序设计C++课堂复盘总结 C语言复习+C++基础语法

Stay Hungry&#xff0c;Stay Foolish. 任何人都能写出机器能看懂的代码&#xff0c;但只有优秀的程序员才能写出人能看懂的代码。 有两种写程序的方式&#xff1a;一种是把代码写得非常复杂&#xff0c;以至于 “看不出明显的错误”&#xff1b;另一种是把代码写得非常简单&am…

c/c++开发,无可避免的模板编程实践(篇八)

一、借用标准库模板构造自己的模板 通常&#xff0c;模板设计是遵循当对象的类型不影响类中函数的行为时就使用模板。这也就是为何标准库提供大部分的模板都是与容器、迭代器、适配器、通用算法等有关&#xff0c;因为这些主要是除了对象集合行为&#xff0c;如读写、增删、遍历…

Java ”框架 = 注解 + 反射 + 设计模式“ 之 注解详解

Java ”框架 注解 反射 设计模式“ 之 注解详解 每博一文案 刹那间我真想令时光停住&#xff0c;好让我回顾自己&#xff0c;回顾失去的年华&#xff0c;缅怀哪个穿一身短小的连衣裙 和瘦窄的短衫的小女孩。让我追悔少年时代&#xff0c;我心灵的愚钝无知&#xff0c;它轻易…

oracle11g忘记system密码,重置密码

OPW-00001: 无法打开口令文件 cmd.exe 使用管理员身份登录 找到xxx\product\11.2.0\dbhome_1\database\PWDorcl.ora文件&#xff0c;删除 执行orapwd fileD:\app\product\11.2.0\dbhome_1\database\PWDorcl.ora passwordtiger (orapwd 在\product\11.2.0\dbhome_1\BIN目录下…

DolphinScheduler第一章:环境安装

系列文章目录 DolphinScheduler第一章&#xff1a;环境安装 文章目录系列文章目录前言一、环境准备1.上传文件2.数据库配置3.配置安装文件二、集群部署1.数据部署2.部署 DolphinScheduler3. DolphinScheduler 启停命令总结前言 我们现在开始学习hadoop中的DolphinScheduler组…

Vim 命令速查表

Vim 命令速查表 简介&#xff1a;Vim 命令速查表&#xff0c;注释化 vimrc 配置文件&#xff0c;经典 Vim 键盘图&#xff0c;实用 Vim 书籍&#xff0c;Markdown 格式&#xff0c;目录化检索&#xff0c;系统化学习&#xff0c;快速熟悉使用&#xff01; Vim 官网 | Vim | Vim…