美好的一天从新知识开始 CoreJava

tech2022-08-21  121

JAVA笔记

Java语言基础变量数据类型基本数据类型 八个引用数据类型 基本数据类型的转换表达式和运算符

Java语言基础

变量

变量代表的就是内存中的存储空间 变量的定义:数据类型 变量名; eg: int a; 变量的赋值:==变量名 = 值; == eg: a = 5; 同时定义并赋值:数据类型 变量名 = 值; eg: int a = 5; 同时定义多个变量:int a,b,c,d; int a = 3,b = 4,c = 5,d; java中变量属于强类型,变量的类型 必须和 变量中的数据的类型一致。

数据类型

基本数据类型 八个
整型 <4 个> byte short int long 浮点型 <2 个> float double 字符型 <1 个> char Unicode编码 布尔型 <1 个> boolean

整型

byte 1字节 ----------> 8个bit 敏感单元位 1byte == 8bit 0 0000000 256种组合 用第一个 bit 位置来记录符号 0正数 1 负数 数值范围:-2的7次方 ~ 2的7次方-1 (-128 ~ 127) short 2字节 == 16bit 65526种组合 数值范围:-32768 ~ 32767 int 4字节 == 32bit 数值范围:-2147483648 ~ 2147483647 long 8字节 == 64bit 注意:字面量超出int范围时,字面量后面必须加" L "或" l "

浮点型

float 4字节 == 32bit 单精度类型 注意:浮点型的字面值默认double类型,float类型赋值时,字面值后必须加" F "或" f " double 8字节 == 64bit 双精度类型

字符型

char 2字节 数值范围:0 ~ 65535 存储Unicode码(万国码) 支持中文

布尔型

1字节 字面值只有true 和 false 注意:boolean 不参与任何运算和类型转换
引用数据类型
数组 类class(抽象类 abstract class) 接口interface 枚举enum 注解@interface String SUN公司提供的一个类 String str = "beijing"; 字面值使用成对双引号引起来 零 ~ 多个字符

基本数据类型的转换

java允许程序在运行时,根据数据类型的需要 改变数据的值 数据类型1 变量名1 <— (右边给左边赋值)数据类型2 变量2

同种数据类型之间可以直接进行赋值操作 数据类型不同的空间之间的赋值 ===> 转换问题 ————— 基本类型 --------- 基本类型之间 可以直接转换<自动 强转> ————— 引用类型 --------- 引用类型之间 可以直接转换<自动 强制 — 上转型 下转型> ————— 基本类型 --------- 引用类型之间 不可以直接转换<间接 – 包装类/封装类>

long l = i;//i是int类型,在执行时,l是long类型,会自动调整右边的int为long类型后,再赋值(自动类型转换) 自动类型转换:右侧的所有数据 都能包含在左侧的数据类型中 (左侧的类型范围 大于 右侧的范围) byte ---> short ---> int ---> long ---> float ---> double char ---> int 强制类型转换:右侧类型的所有数据 不能被完全包含在左侧的数据类型中(左侧类型的范围 小于 右侧的范围) 语法:类型1 变量1 = (类型1)值; a>高字节数据 赋值给 低字节,需要强转,数据可能会损失 b>浮点数 赋值给 整数 ,需要强转,数据可能会损失 c>4种整数类型(带符号数) 和 char (无符号数)转换时,需要强转 d>boolean 不能与其他类型之间发生转化

表达式和运算符

表达式:把 变量 和 字面值 通过运算符连接起来,形成的具有特写结果的一个算式。

表达式中的数据类型提升规则: a 运算符 b

如果a 和 b 有一个double类型,则表达式的结果是double类型如果a 和 b 有一个是float类型,则表达式的结果是float类型如果a 和 b 有一个是long类型,则表达式的结果是long类型以上三种情况都不满足,则结果是int类型

运算符:用来指明对于操作数的运算方式

按操作数目分类: 单目 双目 三目 a ++ a + b (a > b)?x:y; 按运算符的功能来进行分类: 1)算术运算符:+ - * / %(取余运算)单目:++(自增) --(自减) + 操作数中有一个是String,则 + 变为字符串拼接字符 a ++ 先用后加 a -- 先用后减 ++ a 先加后用 -- a 先减后用 2)赋值运算符:= 赋值符号 将=右边的内容(值 引用) 存入=左边的变量空间内 = += -= *= /= %= 注意:复合赋值运算符 不会发生 类型的提升 3)关系运算符: == != > >= < <= 关系运算符的结果是boolean. 区分 === 区别: = 赋值符号 将=后面的结果(值 引用)存入=左边的变量空间内 == 比较符号 比较 == 前面 和 == 后面的元素(值 引用)是否一致 4)逻辑运算符:&逻辑与 ^逻辑或 !逻辑非 &&短路与 ||短路或 逻辑运算符前后连接的两个都是 boolean 的值 最终的结果还是boolean 一元逻辑运算符 &逻辑与 可以理解为中文的"和","并且"意思 &前后两个条件必须同时满足 最终才为true |逻辑或 可以理解为中文的"或者" | 前后两个条件只要有一个满足 最终就为true ^逻辑异或 前后两个表达式只要结果不相同 最终结果就为true !逻辑非 可以立即为中文的"不" 将原来的结果取反 二元逻辑运算符 && 逻辑与 —— 两个数都为true结果才为true,有一个为false结果即为false 短路与 —— &&运算的第一个操作数是false,则右侧的表达式不再计算,自动发生短路 || 逻辑或 —— 两个数都为false结果才为false,有一个为true则结果为true 短路或 —— ||运算的第一个操作数是true,则右侧的表达式不再计算,自动发生短路 5)三元运算符/条件运算符: 布尔表达式?1:2 (参与操作的数有三个构成) 计算布尔表达式的值,如果是true ,则结果是值1 ; 如果为false ,则取值2 6)位(bit)运算:&按位与 |按位或 ^按位异或 ~按位取反 <<按位左位移 >>按位右位移 >>>按位右位移(无符号)

运算符的优先级: 初单算关逻条赋 () 单目 算术 关系 逻辑 条件 赋值

最新回复(0)