内容:
  (1)数据类型
  (2)运算符
  (3)分支结构

1.数据类型

  java语言中的基本数据类型:byte、short、int、long、float、double、boolean、char。

1.1布尔类型

  在java语言中描述真假信息的类型有:boolean。

  该类型变量的数值只有两种:true(真)、false(假)。

  该类型在内存空间中的大小没有明确定义,通常认为是1个字节。

1.2字符类型

  在java语言中用于描述单个字符的数据类型有:char  如:'a'、'b'。

  其中char类型在内存空间中占2个字节大小,并且没有符号,因此范围是65535。

  该类型在以后的开发中很少使用,使用更多的是由多个字符组成的字符串,在java语言中用Sting类型来描述。

  对于字符'a'这样的图案无法存储到计算机中,因为计算机的底层只能识别0和1组成的二进制序列,

  如果需要将'a'储存起来则需要给该图案指定一个编号,将编号记录到计算机中,这种编号就叫做ASCII。

  常用的ASCII有:

        'A' - 65  'a' - 97  '0' - 48  空格 - 32  换行符 - 10

  转义字符:

      \" 代表 "    \' 代表 '    \\ 代表 \     \n 代表 换行符    \t 代表 制表符

1.3 基本数据类型之间的转换

  在Java语言中基本数据类型之间的转换方式有两种:

      自动类型转换:从小类型到大类型之间的转换

      强制类型转换:从大类型到小类型之间的转换

        语法格式: 目标类型  变量名  = (目标类型)源类型变量名  (不建议使用强制类型转换,可能会有损失)

2.运算符
2.1 算术运算符

  + 表示加法运算符   - 表示减法运算符   * 表示乘法运算符

  / 表示除法运算符   % 表示取模/取余运算符

  注意:

    (1)在java语言中两个整数相除的结果只取整数部分,丢弃小数部分。

    (2)如果希望计算结果保留小数部分,则需要进行如下处理:

      (a)让其中一个操作数强制转换为double类型即可。

      (b)让其中一个操作数乘以1.0提升到double类型再运算即可。(推荐使用此方法)

    (3)在java中0不能做除数,但是0.0可以做除数,结果是无穷。

    (4)+既可以当做算数运算符,也可以作为字符串连接符,具体区分方式如下:

       当+两边的操作数中只要有一个是字符串类型时,则按照字符串连接符对待。

2.2 关系/比较运算符

  > 表示是否大于运算符 >    = 表示是否大于等于运算符    < 表示是否小于运算符

  <= 表示是否小于等于运算符   == 表示是否等于运算符         != 表示是否不等于运算符

  所有关系运算符作为最终运算的表达式结果一定是boolean类型。

2.3 自增减运算符

  + 表示加法运算符  ++表示自增运算符  让变量自身的数值加1,覆盖原来的数值。

  -  表示减法运算符  - -表示自减运算符  让变量自身的数值减1,覆盖原来的数值。

  注意:

    (a)对于单个变量来说,++放在变量名的前面或后面带来的结果都是让变量自身+1的效果。

    (b)对于表达式来说,   ++a 表示先让a自身的数值+1,然后再作为表达式的结果。

                   a++ 表示先让a作为表达式的结果,然后再让啊自身的数值+1。

                   - -a 表示先让a自身的数值-1,然后再作为表达式的结果。

                   a- - 表示先让a作为表达式的结果,然后再让啊自身的数值-1。

2.4 逻辑运算符

  && 表示逻辑与运算符,相当于并且,同真为真,一假为假。

  ||    表示逻辑或运算符,相当于或者,一真为真,同假为假。

  !  表示逻辑非运算符,相当于取反,真为假,假为真。

2.4.1  & 和 && 的区别

  &运算符有两种用法:(1)按位与;(2)逻辑与。

  &&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true 整个表达式的值才是 true。

  &&之所以称为短路运算是因为,如果&&左边的表达式的值是 false,右边的表达式会被直接短路掉,不会进行运算。

  很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是 null 而且不是空字符串,应当写为 username != null &&!username.equals(""),二者的顺序不能交换,

  更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的 equals 比较,否则会产生 NullPointerException 异常。

  注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。

  短路特性:

      对于逻辑与来说,若第一个操作数的结果为假,则整个表达式的结果一定为假,此时跳过第二个操作数的判断。

      对于逻辑或来说,若第一个操作数的结果为真,则整个表达式的结果一定为真,此时跳过第二个操作数的判断。

2.5 三目/条件运算符

  条件表达式?表达式1:表达式2

    (判断条件表达式是否成立,若成立执行表达式1,否则执行表达式2)

