欢迎光临
我们一直在努力

JAVA零基础笔记2:变量,数据类型,表达式

1.5 变量

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

   【理解】

2. 组成:数据类型、变量名、数据。

3. 变量的定义:

   · (1) 声明变量:数据类型变量名;

     赋值:变量名 = 值;

   · (2) 声明的同时赋值:数据类型变量名 = 值;

   · (3) 同时定义多个同类型的变量:

     数据类型变量名1, 变量名2 = 值, 变量名3;

二、数据类型(重点)

1. 基本数据类型(简单数据类型、原始数据类型)—8种基本数据类型

   · (1) 整数类型

     关键字:

     byte 1B -128~127

     short 2B -32768~32767

     int 4B -2147483648~2147483647

     long 8B -9223372036854775808~9223372036854775807

     注意:

     long类型的字面值后面需要加L或是l,通常用L(区分数据1和字母l)

     字面值:程序中可以给某个对应类型变量赋的数据

     扩充:

     · 字节 -> Byte简写为B -> 一个字节等于8位(bit简写b)

     · 1B = 8b

     · 1024B = 1KB

     · 1024KB = 1MB

     · 1024MB = 1GB

     · 1024GB = 1TB

   · (2) 小数类型(浮点类型)

     a. 单精度浮点:float 4B

     b. 双精度浮点:double 8B

     注意:

     · float字面值后面必须加F或是f;

     · double字面值后面可以添加d或是d,也可以不加d。

     · float和double都可以采用科学计数法形式存储,近似值。

例如:2.14748365E9 等价于 2.14748365 * 10^9

面试题目:int类型变量和float类型的哪个存储的数据范围大一些?

解析:float类型,虽然int和float都是4B,但是float可以采用科学计数法形式存储。

(3) 字符类型

关键字:char 2B

字符类型:

· 单个字符:

  · char c = 'A'; // char c2 = '中';

· 多个字符:

  · char c = "ABC"; // 错误写法

注意:

· 此处的符号都是英文符号。

(4) 布尔类型

关键字:boolean 字面值仅有true和false -> 1B(一般不关注)

注意:

· Java中的boolean区分于C中的boolean,C语言中的0-false;1-true;但是Java中的boolean只能接受true或是false,和0/1没有任何关系。

· Java是强类型的语言:对应类型的数据只能存储对应类型的变量中。

2. 引用数据类型(对象数据类型)

类、接口、字符串、数组等类型的数据都是引用数据类型。

目前常用的引用数据类型:String

字符串(String):用双引号引起来的一个或多个字符。String s = "hello";

三、数据的自动类型提升

1. 两个变量之间相互赋值。自动类型提升规则如下:

   (1) byte -> short -> int -> long -> float -> double

   小数类型的变量可以直接赋值为大数类型的变量。自动提升为大数类型

   (2) char -> int -> long -> float -> double

2. 强制类型转换:

   (1) 大数据类型的变量赋值给小数类型,需要用强制类型转换

   (2) 强制类型转换语法:

   目标类型变量名 = (目标类型) 源数据类型的变量名;

   例如:double d = 12.5;

   int i = (int)d;

   (3) 强制转换的结果:

   a. 小数类型变量强制转换为整数类型:截断 -> 取整数部分

   例如:double d = 12.9;

   int i = (int)d; // 结果 12

   b. 整数类型的变量中的数据不丢失,数据强转结果完整

   例如:int i = 15;

   byte b = (byte)i; // 结果打印 15

   c. 整数类型的变量中的数据丢失,数据强转结果截断

   例如:int i = 257;

   byte b = (byte)i; // 结果 1

   注意:boolean 类型的变量不能参与数据类型的提升。

四、表达式

1. 概念:由变量、运算符、字面值等组成一个式子,通常会有一个结果产生。

2. 两变量参与运算,表达式的结果类型规则如下:

   (1) 如果参与运算的变量有一个为 double 类型,结果就是 double 类型;

   (2) 如果参与运算的变量没有 double 类型,有一个为 float 类型,结果类型为 float;

   (3) 如果参与运算的变量没有 double/float,有一个为 long 类型,结果类型为 long;

   (4) 其余的情况全部是 int 类型的结果。

   例如:byte b = 1;

   byte b2 = b + 1; // 编译错误,违反了两个变量参与运算的规则,结果应为 int 类型

五、运算符

1. 算术运算符:+(加) -(减) *(乘) /(除) %(取模、取余数)

   注意:如果 + 两端有一个类型为 String(字符串类型),则代表字符串的拼接或是连接。

2. 赋值运算符:= += -= *= /= %=

   注意:复合赋值运算符没有自动类型提升。

   面试题:分别写出以下代码编译是否通过,不通过,解释原因,通过,打印结果。

   (1) byte b = 1;

   b = b+1; // 编译不通过,结果类型应为 int 类型

   (2) byte b = 1;

   b += 1; // 编译通过,结果为 2

3. 一元运算符:++(自增)–(自减)

   (1) a++:先使用 a 原始数据作为表达式的结果,再将 a 自身加 1;–:先使用,再加 1

   int a = 1;

   int c = a++; // int c = a; a = a+1;

   结果:c = 1; a = 2;

(2) ++a:先将 a 的数据加 1 运算,再使用 a 中的数据作为表达式的结果。– 先加,再使用

注意:开发时关注于让变量自身加 1 运算/减 1 运算,使用 a++/++a/a–/–a,通常不关注,

后者区别面试题目中的内容。

4. 关系运算符

   大于: >

   大于等于: >=

   小于: <

   小于等于: <=

   不等于: !=

   如果关系运算符连接两个变量,用于判断关系是否成立,关系成立=true,关系不成立=false,

   结果类型为boolean类型的表达式称为布尔表达式。

5. 逻辑运算符

   (1) &&:逻辑与,只有当两边都为true的情况下,结果才为true。有一个为false,结果就是false;(短路)

   (2) ||:逻辑或,只有两边有一个为true,结果就是为true,同时为false,结果才为false.(短路)

   (3) !:逻辑非,对结果取反。

   (4) &:与,只有两边都为true的情况下,结果才为true。(非短路)

   (5) |:或,只有两边有一个为true,结果就是为true,同时为false,结果才为false。(非短路)

面试题目:写出 && 和 & 的区别。

解析:

相同点:与的关系,两边布尔表达式同时为 true,结果才为 true。

不同点:&&短路运算符,一旦第一个布尔表达式的结果为 false,后面的布尔表达式不再运算;

&:非短路运算符,不管前面的布尔表达式是否为 false,后面的布尔表达式必须执行。

6. 条件运算符(三元运算符、三目运算符)

   (1) 布尔表达式?表达式1:表达式2

   (2) 执行的原理:如果布尔表达式结果为 true,执行表达式1,如果为 false,执行表达式2。

六、Scanner(扫描仪)

1. 使用的步骤:创建扫描仪

   java.util.Scanner sc = new java.util.Scanner(System.in);

2. 使用:

   (1) 输入一个整数:int a = sc.nextInt();

   (2) 输入一个小数:double d = sc.nextDouble();

   (3) 输入一个字符串:String s = sc.nextLine();

   (4) 输入一个字符:char c = sc.next().charAt(0);

赞(0)
未经允许不得转载:171主机测评 » JAVA零基础笔记2:变量,数据类型,表达式
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址