Java语言程序设计(基础篇)知识总结

1. Java

  java的特点:简单的、面向对象的、分布式的、解释型的、健壮的、安全的、可移植的、高性能的、多线程的和动态的。

 

  软件的生命周期:需求、设计、编码、测试、实施、运维(运行和维护)

 

  Java语言命名规则:

    必须是由字母、数字、下划线、或美元符号构成的字符序列

    必须是由字符、下划线或美元符号开头,不能以数字开头

    不能是关键字

    不能是truefalse

    可以任意长度

 

  Java命名规则

    类名:每个单词的首字母大写

    变量名:第一个单词的首字母大写,后面的单词的首字母大写

    方法名:和变量名一样

  常量名:每个字母都大写

2. 为什么说java语言被称为跨平台语言

   根据java的工作原理,因为我们的.java源文件通过编译器编译成以后缀名为.class的可执行文件,然后将.class文件和java库文件一起从JVM中运行,这样就可以得到运行结果,又因为java程序可以在任意一个装有java虚拟机的计算机上运行,这样就实现了java语言跨平台运行

 

  Java语言的工作环境

  一般的家用pc机是不可以直接编辑java程序的。需要先配置java的环境变量才可以

  配置java开发环境变量的步骤:

1. 下载和安装JDKJREJDKJRE一般不安装到同一个文件夹下

2. 配置环境变量

  Path   jdk的安装路径\bin;jre的安装路径\bin;

  Class_Path   jdk的安装路径\lib;jdk安装路径\lib\dt.jar;jdk安装路径\lib\tools.jar;

 

检测环境变量配置是否成功进入DOS界面,输入命令JavaJavacJava -version

   看运行是否有错。如果成功,则表示java环境变量配置成功。

3. java语言规范

  JDKjava开发工具包

  作用:编写和测试java程序

 

  JREjava开发环境

  作用:运行java程序

 

  Jdkjre的区别:jdk包含了jre

 

  API:应用程序接口。

  API文档:里面包含了java已经定义好的类的属性和方法

 

  IDE:集成开发环境

 

  JavaSEjava标准版 可以用来开发客户端的应用程序

  JavaEEjava企业版 可以用来开发服务器端的应用程序

  javaMEjava微型版 可以用来开发移动设备的应用程序

4. 基本数据类型

              存储范围          取值范围           相应的包装类

  byte           8位            +-27次方            Byte

  short          16位           +-215次方           Short

  int            32位           +-231次方           Integer

  long           64位            +-263次方          Long

  float                                                  Float

  double                                              Double

  char                                              Character

  boolean                                            Boolean

 

  Char型变量中能不能存贮一个中文汉字?

    可以,因为因为它用的是unicode编码。

 

  Double为什么叫做双精度浮点数?

     因为double的存储范围是float的两倍。

5. 包装类

  4.1.什么是包装类?

     对基本数据类型提供相应的类,这个类就是包装类

 

  4.2.包装类的作用?

     在数据类型之间的强制转换中不会出错

  

4.3.为什么要使用包装类?

   由于在强制类型的转换中可能会出现错误,比如intString,为了避免错误所以引用包装类

 

4.4.什么是自动装箱?

   将基本数据类型自动的转换为包装类的对象,这就是自动装箱

 

4.5什么是自动拆箱?

   将包装类的对象自动的转换为基本数据类型,这就是自动拆箱

6. 条件控制语句

  5.1.ifswitch语句的区别、转换

     If语句不一定可以转换为switch语句

     Switch语句一定可以转换为一个多项if语句

  

  5.2.for循环控制语句

语法:for(初始化;循环控制条件;循环迭代操作){循环体}

  

  5.3.如何使用循环

     1.完成一次迭代的代码

     2.确定循环体,查查一次迭代的代码中哪些需要循环,哪些不需要循环。

     3.确定循环条件,判断循环什么时候循环,什么时候不循环

     4.选择循环语句,根据循环条件来选择循环语句。

     5.将循环条件和循环体,代入循环语句的语法结构中。

     6.查询循环是否可以停止。一般情况下,我们的循环都是必须可以停止的。

 

  5.4.continuebreak的区别

     Continue是跳出了一次迭代循环,而break是跳出了整个循环

 

