操作数数据类型 char 对于 sum 运算符无效。_数据类型和运算符

数据类型和运算符

1.进制

1.1文件存储单位

​ 任何数据在计算机中都是以二进制的形式存在的,二进制早期由电信号开关演变而来 。

​ 一个电信号或者一个二进制位统称为Bit位,8个Bit位为一组组成一个字节Byte

​ 一个bit位表示的数的范围:0和1

​ 一个byte表示的数的范围:256个数

​ 无符号数:0-255(28-1) 256个数

​ 有符号数:-128(-27)-- 127(27-1) 还是256个数

1.2 常见的进制介绍

  • 2进制(计算机能够识别的),逢二进一

​ 用0和1来表示

  • 8进制,逢八进一

​ 用0-7来表示

​ 注意:8进制以0b开头

  • 10进制(人类最常见的进制),逢十进一

​ 用0-9来表示

  • 16进制,逢十六进一

​ 用0-9和ABCDEF来表示

​ 注意:16进制以0x开头

2.常量和变量

2.1关键字与保留字

​ java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构。

e470070bde0391f7482edbbca35c4867.png

2.2 标识符

标识符是用于给java程序中的变量方法、包等命名的符号。

标识符需要遵守一定的规则:

1)标识符必须以字母(A-Z和a-z)、数字(0-9)、下划线“_”、美元符号“$”组成。

2)标识符不能以数字开头,其它部分可以是字母、下划线、美元符和数字的任意组合。

3)Java 标识符大小写敏感,且长度无限制。

4)标识符不可以是Java的关键字

标识符的使用规范: 表示类名的标识符应首字母大写,并且采用驼峰式命名法则。

例如:Person, GoodStudent

表示方法和变量的标识符应首字母小写,并且采用驼峰式命名法则。

例如:int userName; public void eatFood(){}

注意:Java不采用通常语言使用的ASCII字符集,而是采用unicode这样的标准的国际字符集。因此,这里的字母的含义不仅仅是英文,还包括汉字等等。但是不建议大家使用汉字来定义标识符!

2.3 变量(Variable)与常量(Constant)

变量声明语法:数据类型 变量名;

变量的特点:在于“变”字,声明变量所开辟的内存空间可以多次赋值。

常见问题总结:

  • 在方法中声明的变量,必须是赋值之后才能使用。
  • 先声明后赋值,没用声明的变量名什么都不是。
  • 变量名必须是合法的标识符,采用首字母小写的驼峰式命名。
  • 赋值的数据类型必须和声明变量类型一致。
  • 在同一个方法中,不能声明多个同名的变量。

常量语法:final 数据类型 常量名 = 数据值

Final float PI = 3.1415926f;

注意事项

  • 常量只能被赋值一次,赋值完毕后就不能再更改值。
  • 常量名一般由大写字母组成,多个单词可以用下划线分割,例如:final int MAX_VALUE = 100;

3 .基本数据类型

  • java是一种强类型语言,每个变量都必须声明其类型。
  • java的数据类型分为两大类:基本类型(primitive type)和引用类型(reference type)。

c78099eadc74cb5954f722f0b044062e.png

3.1 整数型

605db7a37428ba3f11fd6d6b1b7f0f93.png

注意事项

  • 注意数据类型的表数范围,避免出现超出表数范围精度丢失的情况。
  • 整型常量默认为int类型,声明long型常量可以加“l”或“L”,建议使用“L”。

3.2浮点型

小数类型在Java中称为浮点类型 。

浮点类型分为float类型和double类型

f240d426cc89e240885efc151e9f630a.png

注意事项

  • 浮点型常量默认为double类型。
  • 浮点型常量赋值给float类型,需要在常量后面添加“f”或 “F”。
  • 避免直接比较两个浮点数的大小,这样比较可能会出现问题。

3.3布尔型

  • boolean类型有两个值:true和false。true代表真,false代表假。
  • boolean类型用来判断逻辑条件,常用于程序流程控制。

