一. 数据类型

1.数据类型分为基本类型和引用数据类型。

基本类型有八大,分别是六个数值型:整形(byte,short,int,long)、浮点型(float,double)、一个字符型(char)、一个布尔型(boolean)。

        引用数据类型:String .

 

java的一般格式 java的基本格式_java的一般格式

图中为数据类型

2.基本类型

    (1)字节类型变量 byte

byte数据类型是8位、有符号的,以二进制补码表示的整数;

最小值是-128(-2^7);最大值是127(2^7-1);默认值为0 。

基本语法格式:

      byte 变量名 = 初始值;

代码示例:

byte value = 0;

System.out.println(value); 

     (2)短整型变量 short

         

     short数据类型是16位、有符号的以二进制补码表示的整数

    最小值是-32768(-2^15);最大值是32767(2^15 - 1);默认值是0。

     基本语法格式:

       short 变量名 = 初始值;

      代码示例:

      short value = 0;

      System.out.println(value);

    (3)整型变量   int

         

int数据类型是32位、有符号的以二进制补码表示的整数

最小值是-2,147,483,648(-;2^31);最大值是2,147,483,647(2^31 - 1);默认值是0。

基本语法格式:

int 变量名 = 初始值;

代码示例:

int num = 10;   // 定义一个整型变量

System.out.println(num) ;

注意:

1. int 表示变量的类型是一个整型

2. 变量名是变量的标识. 后续都是通过这个名字来使用变量

3. Java 中 = 表示赋值(和数学不一样), 意思是给变量设置一个初始值.

4. 初始化操作是可选的, 但是建议创建变量的时候都显式初始化.

5. 最后不要忘记分号, 否则会编译失败.

6. // 表示注释. 注释作为代码的解释说明部分, 不参与编译运行.

(4)长整型变量   long

        

long 数据类型是 64 位、有符号的以二进制补码表示的整数

最小值是 -9,223,372,036,854,775,808(-2^63);最大值是 9,223,372,036,854,775,807(2^63 -1);

默认值为0L;

注:这种类型主要使用在需要比较大整数的系统上;

       基本语法格式:

     long 变量名 = 初始值;

代码示例:

long num = 10L; // 定义一个长整型变量, 初始值写作 10l 也可以(小写的 L, 不是数字1).

System.out.println(num) ;

(5) 单精度浮点型变量  float 

          

float 数据类型是单精度、32位、符合IEEE 754标准的浮点数

float 在储存大型浮点数组的时候可节省内存空间;

默认值是 0.0f;

浮点数不能用来表示精确的值。

 基本语法格式:

float 变量名 = 初始值;

代码示例:

float num = 1.0f;    // 写作 1.0F 也可以

System.out.println(num); 

(6)双精度浮点型变量  double

     

double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数

浮点数的默认类型为double类型;

double类型同样不能表示精确的值。

基本语法格式:

double 变量名 = 初始值;

 代码示例:

double num = 1.0;

System.out.println(num)

代码1 : 

 int a = 1;

int b = 2;

System.out.println(a / b);

//运算结果:0

在 Java 中, int 除以 int 的值仍然是 int(会直接舍弃小数部分),如果想要得到小数结果,则需要用double类型计算。 

代码2:

double a = 1.0;

double b =2.0;

System.out.println(a / b);

//运算结果: 0.5

 (7)  布尔类型变量  boolean

       boolean数据类型表示一位的信息; 

       只有两个取值:true 和 false;

       这种类型只作为一种标志来记录 true/false 情况;

       默认值是 false;

基本语法格式:

boolean 变量名 = 初始值;

代码示例:

boolean value = true;

System.out.println(value); 

注意: 

1. boolean 类型的变量只有两种取值, true 表示真, false 表示假.

2. Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法.

(8)字符类型变量  char

char类型是一个单一的 16 位 Unicode 字符

最小值是 \u0000(即为0);最大值是 \uffff(即为65,535);

char 数据类型可以储存任何字符。

基本语法格式:

char 变量名 = 初始值;

代码示例:

char ch = '呵';

System.out.println(ch); 

 (9)字符串类型变量  String

基本语法格式:

String 变量名 = "初始值";

代码示例:

String name = "wulei";

System.out.println(name); 

注意:1. Java 使用 双引号 + 若干字符 的方式表示字符串字面值. 

           2. 字符串中的一些特定的不太方便直接表示的字符需要进行转义。

  转义字符

