数据类型和运算符

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的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构。

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)。

3.1 整数型

注意事项

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

3.2浮点型

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

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

注意事项

  • 浮点型常量默认为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扩展赋值运算符

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

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的值。

double类型怎么取余_数据类型和运算符相关推荐

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

    数据类型和运算符 1.进制 1.1文件存储单位 ​ 任何数据在计算机中都是以二进制的形式存在的,二进制早期由电信号开关演变而来 . ​ 一个电信号或者一个二进制位统称为Bit位,8个Bit位为一组组成 ...

  2. Day02-变量_数据类型和运算符

    1 数据类型 不同类型的变量可以进行的运算是不同的,所以必须理解变量的类型,python中数据类型可以分为: 内置类型 数值类型:整型int,浮点型float,复数(complex) 3+5j str ...

  3. delphi 对金额double类型向上取整,保留小数位

    delphi 对金额double类型向上取整,保留小数位 //新保留小数位,只要后面有多余的数据,则进位 function NewRoundTo(value: Double; ws: Integer) ...

  4. 《Java疯狂讲义》第3章(数据类型和运算符):博主李俊德的阅读笔记与知识拓展

    一.问题背景 博主在准备应聘的笔试.面试时,再次采用了多年以来的Java工具书<Java疯狂讲义>,并决定在每章详细复习后都要在博客中写下详细的阅读笔记. 二.阅读笔记与知识拓展--< ...

  5. iOS开发基础-C语言数据类型和运算符

    第2章 数据类型和运算符 2.1 注释 程序注释是源代码的一个重要部分,对于一份规范的程序源代码而言,注释应该占到源代码的1/3以上: 单行注释 //: 多行注释 /*注释开始和*/注释结束,需要指出 ...

  6. java异或运算结果数据类型_java中的数据类型和运算符的总结归类。

    首先学习java肯定先要了解java的发展史,以及java的特点,常见的dos命令,jdk的安装,如何开发java程序等等一下概念行的东西,这里面我都不一一说了. 今天这一章主要想总结一下java中的 ...

  7. MYSQL数据库——mysql的数据类型和运算符

    一.数据类型和运算符 数据库表是由多列字段构成,每一个字段都是表的一个属性,每一列都指定了不用的数据类型.指定了数据类型之后,也就决定了向字段内插入的数据的内容.例如,插入的是数字的时候,既可以将它们 ...

  8. java基础学习 --- 第二节 变量、数据类型和运算符

    java基础学习 - 第二节 变量.数据类型和运算符 一.变量 1.变量就是会发生改变的数据,程序运行时,这些数据以变量的形式被保存到计算机的内存中.如图 2.使用变量的步骤:     声明变量 - ...

  9. 【JavaSE】02-变量、数据类型和运算符

    二. 变量.数据类型和运算符 2.1 变量 2.1.1 变量的声明 type varName [=value][,varName[=value]...]; //[ ]中的内容为可选项,即可有可无 数据 ...

最新文章

  1. centos 8 卸载anaconda_Centos7安装JDK1.8
  2. 屏幕显示密度dpi_PPI和DPI有什么区别?
  3. python调用ipython_在IPython中执行Python程序文件的示例
  4. 如何采用python语言绘制一条_如何使用matplotlib绘制一条线?
  5. fgetc(),getc(),getchar()的用法
  6. springboot微信支付pc页面生成二维码
  7. 点击area不出现黑框_30款厨房门,黑框?白框?你家选哪个合适?
  8. 【python】list append()和extend()区别
  9. 《快学Scala》勘误
  10. JAVA 【引用类型】和【对象类型】在【继承】中的异同
  11. 离线安装gcc(CentOS7)
  12. matplotlib fontdict 字体设置
  13. C++调用yolov3模型-opencv3.4.2
  14. 程序员必备算法——算法相关链接总结
  15. qfile.remove 删除已经被加载的文件_Milvus数据管理:删除的实现原理
  16. 最新短视频去水印小程序源码/带流量主/外卖CPS系统/批量解析/修改MD5
  17. python在股票中的应用_python在股票市场中的应用,量化大师自编选股公式
  18. 开源超级终端工具——WindTerm
  19. 非计算机专业怎么准备蓝桥杯,大三接触算法,用寒假时间准备蓝桥杯,如何提高成绩?...
  20. 拦截一切的CoordinatorLayout Behavior

热门文章

  1. 读书笔记 - 企业精简架构
  2. 配置中心框架IConfCenter
  3. 局域网打印机共享怎么设置?如何设置打印机共享?
  4. RSS FEED的应用
  5. 索引存储和散列存储(哈希)的区别吧
  6. C#委托的介绍(delegate、Action、Func、predicate)
  7. SQL Server 命令行管理工具:SqlLocalDB.exe
  8. 三种活体检测方式分析
  9. 计算机内存知识txt,计算机新手必备内存实用知识.docx
  10. php程序员笔试题库,2017年初级PHP程序员笔试题