干货!超实用的JavaSE基础知识学习笔记!

mac2024-03-22  26

一、搭建Java环境 1、下载和安装JDK(jdk和jre到指定目录,如E:\Java\jdk1.7.0 以及E:\Java\jar路径必须记住) 2、配置环境变量 1、计算机→属性→高级系统设置→高级→环境变量 2、系统变量→新建 JAVA_HOME 变量 变量值填写jdk的安装目录(本人是 E:\Java\jdk1.7.0) 3、系统变量→寻找 Path 变量→编辑 在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; (注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码) 4、系统变量→新建 CLASSPATH 变量 变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点) 系统变量配置完毕 3、验证环境搭建成功,打开CMD 输入 Java -version

二、Java基础元素

三、Eclipse 1、Eclipse SE版本是标准版,一般用来书写JAVA功能程序 2、Eclipse EE版本是企业版,才能书写Web系统 3、My Eclipse与Eclipse EE类似,但本身集成的功能较多

四、类的一般形式 1、类的概述: 类就是事物的集合和抽象,它所代表的是这类事物所共有的行为和属性 2、类的一般形式 比如:汽车是一个类, 它的属性有发动机、车轮、颜色、长度, 它的方法有1、启动汽车 2、关闭汽车 而宝马车是汽车的一个对象,一个实例 修饰符有:可以修饰类、属性、方法 Private:只有在本类中可以看见 Protected:在本类或者是同一个包可见 Public:对于所有的类都可见 默认(无修饰符):默认修饰符,在本类或者在同一个包可见 返回值类型和return的数据的类型一致 Public class 类名{ 类型1 变量名; 例子:public int n=0; 类型2 变量名; public string m=”y”;

方法:修饰符 返回值类型 类名(参数){ 方法体 } } 3、自定义构造方法 (原本系统会给类分配一个默认的构造方法, 默认构造方法:给该类的所有属性都分配一个初值, 如果是字符串类型就是null 所有的数字变量为0 所有的boolean类型全部设置为false 所有的对象变量为null) 构造方法的名字与类名一致,分为无参构造函数和有参构造函数 比如: Student 类中 1、无参: 2、有参: 构造方法的作用是: 1、初始化对象的数据初始化,在声明对象的时候就可以直接初始化数据,例如: Student student=new Student(“陆超杰”,22);

五、方法的重载 1、实用static声明静态方法,在主类时可以不用声明对象而直接调用该类中的方法 2、在一个类中可以有多个方法共享同一个名称,只要他们的参数不一样就可以了,叫做方法的重载 3、重载具有相同的方法名称,参数类型不同,参数数量不同,参数次序不一样都可以

六、static关键字 1、静态变量 通过static修饰的变量是静态变量 Int a; 非静态的变量在类中是可变的, Static int b; 静态的变量在类中的值是唯一的,无论哪个对象使用都是同个值

2静态方法 通过static修饰可以声明为静态方法,静态方法和属性一开始就已经存在于内存中,而非静态方法需要声明也就是new才能出现在内存中 访问静态方法是通过(类名.方法名) 1、静态方法不能访问非静态变量 2、非静态方法可以访问静态变量

静态属性或者方法是在类加载的时候产生的 非静态的属性或者方法是在new的时候产生的

3、静态常量 Public static final int x=20; //静态常量的定义方法

七、final关键字 使用final修饰过后的,无论是变量还是方法,都是不可改变的

1、final修饰变量 对于恒定不变的属性,可以使用final来进行修饰 变量名建议全部使用大写 Final修饰的变量不能改变,如果在程序中重新赋值的话,编译会报错

2、final修饰方法 任何继承类无法覆盖该方法,但是重载不受限制

3、final修饰类 该类不能作为任何类的父类 类中的方法全部被自动定义为final类型

八、封装 1、封装概述 封装是Java的三大特性之一 修饰符: private、public、protected、默认 目的:使用修饰符把需要封装的属性(成员)分开来,给私有化,让它不受外部代码影响 2、实现封装 例如,把属性用private修饰,让外部无法影响到这些属性,获取或者赋值只能通过set和get方法,从而实现初步的封装,提高程序的健壮性 九、继承 1、继承概述 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。 生活中的继承: 兔子和羊属于食草动物类,狮子和豹属于食肉动物类。 食草动物和食肉动物又是属于动物类。 所以继承需要符合的关系是:is-a,父类更通用,子类更具体。 虽然食草动物和食肉动物都是属于动物,但是两者的属性和行为上有差别,所以子类会具有父类的一般特性也会具有自身的特性。

2、继承实现

