JAVA入门学习需要重点掌握的知识点
目录
第一章Java概述
1. Java如何实现跨平台?
通过Java虚拟机JVM来实现跨平台,先将Java源程序编译成字节码(后缀为.class的代码),字节码可以在Java虚拟机上运行,不同的平台有不同的Java虚拟机JVM,相同的字节码可以不同的平台上运行。
2. Java开发的三个平台是什么?
J2SE、J2EE和J2ME
3. 如何编译与运行java程序?
在Dos命令提示符状态下通过命令行来实现的。例如:
如果用命令行运行test的话,后面不可以写“.class”,若写成test.class系统会把class当成类名test当成类包,所以在没有类包的情况下不要写成“.class”形式。
第二章Java基础
1. 什么是标识符?如何定义标识符?
标识符是用来标识变量、常量、方法、类、对象等元素的有效字符序列。Java语言规定标识符由字母、下划线、美元符号和数字等组成,并且第一个字符不能是数字。
对标识符的约定:(1)变量名、对象名、方法名、报名等标识符全部采用小写字母;如果标识符由多个单词构成,则首字母小写,其后单词的首字母大写,其余字母小写,如getAge。(2)类名首字母大写。(3)常量名全部字母大写。
2. 关键字的定义?
关键字是由Java语言定义的、具有特殊含义的字符序列。其首字母不能大写。如:this,super,extends,if,class,instanceof
3.Java中数据类型的结构?
float与double定义时的区别: float型的数要在后面要加f,如34.5f
4. 常量与变量的声明方式?
常量: final[修饰符]类型标识符 常量名=(直接)常量
如: final public double PAI=3.14;
变量: [修饰符] 类型标识符 变量名[=常量];
如: public float x=25.4f;
常量与变量的区别:一旦定义为常量了,其值不能改变,若要改变其值,只能改变声明时的值。
5. Java的运算符和表达式?
单目运算符: ++、--、-
双目运算符: +、-、*、/、%
逻辑运算符:&、|、!、^、&&、||
区别:逻辑与:& 逻辑或:|
短路与:&&(只要一个为F,一定为F) 短路或:||(只要一个为T,则一定为T)
6. 关于注释的正确写法?
“//…………”单行注释
“/*…………*/”多行注释
第三、四、五章
1.Java的三种基本控制结构?
顺序,选择和循环
if,switch,while,for,continue与break区别
2. 数组的定义?举例定义一个基本数据类型的数组和一个引用数据类型的数组。
数组是一组同类型的数据的集合,除了基本数据类型还包括引用数据类型,那么引用数据类型数组是如何声明、初始化和使用的。
例:基本数据类型数组的声明,初始化
int[]c=new int [5]; (5表示数组的单元长度是5)
c[0]=-5;
或 int[]c={1,2,3}; c[2]=3;
引用数据类型数组的声明初始化
例:String[]s=new String[3]; (3表示有3个单元)
S[0]=new String(“ab”);
或
String[]s1={“1”, “2”, “3”};
或
String[]s1= new String(“1”);
String[]s2= new String(“2”);
String[]s3= new String(“3”);
3. 如何声明数组,初始化数组以及使用数组?
4. 如何获得数组单元的长度?
int len=s.length
5. 熟练掌握一维数组的声明、初始化和操作
6. 字符串的声明与初始化?
常量字符串 String 字符串直接量
字符串 字符串常量
可变字符串 StringBuffer
字符串
String s=“hello” hello会保存在字符串值里
字符串直接量
String s1=new string(“hello”); 在堆上开辟了一个新的对象空间来存放hello
对象变量
String s2=“hello”; 先看字符串池里面有没有hello,若有则直接将s2指向那个位置
String s3=new string(“hello”);
只要有new出现就一定会开辟一个新的空间。
7. 字符串直接量与字符串常量的区别:
存储位置不一样,字符串直接量放在字符串值里,字符串常量放在堆上。
8. 常量字符串类与可变字符串类分别是什么?
9. 常量字符串的基本操作方法有哪些?
“==”与“equals”的区别:
比较对象是否相等的方法是“==”和“equals”,在采用“equals”进行比较时不会出现问题,“==”比较引用变量的值,“equals”(对象:内存里整块存储的东西,对象变量 String s1 s1即为对象变量)比较的是对象里的内容,故比较时应该比较对象里面所包含的内容而不是对象变量。
第六、七、八章
1. 什么是类?类的成员组成?接口是否为类的成员?
类就是将我们自然界中的事物的属性特点和行为特点抽象封装到类当中,反映这类事物的特点和功能。类的成员包括域变量和成员方法,对于域变量和成员方法都可以用static来修饰,static修饰的域变量称为类变量,static修饰的方法称为类方法,没有被static修饰的域变量和成员方法称为实例变量(可以在程序中直接调用)和实例方法。接口不是类的成员,是一种特殊的类,不用class,而用interface。
2. 关于类的正确表述?
必须依照类的写法,如何定义
3. 什么是静态域变量和实例域变量,静态方法和实例方法?
静态域变量称为类变量,静态方法也称为类方法,因为它们可以通过“类名.”来调用。
4. 什么是对象?如何创建对象?什么是对象变量?如何对对象进行初始化?
对象是类的一个实例。new在创建对象的作用:(1)通过new在堆上开辟一个对象空间,将类当中的域变量跟成员方法复制到对象空间当中;(2)通过new来调用构造方法来初始化对象;(3)将对象空间的首地址赋值给对象变量。对象变量就是指对象的首地址,通过构造方法对对象进行初始化。
5. 什么是构造方法?构造方法的特点与作用?
构造方法:(1)在一个类中方法名与类名相同的方法;(2)构造方法不是通过对象来调用,而是通过new运算符来调用;(3)构造方法是一种特殊的成员方法,它没有返回值。
构造方法特点:可以被重载,当没有在类中定义构造方法时,系统会默认提供一个不带参数的构造方法。作用:初始化对象。
6. super和this关键字的用法?
this用在当前类,当前类的一个默认的对象,可以通过this来调用当前类的属性和成员方法,也可以直接调用当前类的构造方法的重载方法。super用于一个类的子类中,作为父类在子类中的一个默认的对象,通过它来调用父类的成员属性和成员方法,也可以在子类的构造方法里直接调用父类的构造方法。
7. final修饰类、变量和方法时各有什么特点?
修饰类:这个类不能够被继承。
修饰变量:这个变量值不能改变,成为一个常量。
修饰方法:这个方法不能被覆盖。
8. 面向对象编程中,java类的三个主要特征是?
三个主要特征:封装性、继承性和多态性
封装性:通过类的访问修饰符来实现封装性的public,protected,缺省,private的访问权限
继承性:extends一个类继承了另一个类,那么父类的所有成员属性和成员方法都可以被继承到子类当中,子类也可以创建新的成员属性和成员方法(现有的类创建新的类的特性) super
多态性:静态多态性,如:重载函数。
动态多态性,如:覆盖函数。
重载(overload):一个类中可以定义多个名称相同,但参数变量不同的方法,重载方法与返回类型无关,重载方法常常用于构造方法,用于实现不同功能的初始化工作,重载也称为静态多态性,这是由于该方法被调用时采用静态地址充定位方式。
覆盖(override):在子类中对父类的某方法进行了重新定义,但方法的签名特征与父亲完全一致,访问修饰符的访问的限制宽于或至少等于父类的访问权限;主要用于实现同一个方法在不同的类中实现不同的表现形式,覆盖也称为动态多态性,这是由于该方法只有在运行时才能确定所调用的地址(也是多态性)。
9. 什么是抽象类?什么是抽象方法?抽象类的特点?
在类中至少有一个方法是抽象方法,那么这个类就称为抽象类,用abstract来修饰抽象类。抽象方法即没有定义这个方法的主体,给出这个方法的签名特征。特点:抽象类的对象变量是通过它的非抽象的子类来初始化的。
如:Animal T=new Tiger() 里的方法都是抽象方法,修饰符为public,没有写默认为public
抽象类 非抽象类
10. 什么是接口?接口的特点?接口的作用?
接口是使用interface关键字来代替class的特殊的类。
接口的三种形式:(1)仅有常量接口;(2)常量和抽象方法接口(3)仅有抽象方法接口。
作用:(1)可以实现常量接口在多个类当中共享常量;(2)实现共享一组标准操作来实现多个类之间的共享约定;(3)实现多态性。
11. 接口与抽象类的区别?
接口中所有的方法都是抽象方法,不管这个方法是否使用public,abstract修饰,它都是默认的公有的抽象方法,抽象类至少有一个抽象方法,而且还有一个成员方法,接口中不能定义构造方法,抽象类可以定义构造方法。
12. 什么是包?包的作用?
包是java语言提供的组织类和接口的工具,将一组相关的类为接口,组织到一个包中。
作用:(1)通过包可以来确定类的唯一标识;(2)通过包可以将相似功能的类和接口组织在一个包中。
第九章
1. 什么是异常?为什么要处理异常?
异常是指程序运行过程中出现的非正常现象。由于异常情况总是难免的,良好的应用程序除了具备用户所要求的基本功能外,还应该具备预见并处理可发生的各种异常的功能。
2. 异常的基本处理方式?常用的异常类有哪些?
两种处理方式:(1)一旦捕获异常马上进行处理。try,catch,finally
(2)捕获异常并不处理,而是利用方法将异常抛出,throw,throws
3. Error和Exception类的区别?
Error是用来处理较少发生的系统内部的错误,程序员对这些错误通常无能为力,只能在发生时由用户按照提示来终止程序的运行。
4. throw和throws语句的区别?
throw是抛出一个异常对象,如:throw new ××× Exception
throws是某一个方法在声明和定义时,这个方法后面紧跟着throws,然后阐明这个方法可能抛出异常,如:throws new ××× Exception 这个异常可以是标准异常类,也可以是自定义的异常类。
第十章
1. Java输入输出的基本方式?
主要是通过输入和输出流实现的,输入流将数据从文件标准输出或其他外部设备输入,输出流将数据保存到文件或传输给相关的设备。
2. 字符流域字节流的区别是什么?举例说明哪些类处理字符流?哪些处理字节流?如果字节流向字符流进行转换需要用什么类?
字节流是以字节为单位的访问文件,字节流具有两个重要的抽象类,“input stream 和 output stream”。字符流是以字符为单位的访问文件,两个重要的抽象类,“Reader和Writer”。
桥接类在定义字节流时,由于任何字节流的类都跟着一个stream,字符流的类后缀reader,writer。桥接类:跟着Inputstream reader和Outputstream writer。
3. 为什么需要使用带有缓冲的输入输出流进行数据的读取与写入?
提高运行效率,对字符而言,为Buffer Reader,对字节而言,Buffer Input stream
如:Buffer Reader new=Buffer Reader()
第十一、十二章
- javaGUI编程需要导入哪些包?
.awt*,.Swing*,.event*
- 什么是组件?什么是容器?哪些是顶层容器?哪些是中间容器?
组件是图形用户界面是哪个现实的各种图形基本成分和核心元素。
容器是可以包含其他组件的组件,容器是组件的一种。
顶层容器:JFrame,JDialog,JApplet(用于布局其他容器与组件的最基本容器)
中间容器:JPanel,JScrollpane,JTabbedpane,JToolBar
最灵活最常用的中间容器
- 什么是布局管理器?作用是什么?说出三种布局管理器及其特点。
布局管理器是用来管理各种组件 容器中摆放位置的对象;作用是将组件房子相应的位置,使容器中的组件安排更加合理,减少与系统平台的相关性;BorderLayout(边布局)类:把容器内的空间划分为东、西、南、北、中五个区域;FlowLayout(流式布局)类:从左到右排列;GridLayout(网格布局)类:从左到右从上到下的顺序依次放入各网格中(没个网格只能放一个组件)
- 什么是事件?Java如何处理用户的操作?
事件:当用户用键盘或鼠标来进行操作时,操作系统发出的相应的信号。
事件源:用户在操作过程中所使用的相关组件。
通过事件驱动模型来处理用户操作的。
- 列出常用的时间监听器接口及其方法。
ActionListener actionperformed()
AdjustmentListener adjustmentValueChange()
FocusListener focusLost() focusGained()
ItemListener itemStateChange()
KeyListener keyPressed()正按下那个键还没有弹起 keyTyped()已经按下那个键
MouseListener
- Swing组件与AWT组件的区别是什么?
- Swing组件是AWT组件的扩展更新版本;
- Swing组件的平台相关性较小,称为“轻量级”组件,AWT组件相关性较大,称为“重量级”组件。
- 使用java语言如何编程完成一个GUI应用?
- 创建基本容器,并设置相关的布局管理器;
- 创建并配置相关的组件;
- 将组件添加到容器中;
- 针对不同的组件添加(注册)相关的事件监听器,处理有组件产生的事件。
- 适配器类与事件监听器接口的区别是什么?
事件监听器接口有多个抽象方法。实现事件监听器接口时,必须对所有的方法进行覆盖,否则,会获得一个抽象类,当继承适配器,只要在子类里所关心的抽象方法,进行覆盖即可。
第十三、十四章
- 什么是Applet?
Applet是可以嵌入到HPML文件中,运行的Java程序,该程序通过IE浏览器来运行的,也可以通过applet viewer运行
- Applet运行的四种状态?
init() start() stop() destroy()
- 什么是线程?创建线程的两种方法?
进程是独立分配内存足以的基本单位,一个进程至少有一个线程,线程是进程内部单一的一个顺序控制流,线程是CPU调用的基本单位。
方法:Thread Runnable
- 线程的生命周期?
- 为何需要线程同步?实现线程同步的两种方法?
“关键字synchronized” 多线程需要在线程中共享公共资源,线程之间会并发运行,线程需要协调工作来避免随机并发运行所带来的问题,通过使用线程同步处理,可以保证线程协调工作。
方法:(1)synchronized void test(A) {} ——使用同步方法
(2) synchronized (object){//需要同步的语句} ——使用同步块
第十五、十六章
- java数据库编程的四种驱动方式?
- JDBC-ODBC桥方式
- JDBC本地化方式
- JDBC网络中间件方式
- 纯JDBC驱动方式(最有效)
- java数据库应用的开发步骤
- 导入相关的类包
- 加载JDBC驱动程序
- 生成connection对象与数据库建立连接
- 创建SQL语句statement对象
- 根据SQL语句查询数据库并操作数据库
- 当数据库操作完毕需要关闭相应连接
- Internet如何标识计算机?
通过IE来标识的,通过Inet、Address来表示IP地址的
- 什么是URL?URL有几部分组成?
URL即网络编程适配器,有五部分组成:Protocol(协议)、Host(主机名)、Port(端口)、File(资源文件)、Reference(参考)
- java语言实现网上通信模式有几种方式?
URL通信模式,Socket通信模式,Datagram通信模式
- URL通信模式如何读取网络资源?
(1)创建类URL的实例,使其指向给定的网络资源
(2)建立URL连接
(3)通过BufferedInputStream或BufferedReader 封装输入流
(4)读取数据,进行数据处理
(5)关闭数据流
- 基于TCP/IP协议的Socket通信模式的实现步骤
- 基于UDR协议的Datagram报文通信模式的实现步骤