7. 一维数组

  7.1.数组的定义

     数据类型[] 数组名= new 数据类型[长度];

     ArrayList<包装类>数组名 = new ArrayList<包装类>();

 

  7.2.什么是变量的作用域?

      我们的变量在特定的范围内才可以使用,这个范围就叫做该变量的作用域

 

  7.3.程序的设计方式

      一个是从上到下的设计   从问题的开始  逐步分解成一个小分体最后得到结果

      一个是从下到上的设计   从需求的结果开始,一步一步推倒,直到得到已知条件

8. 二维数组

  8.1.数组的定义

     数据类型[][] 数组名 = new 数据类型[行的长度][列的长度];

 

 

 

9. 类和对象

  9.1类和对象的概念

     对象:在现实生活中客观存在的任何事物都可以看作是一个对象

     类:一系列具有相似特征的抽象集合

  

  9.2.类和对象的关系

     类是对象的抽象集合

对象是类的一个个具体的实例化

 

9.3.怎样设计类

  类中只包含两个部分:

     属性,对象拥有静态特征

     方法,对象执行的动作

 

9.4.This关键字

 This是指向调用对象本身的引用名

 

  9.5.构造方法

    什么是构造方法?

     构造方法的方法名必须和所在类的类名相同

     构造方法没有返回值类型

 

什么时候调用构造方法?

 当使用new,创建一个类的对象的时候,调用构造方法。

 

可不可以不通过构造方法创建对象?

可以,调用对象的Clone的方法

 

注意:构造方法可以被重载,但不能被重写

  

9.6.staitc的含义

  如果用static修饰属性或方法,表示该属性或方法是静态的属性,该属性或方法是属于该类的属性,而不是该类的对象的属性,调用的时候使用类名( . )属性名调用

 

9.7 StringStringBufferStringBuilder的区别

  String的值是不可以改变的,StringBufferStringBuilder的值是可以改变的

 

 StringBuffer是多线程(新版本)  StringBuilder是单线程(旧版本)

 

9.8.什么是变量的作用域?

   我们的变量在特定的范围内才可以使用,这个范围就叫做该变量的作用域

10. 面向对象程序设计

  10.1.面向对象的特征有哪些方面?

       封装:是面向对象方法的重要原则,就是把对象的属性和方法结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。

    

继承:在java设计中,使用类来对同一类型的对象进行抽象建立模型,其中不同的类也可能有公共的特征和行为,将这些公共的特征和行为放在一个类中,被其他类共享,这种建立模型的方式就叫做是继承

 

多态:多态就是同一个行为具有多个不同的表现形式或形态的能力

 

抽象:是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两个方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么

 

  10.2.类的抽象和封装

     什么是抽象类?

       不能被实例化的类就是抽象类

     什么是封装?

        封装分为两种,一种是属性封装,一种是方法的封装

        属性封装,是将属性前加private,提供getset方法

        方法封装,不需要知道过程,只需要知道参数和结果

      封装的优点:提高了代码的安全性和易修改性

 

   10.3.阐述静态变量和实例变量的区别

       静态变量也叫类变量,这种变量前加了static修饰符。可以直接用类名调用,也可以用对象调用

实例变量也叫对象变量,这种变量没有加static修饰符。只能通过对象调用

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11. 数据库

11.1.什么是DB

   存储数据的仓库

11.2.DB数据库的简写

    DBS 数据库系统            存储数据

    DBA数据库管理员          管理数据库的人员

  DBMS数据库管理系统       方便对数据库中的数据进行操作

    RDBMS关系型数据库管理系统

11.3.DB分为

    关系型数据库和非关系型数据库

    关系型数据库:MySQLOracle

    非关系型数据库:noSQL

 

关系型数据库和非关系型数据库的区别:关系型数据库不能独立存在,而非关系型数据库可以

11.4.什么是关系型数据库?

    因为该数据库中的每一张表都不能独立存在,必须要有关系存在。

 

11.5.完整性约束有哪些?

    域约束、主键约束、外键约束

   

    域约束:取值范围在特定的范围之中

    主键约束:非空唯一

    外键约束:取值必须要在外键表中存在

 

11.6.约束条件有哪些?

    域约束、主键约束、外键约束、非空约束、唯一约束

 

11.7.什么是主键、候选键、超键、外键?

    主键:非空唯一

    候选键:每一个键都可以称为候选键

        超键:是一个属性或一组属性,他唯一的标识了一个关系

        外键:定义了关系之间的关系

   

11.8.DDL语言

     DDL      DB定义语言

     DML      DB操作语言

    

     DDL       对表进行操作

     DML      对表中的数据进行操作

DDL语言

CREATE DATABASE    创建数据库

CREATE TABLE        创建数据库表格