​ boolean类型占用几个字节:没有具体的规定

1个bit

​ 理由是boolean类型的值只有true和false两种逻辑值,在编译后会使用1和0来表示,这两个数在内存中只需要1位(bit)即可存储,位是计算机最小的存储单位。

1个字节

​ 理由是虽然编译后1和0只需占用1位空间 ,但计算机处理数据的最小单位是1个字节,1个字节等于8位,实际存储的空间是:用1个字节的最低位存储,其他7位用0填补,如果值是true的话则存储的二进制为:0000 0001,如果是false的话则存储的二进制为:0000 0000。

3.4字符型

  • 字符型在内存中占有2个字节,在Java中使用单引号包裹起来的一个字符称之为字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示含有一个字符的字符串。
  • char类型和int类型的联系和区别

联系:char类型常量在内存中存储的就是Unicode编码值,例如:'A'— 65, '1'— 49。在一定范围内,char类型和int类型是可以通用的

区别:

​ 1. 分配的内存空间不同,int类型占4个字节,char类型占用2个字节。

​ 2.数值表示的范围不同,int类型标识的范围比char类型更大,并且int类型还可以表示负数

4. Scanner键盘输入

​ java.util.Scanner是java5的新特征,主要功能是获取控制台输入的数据

4.1导入Scanner包

import java.util.Scanner;

4.2初始化Scanner对象

Scanner input = new Scanner(System.in);

4.3获取输入的数据

String str = input.nextLine();

例子:通过键盘录入获取圆的半径,然后计算出该圆的周长和面积

import java.util.Scanner;
public class ScannerTest {public static void main(String[] args) {// 通过Scanner获取半径Scanner input = new Scanner(System.in);System.out.print("请输入半径:");double r = input.nextDouble();// 计算出该圆的周长和面积。final double PI = 3.1415926;// 周长:2*PI*rdouble circumference = 2*PI*r;// 面积:PI*r*rdouble area = PI*r*r;System.out.println("周长:" + circumference + " 面积:" + area);}
}

5 基本数据类型转换

​ 在赋值运算或算术运算时,要求数据类型相同,否则就要进行类型转换。

转换的方式:

  • 自动类型转换(隐式)
  • 强制类型转换(显示)

基本数据类型的转换主要包含:byte、short、int、long、float、double和char,不包含boolean类型。

5.1自动类型转换

自动类型转换(隐式类型转换)指的是容量小的数据类型可以自动转换为容量大的数据类型。(由低字节向高字节的转换 byte->short-> char –>int->long->float->double )

​ 把整数常量(int类型)赋值给byte、short和char类型变量,属于自动类型转换的特例,只要不超出其表数范围即可。

算数运算中的类型自动转换原则:

  • 如果两个操作数其中有一个是double类型,另一个操作就会转换为double类型。

 否则,如果其中一个操作数是float类型,另一个将会转换为float类型。  否则,如果其中一个操作数是long类型,另一个会转换为long类型。 * 否则,两个操作数都转换为int类型。

5.2强制类型转换

强制类型转换(显示类型转换),主要用于显式的转换一个数值的类型。在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。

语法格式:目标类型 变量 =(目标类型)源类型变量或常量

例:byte b = (byte)a

6.运算符(operator)

6.1算数运算符

6.1.1二元运算符

+:

  • 对于数值型数据,可以做加法运算
  • 对于字符串类型数据,做的是连接符操作,做的就是拼接操作! 还可以表示正数,+5
    **-:**
  • 对于数值型数据,可以做减法运算 还可以表示负数,-5
    *****:
  • 对于数值型数据,可以做乘法运算
    **/:**
  • 对于数值型数据,可以做除法运算
    **%:**
  • 取余或取模,也就是获取不能被整除的数
    例:5%7,结果为:5

习题:获取整数987的百位数、十位数和个位数

import java.util.Scanner;
public class OperatorDemo01 {public static void main(String[] args) {// 2、获取整数987的百位数、十位数和个位数。int num = 987;// 获取百位数,9int bit1 = num / 100;// 获取十位数,8// 思路一:先获取98,然后再获取8// int bit2 = num / 10 % 10;// 思路二:先获取87,然后再获取8int bit2 = num % 100 / 10;// 获取个位数,7int bit3 = num % 10;System.out.println("百位数:" + bit1 + " 十位数:" + bit2 + " 个位数:" + bit3);

6.1.2一元运算符

一元运算符,只需要一个操作数参与运算即可! ++:

  • 自增运算符
    num++和++num,都等效于:num = num + 1; 当和别的操作数一起运算的时候: num++,先运算,后自增! ++num,先自增,后运算!--:
  • 自减运算符
    num--和--num,都等效于:num = num - 1; 当和别的操作数一起运算的时候: num--,先运算,后自减! --num,先自减,后运算!

6.2赋值运算符

=:

  • 把等号右边的数据赋值给等号左边的变量或final修饰的常量!
    需求:交换两个变量的值(用两种方式实现)。
  • 1.定义一个临时变量
int temp = num1;num1 = num2;num2 = temp;
  • 2.不需要零时变量参与
int num1 = 10, num2 = 20;
num1 = num1 + num2; // num1 = 30, num2 = 20;
num2 = num1 - num2; // num1 = 30, num2 = 10;
num1 = num1 - num2; // num1 = 20, num2 = 10;

6.3扩展赋值运算符

扩展赋值运算符:是算术运算符和赋值运算符结合

30fd0ba6da46406358dba2ed69c7443b.png

6.4 关系运算符

关系运算符用来进行比较运算,关系运算符的运算结果是boolean类型。

<、>=、<=、==、!=

6.5逻辑运算符

&, |, ^, &&, ||, ! 特点:参与逻辑运算的数据类型都必须是boolean类型 逻辑运算符执行完毕返回的结果也是boolean类型

  • &与

​ 两边都为true时,那么返回的结果就为true 只要有一边为false,那么返回的结果就为false 辅助记忆:小明与小红来一趟办公室!

  • |或

​ 两边都为false时,那么返回的结果就为false 只要有一边为true,那么返回的结果就为true 辅助记忆:小明或小红来一趟办公室!

  • ^异或

​ 当两边不相同时,返回的结果才为true 当两边相同时,返回的结果才为false

  • &&短路与

​ &和&&相同点: 返回的boolean结果都是一模一样!

&和&&不同点:执行过程不一样

&&:当左边表达式的结果为false时,那么右边表达式不需要执行,直接返回左侧表达式的结果即可!

当左边表达式的结果为true时,那么右边表达式需要执行,直接返回右侧表达式的结果即可!

&:无论左侧表达式结果为什么(true或false),右边表达式都需要执行!
现实开发中,使用&&最常见,因为&&的执行效率高于&!

  • ||短路或

​ |和||相同点:执行过程不一样,返回的boolean结果都是一模一样!

|和||不同点:

||:当左边表达式的结果为true时,那么右边表达式不需要执行,直接返回左侧表达式的结果即可!

当左边表达式的结果为false时,那么右边表达式需要执行,直接返回右侧表达式的结果即可

|:无论左侧表达式结果为什么(true或false),右边表达式都需要执行!

现实开发中,使用||最常见,因为||的执行效率高于|

