java学习笔记8:基本数据类型和运算符

一、数据类型(primitive data type)

1、数据类型分为:基本数据类型、引用数据类型。
  (数据类型规定了内存的大小)

2、引用数据类型:引用对象,空间占四个字节(面向对象再说),用来代表对象的地址

3、基本数据类型:三大类八小类
    
    数值型:(存储数字)
      整数类型:byte、short、int、long(1、2、4、8字节)
      浮点类型:float、double(4、8字节,小数精度)
    字符型(文本型,2个字节,存储字符):char,如:‘a’
    布尔型(1位,存储真假):boolean(true、false)
数据类型

(一)、整形变量/常量

1、整形类型
整形数据类型
注:byte,是1字节,2的8次方;
  short,2字节,2的16次方;
  …
  
2、java语言整形常量的四种表达方式(进制的转换请自行百度)

  • 十进制整数,如:99、-500、0、15
  • 八进制整数,要求以0开头,如:015
  • 十六进制整数,要求0x或0X开头,如:0x15
  • 二进制数,要求0b或0B开头,如0b01110011
    测试基本数据类型
(二)、浮点型变量/常量和BigDecimal的使用

1、带小数的数据在java中被称为浮点型,可分为float类型(4字节)和double类型(8字节)。
   float类型:单精度类型,尾数可以精确到7位有效数字,在很多情况下,精度很难满足需求;
   double类型:双精度类型,绝大多部分应用程序都采用double类型,浮点型常量默认类型也是double类型。
浮点型数据类型
2、浮点类型常量有两种表示形式

  • 十进制数形式,如:3.14 、314.0、0.314
  • 科学计数法形式,如:314e2、314E2、314E-2(314e2相当于314X100,314E-2相当于除以100)
    浮点类型变量赋值示例
    3、浮点数比较:BigDecimal类
    浮点数比较
    BigDecimal
    示例代码:需引入java.math包
    比较数代码
    使用精确浮点运行,推荐:BigDecimal
(三)、字符型变量/常量(char)

1、char类型
  字符型在内存中占2个字节,在Java中使用单引号来表示字符常量。例如’A’是一个字符,它与“A”是不同的,“A”标识含有一个字符的字符串。
  char类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符
示例
2、转义字符
转义字符
注:“a”不是字符,是字符串(双引号);
  ‘a’是字符(单引号);
  当需要单双引号嵌套使用时需要使用转义字符。

(四)、布尔类型(boolean:true or false)

布尔类型
布尔类型代码示例

二、运算符(operator)

运算符介绍
注:运算符很重要。

(一)算数运算符

1、二元运算符:需要两个操作数才能完成运算的运算数。
        包括:加、减、乘、除、取余(+、-、*、/、%)。
        
2、二元运算符的运算规则:
  1)整数运算:
    (1)如果两个整数有一个为long,则结果也为long;
    (2)没有long时,结果为int(即使操作数全为short、byte,结果也是int)。
  2)浮点运算:
    (1)如果两个操作数有一个为double,则结果为double;
    (2)只有两个操作数都是float,其结果才为float。
  3)取模运算:(取余)
    (1)其操作数可以为浮点数,一般使用整数,结果是“余数”;
    (2)“余数”的符号和左边操作符相同,如:
              7%3=1,  -7%3=-1,  7%-3=1
注:算数运算符中的++、- -属于一元运算符,该类运算符只需要一个操作数。
示例代码

(二)赋值运算符及其扩展赋值运算符

赋值运算符及其扩展赋值运算符

(三)关系运算符

关系运算符用来进行比较运算,其结果是布尔值:true 或 false。
关系运算符

(四)逻辑运算符

特点:用来操作布尔值。
逻辑运算符
代码示例

(五)位运算符

进行二进制位的运算。
位运算符
代码示例

注:左移或右移一位(a<<1),相当于除以2,若左移或右移二位(a<<2),相当于除以4。
(六)字符串连接符

1、字符串不是基本数据类型,是对象。(后面学对象)

2、字符串连接符:加号(+:既是算数运算符,也是字符串连接符)
    如: 3 + 4 = 7 //这是算数运算符
      3 + “4” → 34 //当有一个操作符是字符串时,+作为连接符,输出为拼接的结果:34
 
    注:运算方向依旧是从左到右;
      字符串和字符并不相同。
代码示例

(七)条件运算符

1、三元运算符(三目运算符)
三元运算符
代码示例

(八)运算符优先级(逻辑与或优先问题)

逻辑运算符优先级问题

三、类型转换

1、自动类型转换:容量小的数据类型可以自动转换为容量大的数据类型.
  
  自动转换规则
    byte
    short → int → long → float → double
    char
   
  注:这里的容量大小不是字节,是范围,但转换可能会损失一定精度。
在这里插入图片描述
2、强制类型转换
   强制类型转换,又被称为造型,用于显式的转换一个数值的类型。
   在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。
强制类型转换代码示例

四、基本类型常见问题(溢出、L问题)

1、操作数比较大的时候,要留意是否溢出
2、不要命名名字为l的变量(小写的L),l容易和1混淆。Long类型使用大写L,不要用小写。
测试类型常见转换问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值