ALTER TABLE         修改数据库表格

DROP TABLE         删除数据库表格

TRUNCATE TABLE     删除数据库表格内容

 

DML语言

INSERT into 表名 values (1,值2......);    增加

delete from 表名 where删除条件;           删除

Update 表名 set列名 =新值 where更新条件;修改

Select 列名 from  where查询条件           查询

 

11.9.数据库的三大范式

    第一范式是原子性

    第二范式是完全依赖,没有部分依赖

    第三范式是没有传递依赖

 

11.10.什么是JDBC

    JDBC    java数据库连接

    作用:使用java语言来连接数据库中的数据

 

11.11.怎样使用JDBC

     1.加载驱动  class.forName(”com.mysql.jdbc.Driver”);

     2.建立连接  Connection con = DriverManager.getConnection(url,userName,PW);

         3.执行语句  

               有变量:PrepareStatement ps = con.getprepareStatement(“?变量”);

               无变量:Statement ps = com.preparedStatement(“具体的SQL语句”);

 

11.12.truncate delete的区别

     Truncate   1.删除表中的所有数据

               2.DDL语言

               3.删除表中的结构

     Delete   1.删除指定的数据

             2.DML语言

             3.不删除表的结构

 

11.13.存储过程

      什么是存储过程?

       存储过程,为了减少开发人员编写SQL语句的重复性

语法:

CREATE PROCEDURE proc_test(

          参数

    )

 

   BEGIN

         方法体

   END;

11.14.视图

     什么是视图?

         视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。

     为什么要使用视图?

         让不同的人员关注不同的数据

     怎样使用视图?

         CREATE view 视图名 as select语句

 

drop view 视图名

 

select * from 视图名

       

    

 11.15.索引

          什么是索引?

               索引是对数据库表中一列或多列的值进行排序的一种结构

  

          索引的作用?

                使用索引可快速访问数据库表中的特定的信息

  

     11.16.事务

          什么是事务?

              事务是作为单个逻辑单元执行的一系列操作

              单个逻辑单元:通俗的理解为一次操作

         

           事务的特征?

               原子性、稳定性、隔离性、可靠性

 

           为什么需要事务?

               因为在实际情况中,我们的业务可能是有几个步骤共同完成的,如果其中一个步骤出现错误,那么我们的业务的结果可能就不正确。

 

语法:

              开始事务  BEGIN   

              提交事务  COMMIT  

              回滚事务  ROLLBACK

12. 继承

     12.1.什么是继承?

          java设计中,使用类来对同一类型的对象进行抽象建立模型,其中不同的类也可能有公共的特征和行为,将这些公共的特征和行为放在一个类中,被其他类共享,这种建立模型的方式就叫做是继承

 

     12.2.继承的作用?

          提高了代码的维护性、整洁性、复用性

 

     12.3.怎样实现继承?

         子类中包含父类的特性,子类包含父类的所有属性和方法。子类中的属性和方法,父类是不包含的

 

      12.4.什么时候使用继承?

          两个类之间必须是is-a的关系

          这两个类中有相同的属性和方法

 

      12.5.继承的关键字extends是写在子类中的

 

      12.6.super关键字

          Super代指父类

 

      12.7.方法的重载?

          方法的重载就是在同一个类中,两个方法可以方法名相同,返回值类型相同,参数不同。

 

      12.8.方法的重写?

          方法的重写是指子类中的方法可以和父类中的方法的方法名相同,返回值类型相同,参数也相同。

 

      12.9.方法的重写和重载的关系和区别?

          方法重写发生在通过继承而相关的不同的类中,而方法重载可以发生在同一个类中,也可以发生在由于继承而相关的方法名但是参数列表不同的类中

          方法重写具有相同的方法名,返回值类型和参数列表,而方法的重载具有相同的方法名和返回值类型,但是参数列表不同

 

      12.10.为什么不能根据返回值类型来区分重载?

           因为JVM是通过路径、方法名、参数、重载在同一类下,当路径、方法名、参数相同,无法区分哪个方法

 

13. 多态

13.1.什么是多态?

    多态是同一个行为具有多个不同的表现形式或形态的能力

 

13.2.多态的使用条件?

    使用多态必须要有继承关系

    使用多态的类中,必须重写父类中的方法

    父类引用指向子类对象

 

13.3.什么是动态绑定、静态绑定?

    在代码的执行期间是会判断引用对象的实际类型,根据实际类型调用相应的方法,这种调用方法的行为叫做动态绑定。

    静态绑定:java程序的编译过程中,方法的调用和代码的执行过程叫做静态绑定

 

