Java基础-- 变量、数据类型、表达式、运算符

第二章: 变量、数据类型、表达式、运算符

一、变量

1. 概念:
计算中内存中的一块存储空间,是程序中存储数据的基本单元。

2. 变量的组成部分:
数据类型、变量名、数据【理解】数据类型:决定变量在内存中的空间大小变量名:用于访问变量对应的空间数据

3. 变量的定义:
(1) 声明:数据类型 变量名;例如: int a;
(2) 赋值:变量名 = 数据;a = 5;

4. 变量的其他定义方式:
(1) 声明的同时并赋值:数据类型 变量名 = 数据;
(2) 同时定义多个同类型的变量:数据类型 变量名1,变量名2,变量3=值,变量名4;

二、数据类型

1. 基本数据类型/简单数据类型/原始数据类型(8种)
(1) 整数类型
byte 1B -128~127
short 2B -32768~32767
int 4B -2147483648~2147483647
long 8B -922京 ~ 922京-1
注意:
字面值:程序中可以赋值的数据。long字面值后面需要加l或是L,建议加L,用于区分数字1和字母l。Java是强类型的语言。

(2) 小数类型
float 单精度 4B字节:Byte 简称B —》位(bit简称b) 1B = 8b (二进制0/1) 1KB = 1024B 1MB = 1024KB 1GB = 1024MB 1TB = 1024GB 1PB… EB 10.24—>程序员节日
double 双精度 8B
a. 注意:float字面值后面必须加 f或是F。double字面值后面可以加 d或是D,也可以省略。
b. float 和 double 可以采用科学技术进行存储,近似值存储方式

(3) 字符类型
a. char 2B unicode编码(万国码)
字面值形式:
a. 单引号引起来的一个字符:【开发重点】char c1 = ‘A’;char c2 = ‘中’;
b. 以整数形式进行存储:0~65535 【面试】char c = 65; // 'A
'c. 以十六进制的 unicode形式存储:【了解】char c3 = ‘\u0041’; // A
转义字符:\单引号: '换行: \n缩进: \t (tab)反斜杠: \双引号: "
注意:更改了原有字符的含义。以上字符 都是英文字符。

(4) 布尔类型boolean 字面值 true/false
注意:Java的布尔类型的变量只有true和false两个字面值;区别于 c 语言的boolean类型。
2. 引用数据类型/对象数据类型对象数据类型/引用数据 类型:
数组、类、接口等类型的数据。String : 字符串是引用数据。
(1) 含义:用“ ”(双引号)引起来的一个或是多个字符。
(2) 字面值:String str=“abcd”;String str2=“中国”;

三、数据类型提升

  1. 自动类型提升
    (1) 变量之间相互兼容
    (2) 小数据类型的变量 赋值给 大数据类型的变量 —>直接赋值(存储的数据范围大的称之为大数据类型)(3) 提升规则:a. byte —> short --> int —>long —> float —> doubleb. char --> int —>long—>float—>double

  2. 强制转换
    (1) 变量之间相互兼容
    (2) 大数据类型的变量 赋值 小数据类型的变量 通过强制类型转换
    (3) 语法:目标类型 变量名 = (目标类型)源数据类型的变量 ;
    同下:小数据类型 变量名 = (小数据类型)大数据类型的变量
    (4) 结果:
    a. 小数强制转换为整数,直接将小数截断,取整数部分double d = 12.8;int i = (int)d; // 12
    b. 大数据类型的变量中存储的数据在小数据类型的存储范围内,则数据完整保存
    c. boolean 不能参与数据类型转换,强制类型转换也不可以。

四、表达式

  1. 概念:由变量、字面值、运算符等组成的一个式子,通常会有一个结果产生。
  2. 表达式的结果处理
    (1) 如果表达式的结果仅一次应用,则直接将表达式写在应用的位置即可
    (2) 如果表达式的结果被多次应用,通常会将表达式的结果存储在一个变量中,存储结果的变量数据类型规则如下:
    a. 如果表达式中有一个为double,则结果类型为double;
    b. 如果表达式中没有double类型,有一个为 float,则结果类型 为float;
    c. 如果表达式中没有double/float类型,有一个为long类型,则结果为long类型;
    d. 如果表达式中没有double/float/long,其余结果类型都是int。
    包含: byte和byte byte和short short和shortbyte和int short和int int 和int

五、运算符

  1. 算数运算符
    +(加法) 、 -(减法) * (乘法) /(除法) %(取余/取模)
    注意:Java中的boolean类型不能参与运算。
    扩充:如果 + 两端有一端为String类型,则+不再是进行加法运算,而是字符串的拼接,结果类型为字符串类型。

  2. 赋值运算符
    = (直接赋值) 、 += (求和之后赋值)、-=(减法之后赋值)*=(乘法之后赋值)、/= (除法之后赋值)、%=(取模之后的赋值)
    注意:复合赋值运算(+= -= *= /= %=)进行运算时,基于应用层没有自动类型提升。

  3. 一元运算符/一目运算符
    ++(自增) --(自减)
    使用:a++:先使用a原始的数据作为表达式的结果,再将a变量自身加1(先使用,再赋值)++a:先将a的自身加1操作,然后将a中的数据作为表达式的结果

  4. 关系运算符
    == : 等于< : 小于<= : 小于等于> : 大于>= : 大于等于!=不等于
    注意:被关系运算符连接的表达式结果类型为boolean,关系成立-true;关系不成立-false;结果类型为布尔类型的表达式,被称为布尔表达式。

  5. 逻辑运算符
    int a = 2;int c = ++a; // a = a+1; int c=a;
    && : 逻辑与,如果两端的布尔表达式的结果都为true,最终结果为true;但是如果有一端结果为false,则最终结果就为false。

[短路]|| : 逻辑或,如果两端布尔表达式的结果有一个为true,最终结果就为true;如果两端同时为false,结果就为false。

[短路]&:与,如果两端布尔表达式的结果都为true,最终结果是true;但是如果有一端为false,则结果为false。

[非短路]| : 或,如果两端布尔表达式的结果有一个为true,最终结果就为true;如果两端同时为false,结果就为false

[非短路]注意:逻辑运算符两端连接的都是个布尔表达式。
概念理解:&& 短路的理解:如果左端表达式的结果为false,则不再进行右端表达式的计算,
原因:通过左端表达式的false结果可以确定整个表达式的结果为false,所以右端表达式的结果不再具有作用。
& 非短路的理解:不管表达式的左端结果是true/false,右端的表达式的一定会被执行。

  1. 三元运算符\三目运算符语法:
    布尔表达式 ? 表达式1:表达式2执行原理:执行布尔表达式,布尔表达式的结果true,执行表达式1;否则-布尔表达式的结果为false,执行表达式2.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值