1.2 变量、类型转换、运算符

 

一 变量和数据类型

1.1 变量

变量:常量是固定不变的数据,那么在程序中可以变化的量称为变量。

数学中,可以使用字母代替数字运算,例如 y=x+5 或者 6=x+5。 程序中,可以使用字母保存数字的方式进行运算,提高计算能力,可以解决更多的问题。比如x保存5,x 也可以保存6,这样x保存的数据是可以改变的,也就是我们所讲解的变量。

Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。

结论:变量就是内存中的存储空间,空间中的存储着经常发生变化的量。

1.2 数据类型

分类:

Java 的数据类型分为两类:

基本数据类型: 整数、浮点数、字符、布尔值

引用数据类型: 类、数组、接口

基本数据类型:四类八种

数据类型 关键字 内存占用 取值范围 字节型 byte 1个字节 -128 至 127 -128 短整型 short 2个字节 -32768 至 32767 整型 int(默认) 4个字节 -2^31^ 至 2^31^-1 长整型 long 8个字节 -2^63^ 至 2^63^-1 19位数字 单精度浮点数 float 4个字节 1.4013E-45 至 3.4028E+38 双精度浮点数 double(默认) 8个字节 4.9E-324 至 1.7977E+308 字符型 char 2个字节 0 至 2^16^-1 布尔类型 boolean 1个字节 true,false

(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。)

Java中默认类型:整数类型是int,浮点数类型是double。

1.3 变量的含义

变量三个要素:数据类型、变量名、数据值

格式:

// 插入代码块
数据类型  变量名 = 数据值;
比如:
   int age = 18
   System.out.println(age);

// 先声明 后赋值(使用前赋值即可)
数据类型 变量名;
变量名 = 数据值;
double  momey;
momey = 55.5;
System.out.println(momey);

或者
还可以在同一行定义多个同一种数据类型的变量,中间使用逗号隔开。
但不建议使用这种方式,降低程序的可读性。
int a = 10, b = 20; // 定义int类型的变量a和b,中间使用逗号隔开
System.out.println(a);
System.out.println(b);
int c,d; // 声明int类型的变量c和d,中间使用逗号隔开
c = 30;
d = 40;
System.out.println(c);
System.out.println(d);
练习:
public class Variable {
public static void main(String[] args) {
// 字节型 byte
byte byteDemo = 127;
System.out.println(byteDemo);

// 短整形 short
short shortDemo = 1111;
System.out.println(shortDemo);

// 整形 int
int intDemo = 123456;
System.out.println(intDemo);

// 长整形 long
long longDemo = 12345678L;
System.out.println(longDemo);

// 单精度浮点数 float
float floatDemo = 1.11F;
System.out.println(floatDemo);

// 双精度浮点数 double
double doubleDemo = 1.111;
System.out.println(doubleDemo);

// 布尔值 boolean true false
boolean booleanDemo;
booleanDemo = true;
System.out.println(booleanDemo);

// 字符型 char
char charDemo = 'a';
System.out.println(charDemo);

}

}

1.4 注意事项

变量名称:在同一个大括号范围内,变量的名字不可以相同。 变量赋值:定义的变量,不赋值不能使用。 定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。因为整数默认是int类型,整 数太大可能超出int范围。 定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。因为浮点数的默认类型是 double, double的取值范围是大于float的,类型不兼容。

1.5 标识符

标识符:是指在程序中,我们自己定义内容。比如类的名字、方法的名字和变量的名字等等,都是标识符。

命名规则: 硬性要求 标识符可以包含英文字母26个(区分大小写) 、0-9数字 、$(美元符号) 和_(下划线) 。 标识符不能以数字开头。 标识符不能是关键字。 命名规范: 软性建议 类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。 Demo02MethodDefine Demo03MethodInvoke 方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式)。 变量名规范:首字母小写,后面每个单词首字母大写(小驼峰式)。 num value maxValue

第二章 数据类型转换

Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。

2.1 自动转换

例如:一个int类型加一个byte类型。结果为int类型,这就是数据类型的自动转换

自动转换:将取值范围小的类型自动提升为取值范围大的类型