动态绑定和静态绑定的区别

    动态绑定是在执行过程中,静态绑定是在编译过程中。

 

13.4.多态的原理?

    我们是通过动态绑定来实现多态的

 

 

13.5.instanceof的含义 怎样使用

    是用来运行时指出对象是否是特点类的一个实例

 

13.6.多态的使用、作用、 优点

    使用多态是在初始化类的对象的时候使用。

    多态最大的作用和优势是用来开发框架结构,而不是针对具体的方法的实现

 

   优点:提高了代码的替换性、扩充性、接口性、灵活性、简化性

 

13.7.什么是向上转型?

    父类引用指向子类对象

 

13.8.什么是向下转型?

    把子类的实际类型转换成父类

 

 

 

 

 

 

14. 异常

14.1.什么是异常?

   异常是一种对象,表示阻止正常运行程序执行的错误或者情况。

14.2.异常的分类?

    异常分为:

    系统错误(Error):是由java虚拟机抛出的,用Error表示。

    异常(Exception):是用Exception类表示,它描述的是由程序

和外部环境所引起的错误。

    运行时异常(RuntimeException):使用RuntimeException类表

示,它描述的是程序设计错误。

 

14.3.ErrorException的区别:

    Error   错误

    Exception  异常

 

14.5.怎样使用异常

    在主方法处理异常

  try{

    可能产生异常的语句

}catch(异常的类型){

  异常后执行的语句

}

14.6.throwthrows的区别:

    throw写在方法体,后面跟异常类型的对象

    throws写在方法头,后面跟异常的类型

 

14.7.finally的子句 含义

    不论是否出现或者是否被捕获,都可执行某些代码

 

14.8.finalfinally的区别:

    final修饰的变量是一个常量

    final修饰的方法不能被重写和重载

    final修饰的类不能被继承

  

    finally是写在try-catch语句之后,不论是否出现异常都一定

执行的语句

 

14.9.try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后? 

会执行

之前

14.10.Java语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别如何使用?

throws是获取异常
throw是抛出异常
try是将会发生异常的语句括起来,从而进行异常的处理,
catch是如果有异常就会执行他里面的语句,
finally不论是否有异常都会进行执行的语句。

 

14.11.出一些你常见的运行时异常?

空指针异常、数组下标溢出、算数异常、非法参数异常。

 

 

  14.12.怎样自定义异常?

       自定义类,类名最后以Exception为结束,表示定义的是

一个异常类

          自定义的异常类,必须是继承于Exception类或其子类

        自定义的异常类,一般是没有属性的

        自定义的异常类,一般要添加无参数的构造方法

        自定义的异常类,一般没有自定义的方法,需要的方法

一般是重写父类中的方法

 

 

 

 

 

 

15. 文本IO

什么是流?

流是抽象的概念,是对输入输出设备的抽象,java程序中,对于数据的输入/输出操作都是以“流”的方式进行。设备可以是文件,网络,内存等。

 

流的分类:

处理的数据单位不同,可分为:字符流,字节流

数据流方向不同,可分为:输入流,输出流

功能不同,可分为:节点流,处理流

 

     15.1.什么是文本IO,为什么要使用文本IO

         文本IO  I = input输入  O = output输出

         输入和输出,是可以在计算机本地的文件中的。

         为了使得Java程序有更加广泛的用途

 

     15.2.什么是绝对文件名?

          绝对文件名是由文件名和它的完整路径以及驱动器字母组成。

 

     15.3.File类的作用

          创建、删除文件或目录,重命名文件     

15.4.怎样使用File类,来重命名文件

    File file = new File(“D:\\abc.java”);

    If(file.exists()){file.renameTo(new FIle(“d:\\123.txt”));}

 

15.5.怎样使用FIle类,来删除文件

       File  file = new File(“正确的文件名”);

       file.delete();

 

15.6.怎样使用File类,来创建目录或文件

     创建File文件对象

 File  file = new File(“需要创建的目录或文件名(绝对文件名)”);

 

15.7.创建该文件或目录

     file.mkdir();  创建目录  ——  创建一个

     file.msdirs();  创建目录  —— 一次创建多个

 

15.8.怎样使用Scanner类,读取文件

     步骤:创建File类文件

               FIle file = new File(“文件的绝对文件名”);

