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基础(数据类型,运算符)的更多相关文章

  1. Java基础-比较运算符Compare Operators

    Java基础-比较运算符Compare Operators 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.关系运算符 关系运算符包括: 1>.大于(>) 2> ...

  2. Java基础-算术运算符(Arithmetic Operators)

    Java基础-算术运算符(Arithmetic Operators) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java程序通过运算符实现对数据的处理,Java中的运算符包括: ...

  3. JAVA 变量 数据类型 运算符 知识小结

    ---------------------------------------------------> JAVA 变量 数据类型 运算符 知识小结 <------------------ ...

  4. Java基础-数据类型应用案例展示

    Java基础-数据类型应用案例展示 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.把long数据转换成字节数组,把字节数组数据转换成long. /* @author :yinz ...

  5. Java基础-位运算符Bitwise Operators

    Java基础-位运算符Bitwise Operators 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.位运算特点 位运算符分为按位与(&),按位或(|),按位异或(^ ...

  6. java 基础one ---运算符and流程控制

    首先java这个了解下java的基础 首先java文件都是以.java结尾的  然后 他所有的内容都是有一个入口的就是放在了public static void main(String [] args ...

  7. Java基础-数据类型int,short,char,long,float,double,boolean,byte

    Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed ...

  8. 【Demo 0001】Java基础-数据类型

    本章学习要点:       1.  了解Java 语言       2.  了解Java程序结构;        3.  了解Java中基本数据类型;       4.  掌握基本数据类型之间的运算 ...

  9. java基础数据类型包装类

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  10. Java基础(运算符)

    Java中的运算符: 算术运算符:+  -  *  /   %    ++     -- %运算符叫取模:它就是取余的例如:43%7=1 其他的都是和数学里的运算符一样(不过在字符串中如果是两个字符串 ...

随机推荐

  1. IDEA的热部署插件jrebel6.4.3版离线安装版配置与破解

    JRebel 介绍 IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,浪费不少生命啊.目前对于idea热部署最好的解决方案就是安装JRebel插件 ...

  2. 如是使用JS实现页面内容随机显示

    之前有个客户咨询我,因为他们公司的业务员有多个人,但公司网站的联系方式板块里只够放一个人的信息,所以就想能不能实现这个联系方式信息随机显示,对于业务或客服人员来说也能做到分配均匀公平.本文我们将和大家 ...

  3. 有关java调用批处理文件

    1 例子 java调用批处理文件 public class RunJarBat { public static void runJarBat() { // 调用控制台 Runtime rt = Run ...

  4. Storm/JStorm之TopologyBuilder源码阅读

    在Strom/JStorm中有一个类是特别重要的,主要用来构建Topology的,这个类就是TopologyBuilder. 咱先看一下简单的例子: public static void main(S ...

  5. BeanFactory VS FactoryBean

    1. BeanFactory BeanFactory定义了 IOC 容器的最基本形式,并提供了 IOC 容器应遵守的的最基本的接口,也就是Spring IOC 所遵守的最底层和最基本的编程规范.在   ...

  6. 关于JavaScript组件化的探索

    Loaders 先放出项目地址:https://github.com/j20041426/Loaders 这是一个可以动态选择加载动画的样式和颜色的插件.这个项目仅仅是作为对js组件化的一个探索,不太 ...

  7. R语言成功加载rJava方法

    加载rJava的同时,要下载JAVA的JRE并且配置环境变量JAVA_HOME,因为rJava的调用需要java运行环境. 1.下载JRE 64位版本的JRE官网下载:http://www.java. ...

  8. [补档][Lydsy2017年4月月赛]抵制克苏恩

    [Lydsy2017年4月月赛]抵制克苏恩 题目 小Q同学现在沉迷炉石传说不能自拔.他发现一张名为克苏恩的牌很不公平. 如果你不玩炉石传说,不必担心,小Q同学会告诉你所有相关的细节.炉石传说是这样的一 ...

  9. 双向循环链表(C语言描述)(一)

    双向循环链表是链表的一种,它的每个节点也包含数据域和指针域.为了方便程序维护,可以单独为数据域定义一种数据类型,这里以整型为例: typedef int LinkedListData; 双向循环链表( ...

  10. How Django works?

    Django是如何工作的? 概念 以线上版本中Django和Nginx.uwsgi搭配,这里首先要了解uWSGI.uwsgi.WSGI分别代表着什么,其中uWSGI实现了uwsgi.WSGI.HTTP ...