java 基础 02 数据类型、运算符、分支结构的更多相关文章

  1. java基础-02数据类型

    基本类型 整数 byte byte 数据类型是8位.有符号的,以二进制补码表示的整数 最小值是 -128(-2^7) 最大值是 127(2^7-1) 默认值是 0 byte 类型用在大型数组中节约空间 ...

  2. java基础02 数据类型转

    一.回答问题 float f1 = 6.66f; float f2 = (float) 6.67; f1==f2? /** * * @author sun * */ public class Demo ...

  3. java基础(数据类型,运算符)

    java基础之数据类型(变量) java中存在的数据有常量和变量 常量:在程序执行的过程中其值不可以发生改变 常量的分类 字面值常量 字面值常量的分类 常量 描述 字符串常量 用双引号括起来的内容 整 ...

  4. java基础-引用数据类型之一维数组(Array)

    java基础-引用数据类型之一维数组(Array) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组的定义 1>.为什么需要数组 保存一个数据可以定义一个变量,如果要保 ...

  5. Java基础-字符串连接运算符String link operator

    Java基础-字符串连接运算符String link operator 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 字符串链接运算符是通过“+”进行拼接的. 一.使用“+”进行字 ...

  6. Java基础语法(3)-运算符

    title: Java基础语法(3)-运算符 blog: CSDN data: Java学习路线及视频 1.算术运算符 算术运算符的注意问题 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1. ...

  7. java基础-引用数据类型之二维数组(Array)

    java基础-引用数据类型之二维数组(Array) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我们学习过了Java的一维数组,所谓的二维数组就是元素是一堆一维数组的数组,换 ...

  8. Java基础-引用数据类型之集合(Collection)

    Java基础-引用数据类型之集合(Collection) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么出现集合类 面向对象语言对事物的体现都是以对象的形式,所以为了方便 ...

  9. java 基础 03 运算符 分支结构 循环结构

    今天内容: (1)运算符 (2)分支结构 (3)循环结构 1运算符 1.1赋值运算符 (1)简单赋值 = 表示赋值运算符,用于将=右边的数据赋值给=左边的变量来覆盖原来的数值. 笔试题: ia == ...

随机推荐

  1. 第二篇elasticsearch配置

    1.去github搜索 elashsearch——head,以mobz开头的2.在根目录下安装npm install 3.修改elashsearch下的config文件下的elashsearch.yu ...

  2. unreal3启动流程总结

    一.启动代码所在工程为Launch(win32),可为所有同一codebase项目共享. 但共享方式很不智能,是通过在源文件中添加大量#if/else条件编译宏来实现,即各项目在自己的工程中添加[程序 ...

  3. Spring入门第二十六课

    Spring中的事务管理 事务简介 事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性. 事务就是一系列的动作,他们被当做一个单独的工作单元,这些动作要么全部完成,要么全部不起 ...

  4. NetCore 学习笔记(DI 实例生命周期)

    Transient: 每一次GetService都会创建一个新的实例 Scoped:    在同一个Scope内只初始化一个实例,同一个请求内只会被创建一次 Singleton :整个应用程序生命周期 ...

  5. Python包管理工具setuptools之setup函数参数详解

    **********************************************************对所学内容的简单汇总******************************** ...

  6. 浅谈JavaScript--this指向

    js中this的值取决于调用的模式 方法调用模式 var student={ name:"adoctors", showThis:function(){ console.log(t ...

  7. 解决LINUX下SQLPLUS时上下左右键乱码问题

    window下的sqlplus可以通过箭头键,来回看历史命令,用起来非常的方便. 但是在linux里就没有这么方面了,错了一个命令,我们必须重新敲一次,辛苦了手指头叻. 看到一个文章,很方便的一招,给 ...

  8. NodeJS什么都能做,为什么还要JAVA?

    这张图看起来简单而且很好理解,但没尝试过,会有很多疑问. SPA模式中,后端已供了所需的数据接口,view前端已经可以控制,为什么要多加NodeJS这一层? 多加一层,性能怎么样? 多加一层,前端的工 ...

  9. 数据交换格式Json与XML

    什么是数据交换格式: 主流的有Json.XML.HTML. 数据交换格式的应用场景: 移动端(安卓,IOS)通讯方式采用http协议+Json格式的restful风格. 很多互联网公司都是用Http协 ...

  10. > Task :app:transformDexArchiveWithExternalLibsDexMergerForDebug FAILED

    > Task :app:transformDexArchiveWithExternalLibsDexMergerForDebug FAILED D8: Cannot fit requested ...