创建输入流

                     Scanner input = new Scanner(file);

                  读取文件

                     while(input.next()){}  ——  数据库

                 While(input.hasNext()){String str = input.nextLine();}

 

       15.9.怎样使用PrintWriter类,来修改文件

            步骤:创建File

                    File file = new File(“文件的绝对文件名”);

                  创建PrintWriter

PrintWriter pw = new PrintWriter(file);

写入:

pw.println();  pw.print();  pw.printf();

和控制台输出是一样的。System.out.println();

关闭 pw.close();

 

        15.10.怎样自动关闭文件资源

             使用try(){}来自动关闭,需要和try-catch语句区分开来

             try(PrintWriter pw = new PrintWriter(f1)){

pw.println();  pw.print();  pw.printf();

                //和控制台输出是一样的。System.out.println();

}

 

 

         15.11.Scanner类的工作原理

               Scanner类中的方法都佳作是标记方法

               这些方法读取数据的时候会根据标记来读取

 

         15.12.怎样从web上读取数据

         首先使用java.net.URL类的这个构造方法,为该类文件创建一个URL对象。

创建一个URL对象后,可以使用URL类中定义的opeanStream()方法来打开输入流和用书如流

创建  Scanner input = new Scanner(url.opeanStream());

然后就可以从输入流中读取数据了

16. 抽象和接口

16.1.是抽象类

    16.1.1.什么是抽象类?

          不能实例化的类就是抽象类

    16.1.2.抽象类的特点是什么?

          不能被实例化

    16.1.3.抽象类的用途是什么?

          作为父类被子类继承

    16.1.4.定义抽象类的语法?

          在方法头中使用abstract

    16.1.5.抽象类的构造方法、属性、普通方法怎样定义?

          构造方法:Protected 类名(属性){}

          属性:和普通类一样

      普通方法:和普通类一样——可以包含抽象方法,        

也可以包含普通方法。

       16.1.6四种访问修饰符

      访问权限      本类      本包      子类       其他包

       Public         yes        yes        yes         yes

       Protect        yes        yes        yes

    Default        yes        yes        

          Private        yes      

          

          16.1.7.为什么要用抽象方法?

                提高了代码的重用性和易维护性

          16.1.8.抽象类的注意点

             1. 抽象方法不能包含在非抽象类中

             2. 抽象类是不能使用new操作符来初始化的

             3. 包含抽象方法的类必须是抽象类的

             4. 子类可以覆盖父类的方法并将它定义为abstract

             5. 即使子类的父类是具体的,这个子类也可以是抽

象的

6. 不能使用new操作符从一个抽象类创建一个实例

但是抽象类可以用作是一种数据类

       16.2.接口

           16.2.1.什么是接口?

              接口是一种与类相似的结构,只包含常量和抽象方法。

           (注意:接口和类是同等级的,他们只可以同时存在一种)

16.2.2.接口的用处是什么?

    1)通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类。

    2)通过接口可以指明多个类需要实现的方法。

    3)通过接口可以了解对象的交互界面,而不需了解对象所对应的类。

 

16.2.3.什么是接口继承?

      就是类实现了接口,就叫做是接口继承

      public class 类名{}

      public interface 接口名{

           静态常量;

           抽象方法;

}

             16.2.4.什么是泛型接口

                   泛型:什么类型都可以

                   泛型接口:适用于任何数据类型的接口。

                   //定义泛型接口

                   public interface 接口名<E>{

                        静态常量;

                        抽象方法;

}

//如果类要实现该接口的时候

public class 类名 implements接口名{}

//如果类实现的接口是泛型接口

public class 类名 implements接口名<具体的数据类型>{}

             16.2.5.Comparable接口的作用和用法

 java已经定义好的一个接口,提供了一个抽象方法,用于比较

public interface Comparable<类型>{

                      public int compareTo(类型 对象名)

}

              16.2.6.Coneable接口的作用和用法

                    可以克隆一个对象,表示该类可以被复制

              16.2.7.怎样自定义一个接口

[修饰符] interface接口名 [extends父接口名列表]{

[public] [static] [final] 常量;

[public] [abstract] 方法;

}

16.2.8.接口和抽象类的区别?

 

抽象类

接口

变量

无限制

所有的变量必须是静态常量

构造方法

子类通过构造方法链来调用构造方法,抽象类不能用new操作符实例化。

接口没有构造方法,也不能用new操作符实例化。

方法

无限制

所有的方法必须是公共的抽象的方法

继承和实现

使用继承,并且只可以继承于一个类

使用实现,允许实现多个类

 

  • 11
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值