前言
提示:大概内容:
内容不全,后续会补充,个人笔记
提示:以下是本篇文章正文内容
一、基本数据类型
基本数据类型是存储在栈中的,相比较于引用数据类型。
1.基本数据类型有哪些?
基础数据类型有8种,分别是:整型4种、浮点型2种、字符型1种和boolean类型1种
数据类型 | 类型名 | 大小/字节 |
---|---|---|
整型 | byte | 1 |
整型 | short | 2 |
整型 | int(默认) | 4 |
整型 | long | 8 |
浮点类型 | float | 4 |
浮点类型 | double(默认) | 8 |
字符类型 | char | 2 |
布尔类型 | boolean | 1 |
2.什么是引用数据类型?
常见的引用数据类型:String、数组。
- 引用数据类型是本身存储的是JVM处理之后的堆中的地址编码。
- 引用数据类型是存储在堆中的。
3.基础数据类型之间的转换
⚠️小结
- 类型范围小的数据类型可以自动转换成范围大的数据类型。
- +=这些运算符含有强转效果。⭐️
- byte、short类型可以自动勘测范围进行转换。只勘测常量,当给的默认类型是int类型时,可以自动转换成byte或者short。
- 当byte,short,char数据类型进行算术运算时,按照int类型处理。
- 范围大的数据类型想要转换成小范围的数据类型需要强制转换:强转格式为:
示例代码:
//(char)int;
(char)97;//97强制转换为a
- 强制转换会丢失精度,小数点之后的精度丢失。
二、运算符
运算符分类:算术运算符、赋值运算符、关系运算符、逻辑运算符、条件运算符、位运算符
分类 | 运算符 |
---|---|
算术运算符 | + 、- 、* 、/ 、% 、++ 、-- |
赋值运算符 | = 、+= 、-= 、*= 、/= 、%= 等 |
关系运算符 | > 、>= 、< 、<= 、== 、!= |
逻辑运算符 | & 、| 、^ 、! 、&& 、|| |
条件运算符 | (条件表达式)?结果1:结果2; |
位运算符(了解) | & 、| 、~ 、^ 、<< 、>> 、>>> |
1.数据类型之间如何运算?
基础数据类型运算之前需要统一数据类型,通过类型转换,再通过补码进行运算。
- 正数 原码 反码 补码 三码一致
- 负数 原码 反码(符号位不动,其它位按位取反) 补码(反码+1)
2.左移和右移
- 左移 溢出删除 右侧补零。
- 右移 正数补零 负数补一。
- 无符号右移 右移补零(永远补零)
3.自增和自减
- 前++ 先自增 后入栈
- 后++先入栈 后自增
示例代码:
int i = 1;
i = i++;
System.out.println(i); //i=1
int i = 1;
int j = ++i*i++ + i++ * ++i;
// 2 2 3 5
// j=19 i=5
⚠️小结
- 自增自减进行运算的是操作数栈,防止溢出越界。
- java运算会临时创建一个存储空间栈,++是先入栈后 自增;--是先运算后 入栈。加的操作是本身自增 入栈没有动作
总结
- double 、float进行数据运算的时候不精确。
- 计算机中只有加法和乘法。
- 运算使用的是补码 超过位数的数据 计算机中直接删掉。
- 10000000 人为规定是最小负数 -128。
- Java使用Unicode字符集 三个字节表示一个字符 。