  • !取反,并时属于一元运算符

​ 当true取反,结果为false 当false取反,结果就是true

6.6三元运算符

三元运算符又称为三目运算。

语法格式:条件表达式? 表达式1 表达式2

如果条件表达式为true,则取表达式1的值,否则就取表达式2的值。

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

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

相关文章

我所理解的开源软件供应链安全

点击上方“开源社”关注我们| 作者&#xff1a;庄表伟| 编辑&#xff1a;钱英宇| 设计&#xff1a;谭嘉露| 责编&#xff1a;王玥敏1供应链与断供隐喻会帮助人&#xff0c;也会误导人。当我们谈到“供应链”时&#xff0c;会产生哪些联想&#xff1f;环环相扣&#xff1f;缺一不…

82 个代码案例实践,带你学好 Python 机器学习

全世界有3.14 % 的人已经关注了数据与算法之美如果村里通了网&#xff0c;那你一定知道【AI】人工智能。如果你会网上冲浪&#xff0c;那你一定看到过【ML】机器学习。小编在网上看到一个段子&#xff1a;ML派坐落美利坚合众山中&#xff0c;百年来武学奇才辈出&#xff0c;隐然…

查询程序崩溃日志_PC 崩溃报告途径 amp; 临时解决方法

TC Sera (社区经理)&#xff1a;你好&#xff01;如果您在电脑游戏中遇到与 Nvidia 驱动程序相关的崩溃情况&#xff0c;请打开视频设置(Video Settings)中的诊断模式(Diagnostics Mode)并重新启动游戏。如果您遇到问题&#xff0c;请打包&#xff1a;%localappdata%\Gears5\Sa…

C# ConcurrentBag的实现原理

一、前言笔者最近在做一个项目&#xff0c;项目中为了提升吞吐量&#xff0c;使用了消息队列&#xff0c;中间实现了生产消费模式&#xff0c;在生产消费者模式中需要有一个集合&#xff0c;来存储生产者所生产的物品&#xff0c;笔者使用了最常见的List<T>集合类型。由于…

Linux里10个最危险的命令

全世界只有3.14 % 的人关注了数据与算法之美Linux命令行佷有用、很高效&#xff0c;也很有趣&#xff0c;但有时候也很危险&#xff0c;尤其是在你不确定你自己在正在做什么时候。推荐阅读Linux之父林纳斯自传《只是为了好玩》这篇文章将会向你介绍十条命令&#xff0c;但你最好…

让你立刻爱上数学的10个算术游戏

全世界只有3.14 % 的人关注了数据与算法之美死理性派的小编经常会被问到的一个问题&#xff1a;数学到底哪里有趣了&#xff0c;数学之美又在哪里&#xff1f;这篇文章精心选择了 10 个老少咸宜的算术问题&#xff0c;以定理、趣题甚至未解之谜等各种形式带领大家窥探数学世界的…

iPhone 的 Push(推送通知)功能原理浅析

第一部分&#xff1a;Push原理(以下绝大多数内容参考自、图片来自iPhone OS Reference Library)机制简介Push 的工作机制可以简单的概括为下图图中&#xff0c;Provider是指某个iPhone软件的Push服务器。 APNS 是Apple Push Notification Service&#xff08;Apple Push服务器&…

编程从业五年的十四条经验,句句朴实

全世界只有3.14 % 的人关注了数据与算法之美排列不分先后&#xff1a;1. 当性能遇到问题时&#xff0c;如果能在应用层进行计算和处理&#xff0c;那就把它从数据库层拿出来。排序和分组就是典型的例子。在应用层做性能提升总是要比在数据库层容易的多。就像对于MySQL&#xff…

.Net之Swagger基础使用

介绍Swagger 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。日常可以用于后端开发人员测试接口或者前后端联调使用。从.net5开始&#xff0c;swagger已经集成到vs2019编译器中&#xff0c;可以通过勾对选项“启用OpenAPI支持”显示…

孩子不是笨,他和“最强大脑”差的是这个!

小木最近看到一则消息推送&#xff0c;说家长辅导孩子陪写作业简直就是一道“送命题”。朋友圈更是掀起了一股“提前嫁儿嫁女”的热潮。为什么孩子对数学一点兴趣也没有&#xff1f;为什么再简单的一道题&#xff0c;换个数字换个形式&#xff0c;孩子就一问三不会了&#xff1…

c++ 隐藏进程_Linux 查看进程的动态信息

前言top命令经常用来监控Linux的系统状况&#xff0c;是常用的性能分析工具&#xff0c;能够实时显示系统中各个进程的资源占用情况目录一、描述二、top命令常用字段含义三、top中的子命令四、总结五、思维导图一、描述1、top命令经常用来监控Linux的系统状况是常用的性能分析工…

.net core针对async ()=的安全处理

最近在做一个功能需要传递一个委托作为回调逻辑处理&#xff0c;但在使用中定义了async ()>来处理awaiter逻辑那就存在一个安全问题了。了解async/awaiter的朋友一定清楚async void函数带来的致命风险&#xff01;async void会阻断异常路由&#xff0c;即当前函数没有try的情…

这三道题,总有一道你是答不出来的

全世界只有3.14 % 的人关注了数据与算法之美大家好&#xff0c;我是最近过得不太舒心的卢sir。经常被小思妹提的各种奇葩数学题搞得云里雾里的。我一看数学题就想做&#xff0c;没想到这些题目都是奇葩中的奇葩&#xff0c;不是那写错就是这计算错。为了捍卫我最后的倔强&#…

前端对div连线_《前端图形学从入门到放弃》003 三维世界

从本篇起&#xff0c;我们将正式进入webgl的3D世界本篇涵盖的内容包括&#xff1a;webgl它在干啥&#xff1f;如何画一个正方体&#xff1f;如何成为一个“有深度”的正方体&#xff1f;正方体要离家出走了&#xff01;webgl它在干啥&#xff1f;首先我们需要知道webgl的世界其…

通过R,让你的数据分析更简便!

R作为一种统计分析软件&#xff0c;广泛应用于生物、医学、电商、新闻等数据相关行业&#xff0c;是目前主流数据应用软件之一。为了更好地帮助大家了解并快速入门R语言&#xff0c;现超级数学建模携手柯老师以R语言为基础&#xff0c;向大家隆重推出《R语言基础》系列课。柯老…

r语言用行名称提取数据框信息显示na_学会这些R语言技巧至少可以节省半年时间...

ubuntu备忘定期清空回收站扩增子数据牢记r ubuntu 相关技巧和备忘待解决问题1&#xff1a;phyloseq有一篇文章案例使用输入和输出文件相同的文件名&#xff0c;无法执行待解决问题2&#xff1a;待解决问题3&#xff1a;样品分组文件太长了&#xff0c;导致提取出来数据存在NA值…

hibernate.cfg.xml的一些事

Hibernate连接数据库的配置文件书写一般有两种方式&#xff1a; 第一种方式&#xff1a;使用开发环境直接连接数据库最后生成hibernate.cfg.xml文件 第二种方式&#xff1a;使用已有的模版直接拷贝的工作的目录下&#xff0c;通过相应的修改获得需要的连接数据库的配置文件&…

配置静态路由下一跳为本地出战接口和IP地址的区别

配置静态路由下一跳为本地出战接口和IP地址的区别 在配置静态路由时&#xff0c;下一跳可以使用下一路由器的IP地址&#xff0c;也可以使用本路由器的出站接口。在点对点的网络中&#xff0c;两者可能没有什么差别&#xff0c;但在以太网中或者NBMA网络类型&#xff0c;两者有很…

使用 Source Generator 自动生成 WEB API

使用 Source Generator 自动生成 WEB APIIntro上次我们介绍了使用 Source Generator 的应用&#xff0c;有小伙伴留言说想要自动生成一套 ABP 相关的东西&#xff0c;我对 ABP 不怎么熟悉&#xff0c;所以写了一个简单版的雏形&#xff0c;可以根据自定义的模板去动态生成&…

Excel中的散点图这么强大,学习了!

全世界只有3.14 % 的人关注了数据与算法之美平时见得最多的也许是柱形图了&#xff0c;但我个人最喜欢的却是散点图。在讲散点图之前&#xff0c;我先阐述一个不太严谨的个人观点。我认为&#xff0c;所有的数据图表都可以分为两类&#xff0c;一类是偏重于展示&#xff0c;一类…