本人java面试中问答的问题分享

来源:互联网 发布:fft算法原理 编辑:程序博客网 时间:2024/05/14 17:35

1、      java数据类型

整数类型:byte、int、short、long

浮点类型:double、float

布尔类型:boolean

字符类型:char

String不是基本数据类型,它定义的为对象

2、      final关键字修饰不同的类型表示的意义

修饰类,表示这个类为最终类,不可被继承。

修饰变量,表示这个变量为常量,不可改变。

修饰方法,方法不可被覆盖

3、      重载(overload)与重写(override)的区别

重载指的是在同一个类中,多个方法具有相同的方法名,但是具有不同参数的个数和类型

注意:返回值类型不同不属于重载

重写是指子类在继承父类的时候,子类中的方法与父类中的方法具有完全相同的名字、参数、返回值,子类方法的访问修饰符权限不能低于父类。

4、      ArrayList与LinkedList的区别(单列集合)

ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,优点是修改、查询速度快,所以最大的缺点就是插入删除时非常麻烦。

LinkedList采用的是双向链表的方式来保存对象的,所以这种方式优点是插入和删除速度快,缺点是修改和查询速度快。

5、      Hashtable和HashMap的区别(双列集合)

Hashtable是线程安全的,它的key和value都不允许为空。

Hashmap不是线程安全的,它的key和value允许为空(但是只允许一个空的key)

6、      抽象类(用abstract修饰的类)和接口(interface修饰)的区别

(1)       接口中不能有非抽象方法,抽象类中可以有非抽象方法。

(2)       接口可以多继承,抽象类不能多继承

(3)       抽象类可以实现接口,接口不能继承抽象类

7、      String、StringBuffer和StringBuilder的区别

三者都是对字符串进行操作的

String(不可变字符串,它是用final修饰的)

StringBuilder(可变字符串)是线程安全的,需要线程安全的时候使用StringBuilder。

StringBuffer(可变字符串)不是线程安全的,但是执行速度快,一般使用。

8、      String  str =  new String(“abc”)创建了几个对象?

两个,一个是abc这个对象,一个是str的引用对象。

9、      java中线程的同步的方式

(1)       synchronized关键字同步代码块或者方法体

(2)       wait()方法和notify()方法

(3)       Lock锁

10、启动线程用的是run()方法还是start()方法

start()方法,run()方法是执行run()这个方法中的代码而不是启动线程。

12、 GC是什么

gc就是java提供的垃圾回收机制。

 

13、 servlet的生命周期

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

14、 java修饰符的作用域

 

项目讲解:课堂点名系统

项目概述:该项目使用jsp+servlet+jdbc+mysql设计而成,数据库设计主要分为四张表,管理员表,教师表,学生表,课程表组成。

 

权限设计:(在数据库表中添加一个判别字段用来判断是什么用户登录)

管理员拥有最高权限,可以对教师学生课程进行一系列的修改。

教师拥有对自身和学生点到次数修改的权限

学生拥有对自己个人信息查看的权限,以及修改自己的登录密码。

 

系统设计:(使用mvc设计模式)--MVC(模型层,视图层,控制器层)组成

模型层:使用javabean设计,与数据库中的表一一对应。

视图层和控制器层:使用jsp页面进行呈现,控制层直接使用jsp的内置对象进行和界面层的交互。

 

 

0 0
原创粉丝点击