java基础(数据类型,运算符)
java基础之数据类型(变量)
java中存在的数据有常量和变量
常量:在程序执行的过程中其值不可以发生改变
- 常量的分类
- 字面值常量
字面值常量的分类
| 常量 | 描述 |
|---|---|
| 字符串常量 | 用双引号括起来的内容 |
| 整数常量 | 所有整数 |
| 小数常量 | 所有小数 |
| 字符常量 | 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号 |
| 布尔常量 | 较为特殊,只有true和false |
| 空常量 | null(数组部分) |
自定义常量
- 变量:在程序执行的过程中,在某个范围内其值可以发生改变的量
- 定义格式:
数据类型 变量名 = 变量值; 定义变量原因:
用来不断的存放同一类型的常量,并可以重复使用
java的数据类型
有数据类型原因:Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间
- Java中数据类型的分类
- 基本数据类型
- 引用数据类型
- 基本数据类型分类(4类8种)
- 整数型
| 数据类型 | 所占字节 | 范围 |
|---|---|---|
| byte | 占一个字节 | -128到127 |
| short | 占两个字 | -2^15~2^15-1 |
| int | 占四个字节 | -2^31~2^31-1 |
| long | 占八个字节 | -2^63~2^63-1 |
- 浮点型
| 数据类型 | 所占字节 |
|---|---|
| float | 占两个字节 |
| double | 占四个字节 |
- 字符型
| 数据类型 | 所占字节 |
|---|---|
| char | 占两个字节 |
- 布尔型
boolean
小细节:boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小
数据类型间的转换
自动:小到大
强制:大到小
Java中的默认转换规则
- 自动
取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
- 强转
如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同
数据类型的取值范围
- 进行混合运算的时候,byte,short,char不会相互转换,都会自动类型提升为int类型,其他类型进行混合运算的是小的数据类型提升为大的
byte <- short <- char <- int <- long <- float <- double
注意:float表示的数据范围比long的范围要大
原因
long:2^63-1
float:3.410^38 210^38 28^38 = 22^3^38 = 2*2^114 2^63-1
运算符
运算符:就是对常量和变量进行操作的符号。
分类:
- 算术运算符
- 赋值运算符
- 比较(关系或条件)运算符
- 逻辑运算符
- 位运算符
- 三目(元)运算符
1)算数运算符
算术运算符:**+-*/%,++,--**
++/--:自增1/自减1
1.1)单独使用时,在前在后无差别
1.2)若被使用时,在前在后有差别
1.2.1)++在后,先使用,后自增1
1.2.2)++在前,先自增1,后使用
- 单独使用:
放在操作数的前面和后面效果一样。
- 参与运算使用:
- 放在操作数的前面,先自增或者自减,然后再参与运算。
放在操作数的后面,先参与运算,再自增或者自减。
注意事项:
- "+"号在java中有三种作用,代表正号,做加法运算,字符串的连接符
- 整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
/获取的是除法操作的商,%获取的是除法操作的余数
- %运算符
- 当左边的绝对值小于右边绝对值时,结果是左边
- 当左边的绝对值等于右边或是右边的倍数时,结果是0
- 当左边的绝对值大于右边绝对值时,结果是余数
- %运算符结果的符号只和左边有关系,与右边无关
任何一个正整数%2结果不是0就是1可以用来当作切换条件
2)关系运算符:
- 2.1)>(大于),<(小于)
- >=(大于或等于),<=(小于或等于)
==(等于),!=(不等于)
- 2.2)关系运算的结果为boolean型,
关系成立则为true,关系不成立则为false
3)逻辑运算符:
- 3.1)&&:短路与,两边都为真则为真,见false则false
若左边的数为false,则发生短路(右边不走了) ||:逻辑或,有一边为真则为真,见true则true
若左边的数为true,则发生短路(右边不走了)!: 逻辑非,非真则假,非假则真
- 3.2)逻辑运算都是建立在关系运算基础之上的
逻辑运算的结果为boolean型
4)赋值运算符
- 4.1)简单赋值:=
扩展赋值:+=,-=,*=,/=,%=
4.2)建议使用扩展赋值,因其效率高
5)字符串连接运算符
- 5.1)+:
- +号两边若为数字,则做加法运算
- +号两边任有一边为字符串,则做字符串拼接
6)条件/三目运算符:
- 6.1)格式
boolean ? 数1 : 数2
- 6.2)计算boolean的值:
- 若为true,则整个表达式的结果为数1
若为false,则整个表达式的结果为数2
java基础(数据类型,运算符)的更多相关文章
- Java基础-比较运算符Compare Operators
Java基础-比较运算符Compare Operators 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.关系运算符 关系运算符包括: 1>.大于(>) 2> ...
- Java基础-算术运算符(Arithmetic Operators)
Java基础-算术运算符(Arithmetic Operators) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java程序通过运算符实现对数据的处理,Java中的运算符包括: ...
- JAVA 变量 数据类型 运算符 知识小结
---------------------------------------------------> JAVA 变量 数据类型 运算符 知识小结 <------------------ ...
- Java基础-数据类型应用案例展示
Java基础-数据类型应用案例展示 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.把long数据转换成字节数组,把字节数组数据转换成long. /* @author :yinz ...
- Java基础-位运算符Bitwise Operators
Java基础-位运算符Bitwise Operators 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.位运算特点 位运算符分为按位与(&),按位或(|),按位异或(^ ...
- java 基础one ---运算符and流程控制
首先java这个了解下java的基础 首先java文件都是以.java结尾的 然后 他所有的内容都是有一个入口的就是放在了public static void main(String [] args ...
- Java基础-数据类型int,short,char,long,float,double,boolean,byte
Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed ...
- 【Demo 0001】Java基础-数据类型
本章学习要点: 1. 了解Java 语言 2. 了解Java程序结构; 3. 了解Java中基本数据类型; 4. 掌握基本数据类型之间的运算 ...
- java基础数据类型包装类
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- Java基础(运算符)
Java中的运算符: 算术运算符:+ - * / % ++ -- %运算符叫取模:它就是取余的例如:43%7=1 其他的都是和数学里的运算符一样(不过在字符串中如果是两个字符串 ...
随机推荐
- 8位基本定时器(TIM4)
简介:该定时器由一个带可编程预分频器的8位自动重载的向上计数器所组成,它可以用来作为时基发生器,具有溢出中断功能. 主要功能: (1)8位向上计数的自动重载计数器: (2)3位可编程的预分配器(可在运 ...
- sublime使用总结
上周忙呀忙~ 周一到五在忙项目,周六日搬家 在帝都平均一年就要换一次房子,从开始找房子到成功住进去前前后后大约花了半个多月的时间 什么时候就有自己的小窝了-- 之前开发一直用的都是W ...
- 十年过去了,各位 .net 兄弟还好吗
时间是最无情的,一下子就毕业10年了.很久没有发发牢骚了,今天突然想发一下.看过我文章喷过的知道,我一般都是散文,看完不知道我写了什么,形散而神不散嘛. 十年了,不好意思,没像网上说的标准一样,做管理 ...
- (转)volatile关键字
Java线程:volatile关键字 Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量.这两种机制的提出都是为了实现代码线程的安全性.其中 Volatile 变量 ...
- 获取cpu真实型号
感谢文洋兄的思路.亲测有效. [root@storage GetCpuType]# ./main.o Intel(R) Xeon(R) CPU C5528 @ 2.13GHz #include < ...
- 封装自己的Ajax框架
Ajax技术就是利用javascript和xml实现异步交互的功能. 首先先来介绍一下Ajax相关知识点 一.Ajax对象的创建 1.创建Ajax对象的方式 a.第一种方式是针对IE浏览器 b.第二种 ...
- CentOS 访问 Windows 共享目录
起因 由于公司的网络切换后,将所有的服务器都切换到了指定的网段(工作电脑在一个网络,服务器在另一个网络:这样一来,不同部门的 work stations 可以彼此访问,不同部门的服务器(servers ...
- Spring-Framework 源码阅读之@Autowired和AutowiredAnnotationBeanPostProcessor
今天接下去讲我们的内容,上次的解析了AnnotationBeanUtils这个类的运用和源码.今天主要关注的是Autowired和 AutowiredAnnotationBeanPostProcess ...
- TypeScript基础数据类型
Typescript与Javascript 二者的区别 作为前端开发的基础语言javascript已经深入人心,人人皆知.作为变成入门的最简单语言,Javascript语言以动态.弱类型语言而著名,学 ...
- Vue模板逻辑
前面的话 上一篇介绍了Vue的模板内容,而对于一般的模板引擎来说,除了模板内容,还包括模板逻辑.常用的模板逻辑包括条件和循环.本文将详细介绍Vue模板逻辑 条件渲染 在Vue中,实现条件逻辑依靠条件指 ...