前章回顾

学习计算机的发展史
了解了JAVA语言的特性
跟着学习了JAVA的三大版本
自己学习安装了JAVA的开发环境
编写了第一个JAVA程序

2.1 安装了ECLIPSE

个人觉得初学者可以先去尝试功能不是那么强大的eclipse,这样扎实自己的基础,自己可以练习一下如何安装包,手动输入代码,可以更熟悉语法;但是idea在以后的用处比较大,可以为我们程序员节省时间。

2.2 注释

在程序比较简单的时候,我们轻而易举可以看懂自己的代码的含义,但是当我们完成复杂的项目时,因为它的结构是比较复杂的,因此我们加以注释,相当于解释说明,这样有利于以后看懂我们自己的代码。

/*
 *@Description HelloWorld类
 *@Author  袁伟
 **/
public class Helloworld{
    /*
    这是我们Java程序的主入口
    main方法也是程序的主线程
    */
 public static void main(string[] args){
     //输出Helloworld!
     System.out.println("hello world")
 }
}
注释不会被执行,只是起到解释说明的作用

注释三中类型:

单行注释:只能注释当前行,以//开始,直到行结束

//输出hello world

多行注释:注释一段文字,以/开始,/结束

/*
  这是我们Java程序主入口,
  main方法也是程序的主线程
*/

文档注释:用于生产API文档,配合javaDoc

/*
 *@Description HelloWorld类
 *@Author  袁伟
 **/

2.3 标识符

我们人类都有一个自己的名字,同样我们的程序也是需要一个名字的

HelloWorld是类名,也是我们的文件名。前面的public class是关键字,它是Java前辈定义好的,有特殊作用,下面的每一行代码都有自己意思和名字,就是用来做区分。

public class HelloWorld{
    public static void main(string[] args){
        System sout println("hello world")
    }
}


已经定义好的关键字是不能用来做名字的
Java所有的组成部分都需要名字。类名,变量名,以及方法名都被成为标识符

表示类名的标识符要用大写字母开始

如:Man  Hello

表示方法和变量的标识符用小写字母开始,后面的描述性词以大写开始

如:eat(),eatFood()
//驼峰命名法

关于 Java 标识符,有以下几点需要注意:

  • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
  • 不能使用关键字作为变量名或方法名。
  • 标识符是大小写敏感的
  • 合法标识符举例:age、$salary、_value、__1_value
  • 非法标识符举例:123abc、-salary、#abc
public class Man{
    public static void main(string[] args){
        name 关羽 = "羽"
            System.out.println(关羽)
    }
}

2.4 数据类型

Java是一种强类型语言,每个变量都必须声明其类型
强类型语言也称为强类型定义语言,要求变量要严格符合要求,每个变量要求先定以后才能使用
2.4.1 数据类型

数据类型分为:基本类型和引用类型

定义练习

public class Hello{
    public static void main(string[] args){
         //整型
        int a = 100;
        //长整型
        long b = 9998989898989L;
        //短整型
        short c = 235;
        //浮点型
        double d = 3.5; //双精度
        double d1 = 3;
        float e = 3.5f;
         
         //布尔类型
         oolean isPass=true;
    boolean isOk=false;
    boolean isBig=5>8;
    if(isPass){
        System.out.println("通过了");
    }else{
        System.out.println("未通过");
    }

    //单字符
    char f='女';
    char m='男';

}
2.4.4 整型拓展
十进制整数,如:99, -500, 0。 

八进制整数,要求以 0 开头,如:015。 

十六进制数,要求 0x 或 0X 开头,如:0x15
//整型
int i=10;
int i2=010;
int i3=0x10;
System.out.println(i); //10
System.out.println(i2); //8
System.out.println(i3); //16
2.4.4 浮点型拓展

浮点类型float, double的数据不适合在不容许舍入误差的金融计算领域。

public static void main(String[] args) {
    float f = 0.1f;
    double d = 1.0/10;
    System.out.println(f==d);   //false

    float d1 = 2131231231f;
    float d2 = d1+1;
    if(d1==d2){
        System.out.println("d1==d2");
    }else{
        System.out.println("d1!=d2");
    }
}

浮点数精度表示不够,浮点数存在舍入误差,很多数字无法精确表示

2.4.5 字符型拓展

单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示一个字符串。

char 类型用来表示在Unicode编码表中的字符。

public class Num{
    public static void main(string[] args){
        char a = "袁";
        char b = "伟";
        int c = 65;
        System.out.println((int)a);
        System.out.println((int)b);
        System.out.println((char)c);
    }
}
2.4.6、布尔型拓展

boolean类型(一位,不是一个字节),就是0|1

boolean类型有两个值,true和false,不可以 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。

boolean 类型用来判断逻辑条件,一般用于程序流程控制

2.5 类型转换

由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。

整型、实型(常量)、字符型数据可以混合运算。

运算中,不同类型的数据先转化为同一类型,然后进行运算。

转换从低级到高级(根据容量来看)。

byte,short,char—> int —> long—> float —> double (低-----高)
数据类型转换必须满足如下规则:
  • 不能对boolean类型进行类型转换。
  • 不能把对象类型转换成不相关类的对象。
  • 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
  • 转换过程中可能导致溢出或损失精度
2.5.1 自动类型转换

自动类型转换:容量小转换为容量大的数据类型

public class ZiDongLeiZhuan{
    public static void main(String[] args){
        char c1='a';//定义一个char类型
        int i1 = c1;//char自动类型转换为int
        System.out.println("char自动类型转换为int后的值等于"+i1);
        char c2 = 'A';//定义一个char类型
        int i2 = c2+1;//char 类型和 int 类型计算
        System.out.println("char类型和int计算后的值等于"+i2);
    }
}
2.5.2 强制类型转换

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

强制类型转换的语法格式:(type)var

public class Hobby{
    public static void main(string[] args){
        char a = "李";
            System.out.println((int)a);
    }
}

2.6 变量,常量

Java是一种强类型语言,每个变量都必须声明其类型

Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域

type varName [=value][{,varName[=value]}]
//数据类型  变量名 = 值;可以使用逗号隔开来声明多个同类型变量

注意事项:

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  • 变量名必须是合法的标识符。
  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
int a,b,c;   //声明三个整型
int d = 3,e = 4,f = 5 //声明类型并赋予值
byte z = 22  //声明并初始化z
string s = "runoob";  //声明并初始化字符串s
double t 3.1419;  //声明了双精度浮点型变量
char x  = "x"    //声明变量x值是字符"x"

不提倡在一行声明多个变量

2.6.1变量作用域

变量根据作用域可划分为三种:

  • 类变量(静态变量: static variable):独立于方法之外的变量,用 static 修饰。
  • 实例变量(成员变量:member variable):独立于方法之外的变量,不过没有 static 修饰。
  • 局部变量(lacal variable):类的方法中的变量。
2.6.1.1局部变量
public class Hello{
    public static void main(string[] args){
        int a ;  //变量没有被赋予值
        int b = a+1;
        System.out.println(b)
    }
}
public class Hello{
    public static void main(string[] args){
        int a = 10 ;  //给变量赋值10
        int b = a+1;
        System.out.println(b)
   
    }
}

2.6.2 常量

常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。

常量名一般使用大写字符。

final int A = 10

2.6.3 变量的命名规范

  1. 所有变量、方法、类名:见名知意
  2. 类成员变量:首字母小写和驼峰原则 : monthSalary
  3. 局部变量:首字母小写和驼峰原则
  4. 常量:大写字母和下划线:MAX_VALUE
  5. 类名:首字母大写和驼峰原则: Man, GoodMan
  6. 方法名:首字母小写和驼峰原则: run(), runRun()

2.7 运算符

Java 语言支持如下运算符:

  • 算术运算符: +,-,*,/,%,++,–
  • 赋值运算符 =
  • 关系运算符: >,<,>=,<=,==,!= instanceof
  • 逻辑运算符: &&,||,!
  • 位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
  • 条件运算符 ?:
  • 扩展赋值运算符:+=,-=,*=,/=

2.7.1、二元运算符

整数运算

如果两个操作数有一个为Long, 则结果也为long

没有long时,结果为int。即使操作数全为shot,byte,结果也是int.

public static void main(String[] args) {
    long a = 1231321311231231L;
    int b = 1213;
    short c = 10;
    byte d = 8;

    System.out.println((a+b+c+d));  //Long类型
    System.out.println((b + c + d));//Int类型
    System.out.println((c + d));//Int类型
}

浮点运算

如果两个操作数有一个为double, 则结果为double.

只有两个操作数都是float, 则结果才为float.

public static void main(String[] args) {
    float a = 3.14565F;
    double b = 3.194546464;
    float c = 1.3123123F;

    System.out.println(a+b); //double类型
    System.out.println(b+c); //double类型
    System.out.println(a+c); //float类型
}

关系运算符

2.7.2一元运算符

自增(++)自减(–)运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自增自减运算符是一个操作数,分为前缀和后缀两种。

public static void main(String[] args) {
    int a = 3;
    int b = a++;   //执行完后,b=3。先给b赋值,再自增。
    int c = ++a;   //执行完后,c=5。先自增,再给b赋值
}

注意:java中的乘幂处理

ublic static void main(String[] args) {
    int a = 3^2;    //java中不能这么处理, ^是异或符号。
    double b = Math.pow(3, 2);
}

2.7.3、逻辑运算符

逻辑与:&&和&,逻辑或:||和|,逻辑非:!。

public class Yuan{
    public static void main(string[] args){
        int a = 1;
        int b = 2;
        int c = 3;
        int d = 2;
        int e = 3;
        System.out.println((a==b)&&(a==d));
        System.out.println((b==d)&&(c==e));
        System.out.println((a==b)||(c==e));
        System.out.println((a==b)||(a==d));
    } 
}

逻辑与和逻辑或采用短路的方式。从左到右计算,如果确定值则不会再计算下去。在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。

逻辑与只要有一个为false, 则直接返回false.

逻辑或只要有一个为true, 则直接返回true;

2.7.4、位运算符

Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。位运算符作用在所有的位上,并且按位运算。

右移一位相当于除2取商。

左移一位相当于乘2。

问题【如何快速计算2^3】

public static void main(String[] args) {
    System.out.println(2 << 3);
}

2.7.6、扩展运算符

ublic static void main(String[] args) {
    int a=10;
    int b=20;

    a+=b; // a = a + b

    System.out.println(a+":"+b);
}

2.7.7、字符串连接符

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

public class Guitar{
    public static void main(string[] args){
        String a = "你好";
        String b = 
    }
}

2.7.8、三目条件运算符

三目条件运算符,语法格式:

x ? y : z
public class Hello{
    public static void main(string[] args){
        int a = 10;
        int b = 20;
        System.out.println((a==b) ? "zhen": "jia")
    }
}