解释

    \n

    换行

    \t

    水平制表符

    \'

    单引号

    \''

    双引号

    \\

    反斜杠

代码:

String str = "result = ";
int a = 10;
int b = 20;
String result = str + a + b;
System.out.println(result);
// 运行结果 :  result = 1020;

二. 类型转换

Java 作为一个强类型编程语言, 当不同类型之间的变量相互赋值的时候, 会有教严格的校验。

下面我们可以看一下代码:

int a = 10;
long b = 20;
a = b; // 编译出错, 提示可能会损失精度.
b = a; // 编译通过.
int a = 10;
double b = 1.0;
a = b; // 编译出错, 提示可能会损失精度.
b = a; // 编译通过

long 表示的范围更大, 可以将 int 赋值给 long, 但是不能将 long 赋值给 int. double 表示的范围更大, 可以将 int 赋值给 double, 但是不能将 double 赋值给 int.。

不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型, 反之则不行。

int和boolean是毫不相干的两种类型,不能相互赋值。例:

int a = 10;
boolean b = true;
b = a; // 编译出错, 提示不兼容的类型
a = b; // 编译出错, 提示不兼容的类型

强制类型转换

int a = 0;
double b = 10.5;
a = (int)b;
int a = 10;
boolean b = false;
b = (boolean)a; // 编译出错, 提示不兼容的类型.

使用 (类型) 的方式可以将 double 类型强制转成 int. 但是

1. 强制类型转换可能会导致精度丢失. 如刚才的例子中, 赋值之后, 10.5 就变成 10 了, 小数点后面的部分被忽略。

2. 强制类型转换不是一定能成功, 互不相干的类型之间无法强转。

三.运算符

   Java的运算符分为:

算术运算符 、关系运算符、位运算符、逻辑运算符、赋值运算符、其他运算符。

    1.算术运算符

        基本四则运算符 + - * / % , 值得注意的是除法 .

     (1) ) int / int 结果还是 int, 需要使用 double 来计算.。

int a = 1;
            int b = 2;
            System.out.println(a / b); // 结果为 0

    (2) 0不能作为除数。

  (3)% 表示取余, 不仅仅可以对 int 求模, 也能对 double 来求模 。

System.out.println(15.5 % 2.0);
// 运行结果 1.5

  (4)增量赋值运算符 += -= *= /= %=

int a = 10;
a += 1; // 等价于 a = a + 1
System.out.println(a);

  (5) 自增/自减运算符 ++ --

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

     2.关系运算符

           关系运算符主要有六个: == != < > =

int a = 10;
int b = 20;
System.out.println(a == b);
System.out.println(a != b);
System.out.println(a < b);
System.out.println(a > b);
System.out.println(a = b);

注意: 关系运算符的表达式返回值都是 boolean类型。

3.逻辑运算符

逻辑运算符主要有三个: && || !

注意: 逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是 boolean 。

·(1) 逻辑与 &&

规则: 两个操作数都为 true, 结果为 true, 否则结果为 false

int a = 10;
int b = 20;
int c = 30;
System.out.println(a < b && b < c);

(2)逻辑或 || 

规则: 两个操作数都为 false, 结果为 false, 否则结果为 true

int a = 10;
int b = 20;
'int c = 30;
System.out.println(a < b || b < c);

逻辑非 !

规则: 操作数为 true, 结果为 false; 操作数为 false, 结果为 true(这是个单目运算符, 只有一个操作数) 

int a = 10;
int b = 20;
System.out.println(!a < b);

    4.位运算符

Java 中对数据的操作的最小单位不是字节, 而是二进制位.

位运算符主要有四个: & | ~ ^

 

     5.移位运算

          移位运算符有三个: <<   >>   >>>           都是按照二进制位来运算.

      6.条件运算符

         条件运算符只有一个:    表达式1 ? 表达式2 : 表达式3

当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值; 当 表达式1 的值为 false 时, 整个表达式的值为 表达式 3 的值.       也是 Java 中唯一的一个 三目运算符, 是条件判断语句的简化写法

// 求两个整数的最大值

int a = 10;
int b = 20;
int max = a > b ? a : b;

 7.运算符的优先级

     代码

System.out.println(1 + 2 * 3);
         //运算结果 7

         先计算(2*3),在计算1+(2*3) 

System.out.println(10 < 20 && 20 < 30);

此时明显是先计算的 10 < 20 和 20 < 30, 再计算 &&. 否则 20 && 20 这样的操作是语法上有误的(&& 的操作数只能是 boolean).