Java基础知识点总结

时间:2024-06-21 08:17:09 学习总结

Java基础知识点总结

  Java基础是编程类专业要学的第一步,那么Java基础知识点又有什么呢?下面Java基础知识点总结是小编为大家带来的,希望对大家有所帮助。

Java基础知识点总结

  Java基础知识点总结

  1. JAVA简介

  1.1 java体系结构:j2se,javaweb,j2ee

  1.2 java特点:平台无关(虚拟机),垃圾回收(使得java更加稳定)

  1.3 JDK与JRE,JDK:java开发环境,JRE:java运行环境

  1.4 第一个java程序:HelloWorld,java的入口是main(public static void main(String[] args))

  1.5 java程序的开发步骤:.java 编译(javac)成.class 运行(java).class文件

  2. 基本数据类型

  2.1标志符:自己可以取名字的地方称为标志符

  *标志符的规则:1,只能是字母,数字,下划线,$;不能以数字开头;严格区分大小写;不能使用关键字作为标志符

  2.2关键字:关键字都是小写

  2.3常量:如123,“hello”

  *也可以使用final定义常量(请参照Math.PI),如public static final int SLOW_SPEED=1;

  2.4 变量:变量的本质是内存中的一小块区域,用这个区域保存数据

  *变量申明:类型变量名字

  *变量必须先声明,再赋值,再使用

  *注意区分基本数据类型的变量与引用数据类型的变量

  *变量的作用域,局部变量与成员变量:变量在哪个大括号里定义,就在哪里有效,出了大括号无效

  2.5 基本数据类型:java数据类型分为两大类:基本数据类型,引用数据类型

  *基本数据类型分为4类8中:boolean,char,byte,short,int,long,float,double

  *boolean类型只有true,false

  *char是Unicode编码

  *float,double是有精度的(不是绝对精确的)

  2.6 基本数据类型之间的转换

  *123字面常量是int型,12.3字面常量是double型,8888888888888这个字面常量有问题(因为它已经超出int的范围,改成8888888888888L)

  *boolean与其他类型不兼容

  *byte,short,char之间相互运算的时候,先转换为int,再进行运算

  *小容量的数据类型可以自动转换为大容量的数据类型:byte,short,char——>int——>long——>float——>double

  *大容量转换为小容量的数据类型,要进行强制转换

  *多种数据类型进行运算的时候,先转换为容量最大的数据类型再进行运算,整个表达式的类型是容量最大的数据类型

  *必须掌握PPT上的习题

  3. 运算符与流程控制3.1运算符:算术,关系,赋值,逻辑(着重注意),位运算符

  *自加自减++,--,注意顺序

  *关系运算符的结果是boolean类型

  *逻辑运算符注意短路与&&,短路或||

  *三元运算符(逻辑表达式) ? 表达式一:表达式二

  3.2流程控制语句:条件(if,switch),循环(for,while,do while),break与continue

  3.3 switch的规则:

  *switch只能探测:byte,short,char,int 类型的值(case后面也只能是这4种)

  *switch中小心case的穿透(代码会一直运行,直到遇到break停止,建议每个case写一个break)

  *default:如果没有找到匹配的case,则执行default

  3.4 for,while,do while搞清楚代码的执行流程(PPT上有图,必须记住)

  3.5 break,continue

  *都可以用在循环里面,break还可以用在switch中

  *break跳出单前的代码块(结束循环)

  *continue:跳过本轮循环,继续下一轮循环(循环会继续,仅仅跳过本次)

  3.6 流程控制代码编写:可以灵活的组合这些流程控制代码,注意一定要写{ }

  4. 面向对象基本语法

  需要大家掌握:类与对象的区别,如何定义一个类,如何实例化一个对象

  4.1定义一个类

  *使用class关键字定义类,注意类名大写

  *成员属性:成员属性不赋值会有默认值(默认值规则参考PPT)

  *成员方法

  *构造方法:没有任何返回值,名字与类名一样,构造方法的本意是用来初始化对象(初始化对象的属性值)

  4.2 实例化对象:Student s = new Student();

  *使用new + 构造方法实例化对象

  *new 在堆中开辟了对象的空间,并且给属性赋上默认值

  *接下来调用构造方法,执行构造方法中的代码

  *最后返回对象的引用

  4.3区分引用类型与基本数据类型

  *引用类型的变量在内存中有两块区域,一块是引用本身,另一块是引用所指向的对象

  *基本数据类型在内存中只有一块空间:里面存着值

  4.4如何操作对象:使用.操作符

  *使用对象名.属性操作对象的属性(如:stu.age = 18;)

  *使用对象名.方法调用对象的方法(如:stu.study());

  *this:每个对象都有this,this是指向本身的引用,代表本身

  4.5. 必须能够独立写出Point3D的代码(题目在PPT上)

  5. 访问控制,方法定义与调用,重载,方法重写5.1 访问控制5.1.1 package包的使用

  *使用package 定义包:package只能放在代码的第一行

  *import:导包,可以到入包下所有import java.io.*;可以导入具体的一个类import java.io.Reader;

  *包的作用:1,分类;2,隐藏(封装的作用),3,便于管理

  *java本身提供了一些包:java.lang(核心类,此包如需要引入),java.util(集合框架以及其他常用类),java.io(输入输出),java.awt,javax.swing(图形)

  5.1.2 继承(简单概念):使用extends关键字表示继承

  *子类继承父类的所有属性

  *子类继承父类除private(非同包的时候也除默认的方法)外的所有方法

  *子类对象拥有super引用,表示父类的引用,可以使用super明确的调用父类的方法或属性

  5.1.3四个访问级别,从大到小:public ,protected,默认,private

  *注意访问级别是针对类来讲的,不是针对对象!!!!!!!

  *注意类的访问修饰符只能使用public 或默认

  *学了访问控制后:类的属性都写private,通过set/get方法对属性进行赋值,取值

  5.2 重载与重写

  1.判断是否是重载,或者是否是重写,如果不是重写或者重载,就不受重写重载规则的约束

  5.2.1重载:一个类当中,有方法名相同,参数不同的方法,称为重载

  *不能只改返回值:不能根据方法的返回进行重载

  5.2.2重写:在继承当中,子类将父类的方法重新写了一遍:重写的方法与被重写的方法拥有相同的方法签名(返回值类型,方法名,参数列数)

  *.重写的方法能够改变被重写的方法的访问级别,注意只能是相等或者扩大

  *.重写的方法不能抛出比被重写方法更多的异常,注意只能缩小异常的范围

  *.如果被重写的方法是具体的,重写之后不能改为abstract

  5.3 类与对象的生命周期

  5.3.1类与对象的初始化过程:

  *静态属性先初始化,而且仅仅初始化一次

  *首先给静态属性进行声明,并赋默认值,然后代码从上往下执行静态代码块或静态赋值

  *每创建一个对象,就先实例化成员属性:首先给成员属性声明,赋默认值,然后.执行赋值语句

  *成员属性初始化后再调用构造方法

  5.3.2垃圾回收机制

  *java虚拟使用垃圾回收机制进行垃圾回收

  *垃圾回收本身是一个线程(当内存不够用的时候,一般会进行垃圾回收)

  *垃圾回收不能通过程序来调用,仅仅能够通过System.gc()建议虚拟机进行垃圾回收

  *当进行垃圾回收时,会调用对象的finalize方法

  5.4 单例模式:一个类仅仅能有一个实例(设计模式的一种)

  *构造方法必须为私有的

  *提供静态的方法来获得对象

  *提供静态的属性,该属性是该类的一个对象

  6. 继承,抽象类,接口

  6.1 继承:

  6.1.1 继承的语法:使用extends关键字表示继承

  *子类继承父类所有的属性

  *私有方法不能被继承

  *super关键字表示父类的引用,可以用super来调用父类的方法或属性

  6.2.2 继承中的构造方法:了解下面的知识点以及实例化对象时代码的执行过程

  *子类的构造过程必须调用其基类的构造方法

  *子类可以在自己的构造过程中使用super (arg_list)来调用基类的构造方法

  *如果调用super,必须写在子类构造方法的第一行

  *可以使用this(argument_list)调用本类的另外的构造方法

  *如果子类的构造方法中没有显示的调用基类的构造方法,系统默认调用基类无参数的构造方法

  *如果子类构造方法中既没有显式的.调用基类构造方法,基类中又没有无参数的构造方法,编译出错

  6.3.3 对象的转型

  *一个基类的引用类型变量可以指向其子类的对象

  *一个基类的引用不可以访问其子类对象新增的成员

  *可以使用instanceof 关键字来判断一个引用类型变量所指向的对象是否是制定的类型

  *子类的对象可以当作基类的对象来使用称作向上转型,反之称为向下转型

  *子类可以当成父类来使用,无需显示转换

  *父类引用转换为子类引用要进行强制转换

  *注意:不兼容的类型之间不能进行相互转换(只有具有直接或间接父子关系的类才是兼容的类型),否则编译时会报错

  *注意:兼容类型之间的转换要看对象的实际类型,因此向下转化时最好先用instanceof来判断是否是某个类型,在转换,以免报报错

  6.4.4 多态:也称运行时绑定:一般是指父类的引用指向子类对象,通过父类的引用调用被子类重写的方法,这个时候执行的是子类的方法

  *一句话总结多态:对象实际是什么类型就调用什么类型的方法

  *多态成立的条件:1,要有继承。2,要有重写。3,必须有父类引用指向子类对象。

  6.2 抽象类:用abstract修饰的类称为抽象类(抽象的本意是不具体)

  1.抽象方法不能有方法体

  2.抽象类不能被实例化。

  3.含有抽象方法的类必须被声明为抽象类,

  4.子类继承抽象类,必须被重写父类的抽象方法,否则本身也必须被声明为抽象类

  5.抽象类中的方法和属性没有其他规则来约束,抽象类中没有抽象的方法是可以的,抽象类中可以有非抽象的方法和属性

  6.3 static :静态关键字

  6.3.1static属性:在类中,用static申明的成员变量叫静态变量,他为该类的公用变量,在第一使用时被初始化,对于该类的所有对象来说,static成员变量只有一份

  6.3.2 static方法:用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以static方法中不可以访问非static的成员。

  *静态方法中不能访问非静态成员

  *静态成员方法没有this引用

  *可以通过类名(不需要实例化)或对象引用来访问静态成员

  6.4 final关键字:

  final表示最终的意思

  *final的变量的值不能够被改变

  *final的成员变量

  *final的局部变量(形参)

  *final的方法不能够被重写

  *final的类不能够被继承

  6.5 接口:interface

  1. 使用interface定义一个接口,使用implements实现一个接口

  2. 接口中的属性只能为public static final类型(静态常量)

  3. 接口中的方法只能为public abstract类型

  4. 一个类可以实现多个接口,但只能继承一个类

  5. 接口也可以继承接口

  7. 异常处理

  java的异常处理机制

  异常的关键字Exception

  try,catch,finally,throw,throws关键字

  7.1什么是异常,为什么要引入异常

  *java程序运行时出错,java就抛出异常,程序立即终止(也可以说程序崩溃)

  *java将错误信息封装在异常对象里抛出

  *学会查看异常的信息:异常的名字,异常的信息,程序抛异常的位置

  *java引入异常处理机制,是防止程序出错崩溃

  7.2java的异常的分类

  *java的抛出的错误用异常类来表示,java拥有一个异常体系(有许多异常类,并且相互之间具有关系)

  *java里面的所有异常都是Throwable的子类

  *java虚拟机的异常是Error的子类,一般不需进行处理(因为没法进行处理)

  *除Error之外还有Exception,Exception分为两类:RuntimeException(运行时异常),被检查异常(除了RuntimeException都是被检查异常)

  *RuntimeException(运行时异常,可以不捕获或声明抛出,编译不会报错,一般是控制不当造成的),可检查异常(必须捕获或声明抛出,这类异常通常需要检测并处理,一般使用资源时造成的)

  *几个常见的异常:NullPointerException(空指针),IndexOutOfBoundsException(索引越界),SQLException(数据库异常),IOException(文件异常)

  7.3异常的处理方式

  *使用try,catch,finally进行处理

  *不处理,使用throws,throw交给别人来处理

  7.4try,catch,finally中程序的运行过程

  *尝试执行try里面的语句

  *一次运行当中最多执行一个catch块,如果没有抛出异常,catch块不执行

  *finally总会执行,不管有没有抛出异常

  *如果try块里面有return语句,finally也会执行

  7.5区分RuntimeException与被检查异常

  *RuntimeException不需要捕获或声明抛出(但是如果你捕获或声明抛出也不会有错)

  *被检查异常必须要捕获或者声明抛出

【Java基础知识点总结】相关文章:

Java基础知识点归纳08-22

java必备基础知识点06-01

Java知识点总结12-04

JAVA笔试基础题04-05

Java的基础知识07-27

Java知识点归纳08-16

Java基础知识详解09-02

基础JAVA笔试题分享06-17

经典的Java基础面试题09-02