java 基础 02 数据类型、运算符、分支结构
内容:
(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 数据类型、运算符、分支结构的更多相关文章
- java基础-02数据类型
基本类型 整数 byte byte 数据类型是8位.有符号的,以二进制补码表示的整数 最小值是 -128(-2^7) 最大值是 127(2^7-1) 默认值是 0 byte 类型用在大型数组中节约空间 ...
- java基础02 数据类型转
一.回答问题 float f1 = 6.66f; float f2 = (float) 6.67; f1==f2? /** * * @author sun * */ public class Demo ...
- java基础(数据类型,运算符)
java基础之数据类型(变量) java中存在的数据有常量和变量 常量:在程序执行的过程中其值不可以发生改变 常量的分类 字面值常量 字面值常量的分类 常量 描述 字符串常量 用双引号括起来的内容 整 ...
- java基础-引用数据类型之一维数组(Array)
java基础-引用数据类型之一维数组(Array) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组的定义 1>.为什么需要数组 保存一个数据可以定义一个变量,如果要保 ...
- Java基础-字符串连接运算符String link operator
Java基础-字符串连接运算符String link operator 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 字符串链接运算符是通过“+”进行拼接的. 一.使用“+”进行字 ...
- Java基础语法(3)-运算符
title: Java基础语法(3)-运算符 blog: CSDN data: Java学习路线及视频 1.算术运算符 算术运算符的注意问题 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1. ...
- java基础-引用数据类型之二维数组(Array)
java基础-引用数据类型之二维数组(Array) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我们学习过了Java的一维数组,所谓的二维数组就是元素是一堆一维数组的数组,换 ...
- Java基础-引用数据类型之集合(Collection)
Java基础-引用数据类型之集合(Collection) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么出现集合类 面向对象语言对事物的体现都是以对象的形式,所以为了方便 ...
- java 基础 03 运算符 分支结构 循环结构
今天内容: (1)运算符 (2)分支结构 (3)循环结构 1运算符 1.1赋值运算符 (1)简单赋值 = 表示赋值运算符,用于将=右边的数据赋值给=左边的变量来覆盖原来的数值. 笔试题: ia == ...
随机推荐
- shell自动收集服务器硬件系统信息
shell自动收集服务器硬件系统信息,插入数据库并通过web页面显示. 一,shell自动收集服务器硬件系统信息,插入数据库.#centos 7操作系统下 #!/bin/bash #auto get ...
- 各版本Google浏览器下载地址
各版本谷歌浏览器下载地址 https://www.chromedownloads.net/chrome64win/
- CodeForces 492C Vanya and Exams (贪心)
C. Vanya and Exams time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- 2017Java学习路线图,内附完整Java自学视频教程+工具经验+面试
http://bbs.itheima.com/thread-338415-1-1.html
- 【Qt官方例程学习笔记】Raster Window Example(画笔的平移/旋转/缩放应用)
这个例子显示了如何使用QPainter渲染一个简单的QWindow. 值得学习的内容 <QtGui>头文件 #include <QtGui>就可以使用Qt GUI模块中的所有类 ...
- HN669打包工具--调试文档
调试有两种方式,一是直接在游戏工程上面调试,这比较麻烦,需要根据插件配置文件和脚本文件去配置好工程选项后,才能调试.简单一点就是通过脚本文件打包后会有生成游戏工程对应每个渠道的工程. 如下图:这个工程 ...
- 洛谷P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper
P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper 题目描述 A little known fact about Bessie and friends is ...
- 2017-9-26 NOIP模拟赛
NOIP 2017 全真模拟冲刺 ---LRH&&XXY 题目名称 那些年 铁路计划 毁灭 题目类型 传统 传统 传统 可执行文件名 years trainfare destroy 输 ...
- bzoj4200: [Noi2015]小园丁与老司机(可行流+dp)
传送门 这该死的码农题…… 题解在这儿->这里 //minamoto #include<iostream> #include<cstdio> #include<cs ...
- Cannot find the Session Identifier. Check PLUSTRACE role is enable
解决方法: SQL> conn / as sysdbaConnected.SQL> @$ORACLE_HOME/rdbms/admin/utlxplan.sql; Table create ...