当前位置: 首页 > news >正文

【JavaSE】数据类型和运算符

前言

从这一篇我们开始Java的学习~


欢迎关注个人主页:逸狼


创造不易,可以点点赞吗~

如有错误,欢迎指出~


目录

前言

Java第一个程序

字面常量

字面常量的分类

结合代码理解

类型转换

类型提升

 byte与byte的运算

正确写法

字符串类型String

int与String相互转换

int转String

String转int

算术运算符

加减乘除模(+ - * / %)

+加

/ 除

%取余

小数也可以%

增量运算符 +=  -=  *=  %=

自增/自减运算符 ++ --

关系运算符 == != < > =

逻辑运算符&&  ||   !

逻辑与&&

逻辑或||

逻辑非!

短路

位运算符

按位与&

按位与|

按位取反 ~

按位异或

条件运算符

移位运算


Java第一个程序

public class Helloworld {   //快捷键main 或者首字母psvm创建main方法public static void main(String[] args) {System.out.println("Hello world!");//快捷键sout}
}

java按类,方法,语句逐级来写

public class Helloworld是类,public static void main(String[] args)是main方法(相当于C语言的main函数,是程序的入口,快捷键是main回车),System.out.println("hello world!");是语句,(相当于C语言的printf函数,意为格式化打印Hello world!,快捷键是sout)

其中一个java文件中只能有一个public修饰的类

字面常量

常量即程序运行期间,固定不变的量

字面常量的分类

1. 字符串常量:由""括起来的,比如“12345”、“hello”、“你好”。

2. 整形常量:程序中直接写的数字(注意没有小数点),比如:100、1000

3. 浮点数常量:程序中直接写的小数,比如:3.14、0.49

4. 字符常量:由 单引号 括起来的单个字符,比如:‘A’、‘1’

5. 布尔常量:只有两种true和false

6. 空常量:null

在Java中数据类型主要分为两类:基本数据类型引用数据类型。 基本数据类型有四类八种: 1. 四类:整型、浮点型、字符型以及布尔型

结合代码理解

public class Helloworld {public static void main(String[] args) {//整形//int类型不管在多少位的机器上都是4字节//Integer是包装类,简单理解为int类型的plus版本System.out.println(Integer.MAX_VALUE);//输出int最大值2147483647System.out.println(Integer.MIN_VALUE);//输出int最小值-2147483648//局部变量 没有初始化会报错//java会检查字面值 超过会报错int c=2147483647;//int类型范围2^31~2^31-1int d=c+1;System.out.println(d);//长整形long x=10L;//long类型的范围2^63~2^63-1,后面加上L(不建议l),表示当前10是long类型//8字节 64bit//Long是包装类,简单理解为long类型的plus版本System.out.println(Long.MAX_VALUE);//输出long最大值9223372036854775807System.out.println(Long.MIN_VALUE);//输出long最小值-9223372036854775808//短整型short/** 2个字节  -2^15~2^15-1*  */short s=10;System.out.println(s);System.out.println(Short.MAX_VALUE);//32767System.out.println(Short.MIN_VALUE);//-32768//byte  1个字节   -128~127byte b=100;System.out.println(b);System.out.println(Byte.MAX_VALUE);//127System.out.println(Byte.MIN_VALUE);//128//字符型char  2字节//unicode字符集  包含了阿拉伯文,汉字,ASCII表等char ch='逸';char ch1=97;//可以给值正整数,输出ASCII对应字符aSystem.out.println(ch1);//包装类型是Character//单精度浮点型float,4字节float f=12.5f;//要加上f,否则会被认为是double类型的数据,报错System.out.println(f);//双精度浮点型double  8个字节(在任何系统都是)//在内存中存储与整形不同,也遵循IEEE754标准,所以浮点数是近似值,不是精确值double num=1.1;System.out.println(num*num);//输出1.2100000000000002//包装类型是Double//布尔类型 没有明确的大小,不能和其他类型的值相互转换,不存在1真0假boolean flg=true;System.out.println(flg);//包装类型是Boolean}
}

其中包装类型 是基本数据对应的类 类型

类型转换

代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。

特点:数据范围小的转为数 据范围大的时会自动进行。

int a=10;//4
long b=100L;//8
//b=a 可以通过编译 编译器自动类型提升
//a=b 会报错,需要强制类型转换,a=(int)b,缺点:可能会有数据丢失
//不相干类型的数据不能相互转换

类型提升

