2.2.1为什么要学习?

数据是各式各样的,开发者要根据数据的类型为其在内存中申请一块合适空间。还有一个原因是:Java是一门强类型语言,任何数据都需要数据类型。

2.2.2数据类型的分类:

(1)基本数据类型:

整型:

  byte(一字节-128~127);

  short(二字节,-3-3);

  int(四字节)

  long(八字节)

小数:

  float(单精度,精确到7-8

  double(双精度,精确到15-16);

char类型:

  char(表示单字符用单引号  ‘’表示)

布尔类型:

  boolean(用一个位01表示truefalse);

  以上统称为java八大基本数据类类型。

(2)引用数据类型:

  String:字符串型,用于存储一串字符;

  数组、类、接口;

区别:JVM编译或者执行堆栈时,基本数据类型是分配在栈上,而引用类型是分配在堆上;

注意点:java中默认的基本数据类型是:整形:int,浮点型:double。如果需要其他类型进行赋值时,在量的后面加上相应首字母(大小写都可以)e.g:long a = 10L;float = b = 1.0f;

2.2.3 变量命名规则

  [1]可以是字母、数字、_$

  [2]数字不能开头

  [3]不能java关键字或者保留字

命名规范

  [1]驼峰命名法:字母小写,后续具有单个意义的单词首字母大写。

  [2]见名知意

2.2.4其他:

其他字符:

  转义字符\b退格 \n换行 \r回车 \t制表符 \双引号 \’单引号 \\反斜杠

 

  “+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接

 

常量:

  在开发过程中,值不能发生变化的量称之为常量Final表示

其他命名规则:

标识符命名规范

  所有变量、常量、方法、类名:见名知意

  变量、方法名:首字母小写和驼峰原则:  run(), runRun(),  age     ageNew   monthSalary

常量:

  大写字母和下划线:MAX_VALUE

类名:

  首字母大写和驼峰原则:  Man, GoodMan

2.2.5运算符:

  算术运算符:+ - * / % ++ --;

  拓展运算符:+= -= *= /= %=;

  关系运算符:>、<、>=、 <=、 ==、 !=,返回的是布尔值;

    逻辑运算符 &&(与)(并、并且)、||(或)(或、或者)、(!)。逻辑运算符两边的表达式一定是布尔值,结果也是布尔值。

    逻辑&&的短路运算:

    当逻辑&&左边的表达式结果为false时,第二个表达式将不进行任何运算。

    逻辑||左边的表达式如果为true,第二个表达式将不进行任何运算

 

  三目运算符:(布尔表达式) ? r1 : r2

 

    布尔表达式为true,这个运算的结果取r1,否则取r2。

2.2.6类型转换:实际开发过程中,存在类型转换类型转换分为两种,自动类型转换和强制类型转换。

自动类型转换:

  [1]容量小的数据类型可以自动转换为容量大的数据类型。

 

  [2] 类型兼容:1.数值型相互兼容。2.int和char相互兼容(char本质形,char是被编码的字符)

jvm自动类型转换的优化:可以将整型常量直接赋值给byte, short, char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围;

  在表达式进行计算时,表达式的结果会自动发生类型转换——>表达式的结果都向高精度偏移。

  e.g:如果一个操作数为double型,则整个表达式可提升为double(表达式中只要存在一个高精度的数值或者类型,表达式都会自动提升为该值的类型。)

强制类型转换:   强制类型转换,又被称为造型,用于显式的转换一个数值的类型.

形式:

int a = 100;
byte b = (byte)a;
System.out.println("b="+b);

强制类型转换存在信息丢失或者精度丢失的情况,一定要避免这两种情况的发生,特别是信息丢失的发生:

// 存在精度丢失的强制类型转换
    float c = 10.2f;
    int d = (int)c;
    System.out.println("d="+d);
        
// 信息丢失的强制类型转换。
    int e = 300;
    byte f = (byte)e;
    System.out.println("f="+f);

 

 

 

 

 

 

  本次复习结束。