Java基础语法,java语法
分享于 点击 33693 次 点评:145
Java基础语法,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逻辑运算符
(逻辑非!)(逻辑与&)(逻辑或|)(短路与&&)(短路或||)(异或^)
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)
相关文章
- 暂无相关文章
用户点评