 byte与byte的运算

byte a = 10;
byte b = 20;
byte c = a + b;
System.out.println(c);

byte 和 byte 都是相同类型, 但是出现编译报错. 原因是, 虽然 a 和 b 都是 byte, 但是计算 a + b 会先将 a 和 b 都提升成 int, 计算结果也是 int, 赋给 c, 就会出现上述错误. 由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte 和 short 这种低于 4 个字节的类型, 会先提升成 int, 再参与计算.

正确写法

byte a = 10;
byte b = 20;
byte c = (byte)(a + b);
System.out.println(c);

字符串类型String

String不是包装类型,是引用数据类型

    public static void main(String[] args) {String str1="Hello ";String str2="world!";//+意为拼接String str3=str1+str2;System.out.println(str3);}

int与String相互转换

int转String

int num = 10;
// 方法1
String str1 = num + "";  
// 方法2
String str2 = String.valueOf(num);

String转int

其中被转换的数字必须是合法的数字字符串,比如“100a200"就不行

String str = "100";
int num = Integer.parseInt(str);

算术运算符

加减乘除模(+ - * / %)

+加

两侧操作数类型不一致时,向类型大的提升

System.out.println(1+0.2);   // +的左侧是int,右侧是double,在加之前int被提升为double// 故:输出1.2

/ 除

做除法和取模时,右操作数不能为0

    public static void main(String[] args) {System.out.println(5/2);//2System.out.println(5.0/2);//2.5System.out.println(5/0);//报错System.out.println(5.0/0);//Infinity}

%取余

    public static void main(String[] args) {System.out.println(9%2);//1System.out.println(9%-2);//1System.out.println(-9%2);//-1System.out.println(-9%-2);//-1}

小数也可以%

System.out.println(11.5%2);//1.5

增量运算符 +=  -=  *=  %=

例如+=,其他以此类推

int a = 1;
a += 2;                  // 相当于 a = a + 2
System.out.println(a);   // 输出3

自增/自减运算符 ++ --

++是给变量的值+1,--是给变量的值-1。

分前置和后置,

以++举例,比如b=++a (前置),表示a先+1,再赋值给b

而b=a++(后置),表示先赋值给b,a再+1

关系运算符 == != < > =

其计算结果是 true 或者 false

int a = 10;
int b = 20;
System.out.println(a == b);       // false
System.out.println(a != b);       // true
System.out.println(a < b);        // true
System.out.println(a > b);        // false
System.out.println(a <= b);       // true
System.out.println(a >= b);       // false

逻辑运算符&&  ||   !

运算结果都是 boolean类型,表达式必须是boolean类型的结果。

逻辑与&&

表达式1 && 表达式2

有一个为假,表达式为假

逻辑或||

表达式1 || 表达式2

有一个为真,表达式为真

逻辑非!

!表达式

假变真,真变假

短路

第一个表达式成立,就不会执行第二个表达式

System.out.println(10 > 20 && 10 / 0 == 0);             // 打印 false
System.out.println(10 < 20 || 10 / 0 == 0);             // 打印 true

位运算符

按位与&

有0则为0,可理解为乘法

按位与|

有1则为1,可理解为加法

按位取反 ~

1变0,0变1

按位异或

同为0,异为1

条件运算符

条件运算符只有一个: 表达式1 ? 表达式2 : 表达式3 

表达式1 的值为真 时, 整个表达式的值为 表达式2 的值

为假,则表达式3

// 求两个整数的最大值
int a = 10;
int b = 20;
int max = a > b ? a : b;

移位运算

位运算的 速度 比普通的加减乘除更快

1. 左移<< 最左侧位去掉, 最右侧补 0,相当于乘法

2. 右移 >>最右侧位去掉, 最左侧补 符号位,相当于除法

3.无符号右移>>>最右侧位去掉, 最左侧补0

相关文章:

【JavaSE】数据类型和运算符

前言 从这一篇我们开始Java的学习~ 欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 前言 Java第一个程序 字面常量 字面常量的分类 结合代码理解 类型转换 类型提升 byte与byte的运算 正确写法 字符串类型St…...

Docker 哲学 - ip 的组成规则 与 网关介绍

在 IP 地址中&#xff0c;我们通常将 IP 地址分为两部分&#xff1a;网络部分和主机部分。网络部分用于标识网络&#xff0c;主机部分用于标识该网络中的特定主机。 IP 地址的每个部分&#xff08;也被称为一个八位组或一个字节&#xff09;可以是从0到255的任何值。 一个 IPv4…...

数学建模竞赛真的是模型解题一般,但是论文出彩而获奖的吗?

最近&#xff0c;数乐君发现有同学会有这样的问题&#xff1a;在数学建模国赛中&#xff0c;会因为参赛团队的模型解题一般&#xff0c;但论文写得非常精彩而获奖吗&#xff1f; 是的&#xff0c;确实会存在这样的情况。 我们都知道数学建模竞赛最终都是以提交成品论文的形式…...

深度学习常见的三种模型

深度学习模型实际上是一个包含多个隐藏层的神经网络&#xff0c;目前主要有卷积神经网络&#xff08;CNN&#xff09;、深度置信网络&#xff08;DBN&#xff09;、循环神经网络&#xff08;RNN&#xff09;。 1) 卷积神经网络 在机器学习领域&#xff0c;卷积神经网络属于前…...

接口自动化测试分层设计与实践总结

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号&#xff1a;互联网杂货铺&#xff0c;回复1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 接口测试三要素&#xff1a; 参数构造 发起请求&#x…...

集合(下)Map集合的使用

文章目录 前言一、Map接口二、Map接口的实现类 1.HashMap类2.TreeMap类总结 前言 Map集合没有继承Collection接口&#xff0c;不能像List集合和Set集合那样直接使用Collection接口的方法。Map集合其自身通过以key到value的映射关系实现的集合&#xff0c;也有相应的许多方法。类…...

AAPT: error: resource android:attr/dialogCornerRadius not found.

ERROR:D:\android.gradle\caches\transforms-3\b3b98118f65da38d0ad9da84cfc70a72\transformed\appcompat-1.0.0\res\values-v28\values-v28.xml:5:5-8:13: AAPT: error: resource android:attr/dialogCornerRadius not found. 请帮我看看这个错误是什么意思。我改如何做。 这个…...

数字功放VS模拟功放,选择适合你的音频解决方案

数字功放和模拟功放是音频系统中常用的两种功放技术&#xff0c;适用于不同的音频应用&#xff0c;都具有各自的优势和特点。本文将为您详细介绍数字功放和模拟功放的差异&#xff0c;并帮助您找到适合自己的音频解决方案。 1、数字功放是一种利用数字信号处理技术的功放。它将…...

5.88 BCC工具之tcpsynbl.py解读

一,工具简介 tcpsynbl工具以直方图的形式显示SYN到达时的TCP SYN积压大小。这可以让我们了解应用程序距离达到积压限制并丢弃SYN(导致SYN重传产生性能问题)还有多远。 TCP SYN 数据包则通常用于启动 TCP 三次握手过程的第一次握手。 二,代码示例 #!/usr/bin/env python…...

GVRP实现vlan的自动创建和注册

拓扑图 资源已上传 流程 第一、每台交换机的全局及端口下使能GVRP功能 第二、配置交换机的二层连通性&#xff0c;交换机某些端口配置Trunk端口&#xff0c;并允许相应的vlan通过 第三、在交换机4和5配置静态vlan100&#xff0c;然后查看1和3交换机是否有vlan100的定义&…...

Oracle VM VirtualBox修改磁盘大小

一、 修改虚拟机磁盘大小 先把虚拟机停掉。再增加磁盘大小。 路径中有空格的用""包起来。 D:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd "D:\Program Files\VirtualBox VMs\mycentos\mycentos.vdi" --resize 30000 0%...10%...20%...3…...

【嵌入式硬件】步进电机

1.步进电机简介 1.1步进电机基本原理 步进电机的英文是stepping motor。step的中文意思是行走、迈步。所以仅从字面上我们就可以得知,步进电机就是一步一步移动的电动机。说的官方一点儿,步进电机是一种将电脉冲信号转换成相应角位移或者线位移的电动机(直线电机)。下图为…...

FlyControls 是 THREE.js 中用于实现飞行控制的类,它用于控制摄像机在三维空间中的飞行。

demo演示地址 FlyControls 是 THREE.js 中用于实现飞行控制的类&#xff0c;它用于控制摄像机在三维空间中的飞行。 入参&#xff1a; object&#xff1a;摄像机对象&#xff0c;即要控制的摄像机。domElement&#xff1a;用于接收用户输入事件的 HTML 元素&#xff0c;通常…...

【Java程序设计】【C00366】基于(JavaWeb)Springboot的纹理生产图片系统(有论文)

TOC 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过上千套毕业设计程序&#xff0c;博客中有上百套程序可供参考&#xff0c;欢迎共同交流学习。 项目简介 项目获取 &#x1f345;文末点击卡片…...

编译原理Lab. 1 初代编译器实验说明和要求

目录 Lab. 1 初代编译器实验说明和要求一、初代编译器功能描述二、初代编译器文法要求三、初代编译器测试样例四、初代编译器提交要求五、初代编译器实验测试框架说明 代码与思路 Lab. 1 初代编译器实验说明和要求 一、初代编译器功能描述 初代编译器将 C 语言顺序语句序列翻…...

python判断工作日,节假日

一、概述 需要判断一个日期是否为工作日&#xff0c;节假日。 找到一个现成的插件&#xff0c;蛮好用的。 插件介绍 https://pypi.org/project/chinesecalendar/ 判断某年某月某一天是不是工作日/节假日。 支持 2004年 至 2020年&#xff0c;包括 2020年 的春节延长。 兼容…...

练习4-权重衰减(李沐函数简要解析)

环境:练习1的环境 代码详解 0.导入库 import torch from torch import nn from d2l import torch as d2l1.初始化数据 这里初始化出train_iter test_iter 可以查一下之前的获取Fashion数据集后的数据格式与此对应 n_train, n_test, num_inputs, batch_size 20, 100, 200, …...

websocket 中 request-line 中的URI编码问题

首先&#xff0c;request-line组成如下&#xff1a; Request-Line Method SP Request-URI SP HTTP-Version CRLF 在 rfc6455 规范的 5.1.2 Request-URI 中&#xff0c;有这样的描述&#xff1a; The Request-URI is transmitted in the format specified in section 3.2.1. …...

为何ChatGPT日耗电超50万度?

看新闻说&#xff0c;ChatGPT每天的耗电量是50万度&#xff0c;国内每个家庭日均的耗电量不到10度&#xff0c;ChatGPT耗电相当于国内5万个家庭用量。 网上流传&#xff0c;英伟达创始人黄仁勋说&#xff1a;“AI的尽头是光伏和储能”&#xff0c;大佬的眼光就是毒辣&#xff…...

__init__.py 的作用

在 Python 中&#xff0c;包含一个名为 __ init __.py 的文件的目录被称为一个包&#xff08;package&#xff09;。 __ init __.py 文件的作用有以下几点&#xff1a; 指示包含该文件的目录是一个 Python 包&#xff1a;当 Python 导入一个包时&#xff0c;会查找该包所在目录…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...