当前位置: 首页 > news >正文

【第一阶段:java基础】第2章:java变量

本系列博客是韩顺平老师java基础课的课程笔记

韩顺平P34-P61

  • 1. 变量介绍
  • 2. 变量使用细节
  • 3. +号的使用
  • 4. 数据类型⭐
    • 基本数据类型
      • 数值型
      • 字符型
      • 布尔型
    • 引用数据类型
  • 5. java api 文档
  • 6. 常用编码
  • 7. 数据类型转换
    • 自动类型转换
    • 强制类型转换
    • 基本数据类型和String类型的转换

1. 变量介绍

  1. 变量是程序的基本组成单位
  2. 变量相当于内存中的一个数据存储空间
  3. 变量的基本要素是:类型,名称,值

2. 变量使用细节

  1. 变量有不同的类型,每一种类型占用空间大小不同(int:4 double:8)
  2. 变量必须先声明后使用
  3. 在区域内,同一个变量在同一类型的值可以不断变化
  4. 变量在同一个作用域内不能重名

3. +号的使用

  1. 当左右两边是数值型时,做加法运算
  2. 当左右两边有一方是字符串时,做拼接运算
  3. 运算顺序从左到右:例如:“hello”+98+2=hello982

4. 数据类型⭐

基本数据类型

数值型

整数型:

  • 1️⃣byte:1字节:当把一个数值复制给byte时,会先判断是否再范围之内(-128~127 ),当把一个变量复制给byte时,会先判断类型
  • 2️⃣short:2字节
  • 3️⃣int:4字节,默认类型
  • 4️⃣long:8字节,声明long型常量必须后加l或者L: long n=4L;

浮点型:

  • 5️⃣ float: 4字节,声明float型常量必须后加f或者F: float=0.4F;
  • 6️⃣ double: 8字节,默认类型
  • 浮点类型的数据有两种表示形式:
    • 十进制:0.512=.512
    • 科学记数法:5.12e2=512.0 5.12e-2=0.512
  • 浮点数使用陷阱💥
    • 8.1 / 3 不等于2.7 而是等于2.69999999997 (因为机器以为8.1后面可能是8.100000001)
    • 因此,判断两个小数是否相等时,要格外小心,不能直接==,而应该以两个数的差值的绝对值,在某个精读范围内来判断
    • 如果是查询得到的小数,或者是直接赋值得到的小数,是可以用==判断的

字符型

7️⃣ char:2字节,存放单个字符

  • 字符类型可以直接存放一个数字,会输出数字对应的ascll码字符
  • 字符常量只能用单引号,双引号表示的是字符串
  • char可以接收转义字符
  • char的本质是一个整数,在输出时,是Unicode码对应的字符
  • char类型是可以进行运算的(转成其对应的整数再进行运算)

布尔型

8️⃣ boolean:1字节,存放ture/false

  • 和c语言不同的是,不可以用0或者非0的整数替代false/true
  • 只能是true/false,不可以是null

引用数据类型

  1. 类(class)
  2. 接口(interface)
  3. 数组([ ])

这一部分在后续的课程中会逐个介绍

5. java api 文档

api:应用程序编程接口,java类的组织形式如下图所示:
在这里插入图片描述

如何使用java文档(以ArrayList为例)

  • 方法一:按照包->类->方法
  • 方法二:直接索引

6. 常用编码

  1. ASCLL: 每个字符由一个字节表示,共128个字符(实际上1个字节可以表示256个字符,但是ASCLL只用了128个),缺点是无法表示所有的字符(比如说中文字符)
  2. Unicode: 固定大小的编码,字母和汉字同一都是占用两个字符(不会有乱码的问题,但是这样会浪费空间)Unicode 编码兼容ascll码
  3. utf-8: 大小可变的编码,字母用1个字节表示,汉字用3个字节表示
  4. GBK: 可以表示汉字,而且范围广,字符用1字节,汉字用2字节
  5. GB2312: 可以表示汉字,gb2312<gbk
  6. Big5: 可以存放繁体的中文(台湾,香港)

7. 数据类型转换

自动类型转换

  • 精度小的类型自动转化为精度大的类型,数据类型按精度(容量)大小排序如下图所示:
    在这里插入图片描述

  • 细节:

      1. 当有多种类型的数据混合运算时,系统首先自动将所有的数据转换为容量最大的那种数据类型,然后再进行计算
      1. 当把精度大的数据赋值给精度小的数据时会报错
      1. byte , short 和 char 之间不会互相自动转换
        在这里插入图片描述
      1. byte, short, char 他们三者可以计算,在计算时会首先转换成int类型
        在这里插入图片描述
      1. boolean 类型不参与自动转换
      1. 自动提升原则:表达式的结果自动提升为操作数中精度最大的类型

强制类型转换

  • 是自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型,使用时要加上强制转换符(),但可能会造成精度降低或溢出,格外要注意
    在这里插入图片描述

  • 细节:

      1. 强转符号只针对与最近的操作数有效,往往会使用小括号提升优先级
      1. char类型可以用来保存int的常量值,但是不能保存int的变量值,需要进行强转在这里插入图片描述

基本数据类型和String类型的转换

  1. 基本数据类型->String:将基本数据类型的值+“ ” 即可
    在这里插入图片描述

  2. String->基本数据类型:通过基本类型的包装类调用parseXX方法即可(细节:要确保String能够转换成有效的数据,比如可以把“123”转成整数,而不能把“hello”转成整数,否则会抛出异常)
    在这里插入图片描述

  3. 获取字符串中的第i个字符
    在这里插入图片描述

今天大概看了30集课,可谓是十分细致了,对后面刷选择题十分重要。

相关文章:

  • 【Spring】一文带你吃透基于注解的DI技术
  • 跨域(cors和jsonp)
  • 手撕前端面试题【javascript~ 总成绩排名、子字符串频次统计、继承、判断斐波那契数组等】
  • Linux运维面试题总结—Linux基础、计算机网络基础
  • 【小程序websocket前后端交互】uniapp写微信小程序聊天功能功能,websocket交互功能,心跳重连【详细注释,复制即用】
  • 四线法与电桥
  • Linux文件属性与权限
  • 农行原首席专家兼浙江省分行原行长冯建龙主动投案,正接受审查调查
  • 观察|22项达全球最优,世行为上海营商环境“盖章”
  • 央行、证监会:科技创新债券含公司债券、企业债券、非金融企业债务融资工具等
  • 央行行长详解降息:将通过利率自律机制引导商业银行相应下调存款利率
  • 欧盟公布终止进口俄能源计划,2027年为最后期限
  • 南京明孝陵石兽遭涂鸦“到此一游”,景区:已恢复原貌,警方在排查