public class Demo01 {
   public static void main(String[] args) {
       // 定义常量
       byte a = 10;
       int b = 100;

//       byte c = a + b; // 报错,自动类型转换为int 。

       int c = a + b;
       System.out.println(c);


  }
}

同样道理,当一个int 类型变量和一个double 变量运算时, int 类型将会自动提升为double 类型进行运算。

public class Demo01 {
   public static void main(String[] args) {
       // 定义常量
       int b = 100;
       double d = 1.11;

       double e = b + d;
       System.out.println(e);
  }
}

转换规则:

byte、short、char-->int-->long-->float-->double

2.2 强制类型转换

强制类型转换:将取值范围大的类型强制转换成取值范围小的类型。 比较而言,自动转换是Java自动执行的,而强制转换需要我们自己手动执行。

转换格式:
数据类型 变量名 = (数据类型)被转数据值;

例如:

public class Demo02 {
   public static void main(String[] args) {

       // double 类型转 int类型,直接去掉小数点
       int i = (int) 5.5;
       System.out.println(i);

       // short 类型,内存中两个字符
       short s = 1;

//       s = s + 1; // 编译失败

       s = (short) (s + 1);    // 编译成功, 因为 1 默认int类型
       System.out.println(s);

  }
}

2.3 ASCII 编码表

public class Demo03 {
   public static void main(String[] args) {
       // 字符类型常量
       char c = 'a';
       int i = 1;

       // 字符类型和int类型计算
       System.out.println(c + i);  // 结果98
  }
}

第三章 运算符

3.1 赋值运算符

运算符和表达式 运算符:对常量或者变量进行操作的符号 表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。 不同运算符连接的表达式体现的是不同类型的表达式。 举例说明: +:是运算符,并且是算术运算符。字符串连接运算 a + b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式。

- * / 减 乘 除

% 取模运算,两个数字相除取余数

:Java中,整数使用以上运算符,无论怎么计算,也不会得到小数。

public class Demo04 {
   public static void main(String[] args) {
       int i = 3212;
       System.out.println(i/1000*1000);    // 3000
  }
}
  • 符号在字符串中的操作:

  • 符号在遇到字符串的时候,表示连接、拼接的含义。 "a"+"b"的结果是“ab”,连接含义

public class Demo04 {
   public static void main(String[] args) {
       System.out.println("5 + 5 = " + 5 + 5); // 5 + 5 = 55
  }
}

3.2 赋值运算符

符号 作用 说明 = 赋值 a=10,将10赋值给变量a += 加后赋值 a+=b,将a+b的值给a -= 减后赋值 a-=b,将a-b的值给a = 乘后赋值 a=b,将a×b的值给a /= 除后赋值 a/=b,将a÷b的商给a %= 取余后赋值 a%=b,将a÷b的余数给a

赋值运算符,就是将符号右边的值,赋给左边的变量。

public class Demo05 {
   public static void main(String[] args) {
       int i = 5;
       i += 5;
       System.out.println(i);  // 10
       
       short s = 1;
       s += 1; // 没有报错,s = (short) (s + 1)
       System.out.println(s);  // 2
  }
}

3.3 自增自减

符号 作用 说明 ++ 自增 变量的值加1 -- 自减 变量的值减1

独立运算: 变量在独立运算时, 前++ 和后++ 没有区别 。 变量前++ :例如 ++i 。 变量后++ :例如 i++ 。 混合运算: 和其他变量放在一起, 前++ 和后++ 就产生了不同。 变量前++ :变量a自己加1,将加1后的结果赋值给b,也就是说a先计算。

a和b的结果都是2。

int c = a++;    // 不是 3 是 2
System.out.println(a);  // 2
System.out.println(b);  // 2
System.out.println(c);  // 2
        int x = 4;
       int y = (x++)+(++x)+(x*10);     // 4 + 6 + 60 = 70
       System.out.println("x="+x); // 6
       System.out.println("y="+y); // 70
       System.out.println("y="+ ++y);  // 71



posted @ 2020-06-24 09:32  オタメガネ🍀  阅读(65)  评论(0)    收藏  举报