父类: 子类: 主类运行情况: 子类优先调用子类重写的方法,本身就继承有父类的属性和方法 3、如果想调用父类有参的构造方法,必须使用super方法,而且super方法必须在方法体内置顶 十、多态 1、概念 多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口,使用不同的实例而执行不同操作,如图所示: 多态性是对象多种表现形式的体现。 现实中,比如我们按下 F1 键这个动作: • 如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档; • 如果当前在 Word 下弹出的就是 Word 帮助; • 在 Windows 下弹出的就是 Windows 帮助和支持。 同一个事件发生在不同的对象上会产生不同的结果。 方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。 • (1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading)。 • (2)方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写(Overriding)。 • (3)方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。 十一、抽象类 1、抽象类的定义 Abstact 抽象类是为子类提供的一个规范 Public abstract class类名{

定义一个抽象方法 修饰符 abstract 返回值类型 方法名(参数列表); //抽象方法没有方法体 Public abstract void test(); Public abstract void test(){ }; 定义一个类,如果这个类是抽象类,那么这个类中至少有一个抽象方法 抽象方法必须在抽象类中 ,而抽象类中可以有抽象方法也可以有非抽象方法 } 2、抽象类的使用 @override //英文单词是重写的意思,只是用来检测是否重写成功,无实际意思 1、如果一个类包含抽象方法,那么该类必须是抽象类。 2、任何子类必须重写父类的抽象方法,或者声明自身为抽象类 十二、接口 1、接口概述 extends(继承)只能继承一个 implements(实现)可以接口多个

接口只有抽象方法,它是比抽象类还要抽象,接口是彻彻底底的抽象。 接口是抽象方法和常量的属性集合。 接口中只能够包含抽象方法和常量,不能够有常量,初始化块,构造器

注意事项: 1、接口的修饰符只有两种,默认(只有在同一个包里可见)和public(所有类可见), 2、接口内的变量会被设置成共有的、静态的和最终的字段 如果定义一个 int i=1; 它会变成 public static final int i=1;

2、接口的实现 1、一个实现类实现多个接口,也就是多继承,需要用逗号来分割开 形式: public class 类名 implements 接口1,接口2,接口3{ 方法1( ){ } 方法2( ){ } ………………… } 2、一个主接口继承多个接口,再用一个类去实现主接口 形式: public interface 主接口 extends 接口1,接口2,接口3{ 主接口方法1(); 主接口方法2(); } 接口的实现注意事项: 1、为接口中所有的方法都提供具体的实现 2、必须遵守方法重写的所有规则 3、方法的具体实现要跟接口中的方法,保持相同的返回值类型 多继承就是继承多个接口,接口之间需要用逗号来分割开,实现的方法名也可以实现 十三、内部类 一、内部类概述 一个类被嵌套定义在另一个类中,那么这个类就称为是内部类,包含内部类的类就被称为是外部类 内部类相当于外部类的成员方法或者变量 二、如何构造内部类 例如:已创建一个名 Out_class的类,里面嵌套有一个名inner 的内部类 在主方法中使用与声明,需要内部类不可以直接实例化对象出来,只能先声明外部类再进行声明内部类 三、匿名内部类概述 匿名指的是没有名称的类,形式为: 接口名 对象名 =new 接口名(){ 重写接口内的方法} 四、局部内部类 1、在一个类中的方法中,再定义一个类 2、在类的局部位置进行定义的类叫做局部内部类 3、在局部内部类里面可以访问外部类的所有成员变量

五、静态内部类

十四、异常 一、异常概述 1、什么是异常? 异常就是程序运行过程中所出现的不正常现象 Try //把可能发生异常的代码包起来,当发生异常时,将异常抛出 Catch //捕获,如果加上System.exit(0);,则finally段代码则不会执行了 Finally //不管有无异常,这部分代码都必须执行,进行收尾工作 Throw //手动引发一个异常 Throws //声明方法的异常,定义任何被调用方法的异常

2、异常出现的原因 这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起 要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常: • 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。 • 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。 • 错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。

原因有: 1、用户输入错误2、代码的错误3、环境的因素

异常机制目的是保证程序的健壮性

3、异常的分类 Error:它是Java运行时的内部错误以及资源耗尽错误,很难恢复,不期望用 RuntimeException:运行时异常 非RuntimeException:非运行时异常,大部分因素是因为环境引起。 空指针异常,指针为空,无法调用方法 数组越界异常,

3、获取异常信息 用e.方法

4、异常声明 声明指的是一个方法不处理它所产生的异常,而是调用层次向上传递,谁调用这个方法,谁来处理

5、手动抛出异常 代码: thorw exception;参数exception表示要抛出的异常对象,该对象是throwble的子类 Try catch finally是可以嵌套使用的

6、异常链 两个或者多个不同的异常出现在同一个程序中,并且会发生嵌套发生

十五、多线程

一、多线程的概述 Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。 多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。 这里定义和线程相关的另一个术语 - 进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。 多线程能满足程序员编写高效率的程序来达到充分利用 CPU 的目的。

Java的线程模型 1、新建状态 线程被创建之后便处于新建状态 2、就绪状态 新建状态的线程调用start()进入就绪状态,阻塞状态的线程解除之后进入就绪 3、运行状态 处于就绪状态的线程获得了CPU的资源,该线程进入了运行状态 4、阻塞状态 是一个正在运行的线程,因为一些原因让出CPU资源暂时中止而进入 5、终止状态 正常中止,强制终止,异常终止

二、创建一个线程 Java 提供了三种创建线程的方法: • 通过实现 Runnable 接口; • • 通过继承 Thread 类本身; • • 主方法: • • 通过 Callable 和 Future 创建线程。 小提醒:接口 对象名 = new 实现类名();// 创建类对象

三、多线程应用 1、多线程并发执行 2、线程优先级

最新回复(0)