Java基础语法

Java基础语法


  • Java基础语法
    • Java核心机制
    • Java语法注意
      • Java数据类型划分
      • Java逻辑运算符
      • Java三目条件运算符
      • Java分支循环
        • 条件语句
        • 循环语句
    • Java面向对象
      • 构造方法
      • 方法的重载和重写
      • final关键字
      • static关键字
      • this关键字
      • super关键字
    • Java访问控制
    • Object类
      • toString方法
      • equals方法
    • 对象转型casting
    • 多态动态绑定
    • 抽象类abstract和接口Interface
    • JDK中主要包介绍

以下只记录容易混淆的概念和容易忘记的语法

Java核心机制

  • Java虚拟机:以字节码为机器指令;不同平台有不同虚拟机;实现跨平台运行,”一次编译,随处运行”。
  • 垃圾收集机制:一种系统级线程跟踪存储空间分配情况,在JVM空闲时,进行回收,自动进行,无法精确控制和干预。

Java语法注意

1、一个源文件.java最多只能有一个public类,且源文件名称和类名相同
2、public static void main(String[] args) {}为应用程序执行入口
3、Java语言严格区分大小写,每条语句以”;”结尾
4、注释

//单行注释

/*
多行注释
*/

/**
  *可以被doc工具解析的多行注释
  **/

5、标识符命名规则

  • 标识符由字母、”_”、”$”或数字组成
  • 标识符应以字母、”_”、”$”开头
  • 标识符大小写敏感,长度无限制
  • 标识符选取因注意”见名知意”且不能与Java关键字相同

6、约定俗成的命名规则

  • 类名的首字母大写
  • 变量名和方法名的首字母小写
  • 运用驼峰标识

Java数据类型划分

Java基础语法_第1张图片

Java逻辑运算符

(逻辑非!)(逻辑与&)(逻辑或|)(短路与&&)(短路或||)(异或^)

a b !a a&b a|b a&&b a||b a^b
true true false true true true true false
true false false false true false false true
false true true false true false false true
false false true false false false false false

Java三目条件运算符

x?y:z
x为boolean类型表达式,x=true,则整个表达式为y;x=false,则整个表达式为z

int x = 5;
int flag = x > 0 ? 1 : (x == 0 ? 0 : -1);
int score = 80;
String level = score < 60 ? "不及格" : "及格";

Java分支循环

break;用于终止某个语句块执行,用在循环体中,可以强制退出循环
continue;用于跳过循环体中continue之后语句直接进入下一次循环

条件语句

  • if
  • if…else
  • if…else if
  • if…else if…else if…else
  • switch
    小心case穿透,使用break;
    多个case可以合并到一起,default不推荐省略

循环语句

  • for
    for(表达式1;表达式2;表达式3){语句;…;}
    首先计算表达式1,接着执行表达式2=true,则执行语句,接着计算表达式3,再判断表达式2直到表达式2为false
  • while
  • do…while

Java面向对象

构造方法

  • 构造方法是是用来初始化对象的方法
  • 构造方法与类同名没有返回值
  • 没有指定构造函数时,编译器为类自动添加类名(){}的构造函数

方法的重载和重写

  • overload方法的重载指一个类中定义有相同方法名,但参数不同(参数个数或者类型)
  • 构造方法也可以重载
  • override子类可以根据需要对从基类中继承的方法进行重写,重写的方法和基类一样,建议拷贝,重写的方法不能使用比被重写方法更严格的访问权限

final关键字

  • final的变量值不能够被改变-成员变量,局部变量(形参)
  • final的方法不能够被重写
  • final的类不能够被继承

static关键字

  • 类中使用static声明静态成员变量,在第一次使用时初始化,该类所有对象公用一份
  • 类中static声明的静态方法,不可访问非static成员
  • 推荐通过类名(不需要实例化)用访问静态成员,对象引用也可以

this关键字

  • this可以看做一个变量,它的值是当前对象的引用
  • 在类的方法中使用this=使用该方法对象的引用
  • 可以使用this处理方法中成员变量和参数重名的情况,比如构造方法

super关键字

  • 类中使用super引用基类
  • 子类的构造必须调用基类的构造方法,弱未显示调用,则默认调用无参构造方法
  • 子类可以使用super(args_list)调用基类的构造方法,如果调用super,必须写在第一行
  • 使用this(args_list)时调用本类另外的构造方法

Java访问控制

修饰符 类内部 同一个包 子类 任何地方
private yes
default yes yes
protected yes yes yes
public yes yes yes yes

Object类

Object类是所有Java类的根基类,未使用extends,则默认为继承Object类

toString()方法

  • 在进行String与其它类型数据连接操作时System.out.println(“info”+person),将自动调用该person对象的toString()方法
  • 可根据需要重写toString()方法

equals()方法

  • 定义对象是否相等的逻辑
  • Object的equals方法比较的是两个对象的引用
  • String,Date等JDK已经重写了equals()方法,所以两个对象内容相等返回true
    重写方法示例
public boolean equals(Object obj) {
    if(obj == null) return false;
    else {
        if(obj instanceof Cat) {
            Cat c = (Cat)obj;
            if(c.color == this.color && c.height == this.height 
            && c.weight ==this.weight) {
                    return true;
            }
        }
    }
    return false;
}

对象转型(casting)

  • 一个基类的引用类型变量可以指向其子类对象
  • 一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)
  • 可以使用引用变量instanceof类名来判断该引用变量锁指向的对象是否属于该类或其子类
  • 向上转型(upcasting): 子类 –>基类
  • 向x下转型(downcasting):基类 –>子类

多态(动态绑定)

  • 动态绑定是指在执行期间(而非编译期)判断所引用的实际类型,根据实际类型调用其相应方法
  • 继承、重写、基类引用指向子类对象

抽象类abstract和接口Interface

  • abstract修饰类为抽象类,abstract修饰方法为抽象方法
  • 含有抽象方法的类必须声明为抽象类,抽象类必须被继承,抽象方法必须被重写
  • 抽象类不能被实例化,抽象方法只需声明,不需实现
  • 接口是一种特殊抽象类,没有变量和方法的实现
  • 接口Interface是(只能是public)抽象方法和(只能是public static final)常量值定义的集合
  • 多个无关的类可以实现同一个接口,一个类也可以实现多个无关的接口,接口与实现类之间存在多态性
  • 接口可以自己成其它接口,并添加新的属性和抽象方法

JDK中主要包介绍

  • java.lang:包含一些Java核心类,如String、Math、Integer、System和Thread,不需导入即可使用
  • java.util:包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数、集合类等
  • java.io:提供多种输入/输出功能的类
  • java.net:执行与网络相关的类
  • java.applet:applet运行所需要的类
  • java.awt:构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形化界面(GUI)

你可能感兴趣的:(Java基础,Java,基础,概念)