基础

基础语法关键字

访问控制

  1. private:私有的
  2. protected:受保护的
  3. public:公共的
  4. default:默认的

类、方法和变量的修饰符

  1. abstract:声明抽象
  2. class:类
  3. extends:扩充、继承
  4. final:最终值,不可改变的
  5. implements:实现接口
  6. interface:解耦
  7. native:本地,原生方法(非Java实现)
  8. new:新创建
  9. static:静态
  10. strictfp:严格,精准
  11. synchronized:线程,同步
  12. transient:短暂
  13. volatile:易失

程序控制语句

break:跳出循环
case:定义一个switch循环
contiune:继续
default:默认
do:运行
else:否则
for:循环
if:
instanceof:实例
return
switch
while:

错误处理

assert:断言表达式是否为真
catch:捕捉异常
finally:有没有异常都执行
throw:抛出一个异常对象
try:捕获异常

包相关

import:引入
package:包

基本类型

boolean、char、byte、double、float、int、long、short;

变量引用

super:父类、超类
this:本类
void:无返回值

保留关键字

goto:是关键字、但是不可使用
const:同上
null:空

Java继承

在Java中,类可以由其他的类派生,若创建一个类,而且已经存在一个类具有所需属性方法,可以将新的类继承创建的类。
super class:称为超类,被继承的类
subclass:派生子类

接口

Java接口时对象间的通信协议。接口仅定义要派生的方法,但是具体的实现完全取决于派生类。

Java源程序与编译运行的区别

编译源程序通过编译链接形成完整的exe执行文件,通过操作系统执行。
而Java源程序 .java通过编译成字节码程序 .class,最后通过解释器解释执行

Java对象和类

Java是一种面向对象语言,支持多态、继承、封装、抽象、类、对象、实例、方法、重载;
对象是类的实例,有状态和行为;
类是模板,描述一类对象的行为与状态;
软件对象也有状态以及行为,软件对象的状态就是属性,行为通过方法体现;
在软件开发中,方法操作对象内部的改变,对象的相互调用也是有过方法来完成。
类包含的变量:

  1. 局部变量:生命周期在方法中
  2. 成员变量:定义在类中,方法体之外的变量,在变量创建对象的时候进行实例化,成员变量可以被类中方法,构造方法和特定类的语句块访问。
  3. 类变量:声明在类中,方法体之外,但是必须声明为static类型;

构造方法

类都有构造方法,若没有显式的构造,编译器会提供默认的构造方法,在创建对象的时候至少要调用一个构造方法,构造方法的名称与类同名,类可以都多个构造方法。

创建对象

步骤:

  1. 声明对象,包括对象名称和对象类型
  2. 实例化:new关键字创建一个对象
  3. 初始化,new创建新的对象是,会调构造方法初始化
  1. public class puppy{
  2. pubice puppy(String name){
  3. System.out.println("小狗名字是" + name);
  4. }
  5. public static void main(String[] args){
  6. puppy mypuppy = new puppy("llllll")
  7. }
  8. }

访问实例变量和方法

通过已经创建的对象来访问成员变量和方法

  1. //实例化duixiang
  2. Object referenceVariable = new Constructor();
  3. //访问类中的变量
  4. referenceVariable.variableName;
  5. //访问类中的方法
  6. referenceVariable.mthododName();
  7. //实例化
  8. public class puppy{
  9. int puppyAge;
  10. public puppy(String name){
  11. //name是构造器唯一的参数
  12. System.out.println("Dog's name is " + name);
  13. }
  14. public void setAge(int age){
  15. puppyage = age;
  16. }
  17. public int getAge(){
  18. System.out.println("Dog's age is " + puppyAge);
  19. }
  20. public static void main(String[] args){
  21. //创建对象
  22. puppy myPuppy = new puppy("www");
  23. //通过方法设定age
  24. myPuppy.setAge(2);
  25. //调用另外一个方法获取age
  26. pyPuppy.getAge();
  27. //另外一种访问方法
  28. System.out.println("变量值:" + myPuppy.puppyAge);
  29. }
  30. }

源文件的声明规则

  • 一个源文件只能有一个public
  • 一个源文件可以有多个非public类
  • 源文件名称和public名称保持一致
  • 包应该位于行首
  • import和package语句对源文件定义所有类都有效
  • 类的级别与类型也不同

Java包与导包

包用于对类和接口分类;
import语句提供合理路径是的编译器可以容易的找到某个类

  1. import java.io.*;

Java基本数据类型

变量用于申请内存存储,内存管理系统根据变量值来分配变量的内存空间,分配空间只能存储该类型数据
Java两大数据类型:内置数据类型、引用数据类型
引用类型相当于指针,指向一个对象,指向对象的变量暂定为一个特殊数据类型

基本类型:byte 二进制位数:8
包装类:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127

基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767

基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647

基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807

基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38

基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308

基本类型:char 二进制位数:16
包装类:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535

Java常量

final来声明,不可修改
Java转义字符

\n 换行
\r 回车
\f 换页
\b 退格
\0 空字符
\s 空格
\t 制表符
“ 双引号
\ 反斜杠
\ddd 八进制
\uxxxx 十六进制Unicode字符

自动类型转换

由低到高
byte,short,char,int,long,float,double

  • boolean类型不可以转换
  • 自动类型转换是低位转高位
  • 强制类型转换在对象前加括号填写相关的类型名

Java变量类型

类变量、实例变量、局部变量

局部变量

  • 声明在方法,构造方法或者语句块中
  • 局部变量在方法、构造方法、或者语句块被执行的时候创建,当其执行完成后,变量将会被销毁
  • 访问修饰符不能用于局部变量
  • 只在声明的方法,构造方法或者语句块可见
  • 局部变量没有默认值,必须结果初始化

实例变量

  • 实例变量在一个类中,但是在方法、构造方法和语句之外
  • 对象实例化后,实例变量的值就跟着确定
  • 实例变量在对象创建的时候被创建,对象被销毁的时候销毁
  • 至少被一个方法、构造方法、语句块引用,是的外部可以通过这些方式获取变量信息
  • 实例变量可以声明在使用前或者使用后
  • 访问修饰符可以修饰实例变量
  • 实例变量对于类中的方法、构造方法或者语句块是可见的,一般情况下是私有,通过使用访问修饰符可以使实例变量对子类可见
  • 实例变量具有默认值,数值类型变量的默认值是0,布尔类型是false,引用类型是null,变量值可以在声明时指定,也可以在构造方法中指定。
  • 实例变量可以直接通过变量名访问但是在静态方法以及其他类型中,应该使用:ObjectReference.VariableName

类变量

  • 也叫静态变量static关键字声明,必须在方法之外
  • 无论创建多少个对象,类只拥有类变量的一份拷贝
  • 静态变量除了被声明为常量之外很少使用,静态变量是指声明为public、private,final以及static,静态变量初始化以后不可以改变
  • 存储在静态存储区,经常被声明为常量,很少单独使用static声明变量
  • 静态变量在第一次被访问时创建,在程序结束时销毁
  • 与实例变量具有相似的可见性,但是为了对类使用者可见,大多数声明变量为public类型。
  • 默认数值和实例变量相似,数值类型变量默认是0,···
  • 静态变量可以通过ClassName.VariableName的形式来访问
  • 类变量被声明为public Static final类型时,类变量名称一般使用大写字母,不然命名方式与实例变量以及局部变量命名方式一致。