首页 》职业素养课 > JAVA面试技巧 >

java基础面试(一)

发表日期:2019年09月25日 文章编辑:IT实战

1、 继承接口、继承类的关键字分别是:

 

答:extends 、extends

 

2、 HTML中的form表单元素有

 

<input type="text">、<input type="radio">

<input type="checkbox">、<input type="submit">

<input type="password" ><input type="checkbox" >

<select name="cars">

<option value="volvo">Volvo</option>

<option value="saab">Saab</option>

</select>

<p>

This example cannot be edited

</p>

<textarea rows="10" cols="30">

 

3、 在action中如何获取request对象

 

答:

1)ActionContext context = ActionContext.getContext();

Map params = context.getParameters();

String username = (String) params.get("username");

 

2)ServletActionContext 中取

 

HttpServletRequest request = ServletActionContext. getRequest();

 

4、 Oracle字段类型CLOB和BLOB的区别是:

 

答:BLOB和CLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的

 

5、 java中,super、static关键字的功能和用法?static修饰的类的属性和public修饰的类的属性有什么区别?

 

 

答:构造器和方法,都用关键字super指向超类,但是用的方法不一样.方法用这个关键字去执行被重载的超类中的方法

static 可以修饰 属性 方法 内部类 自由块

static 不能修饰局部变量

static用来修饰类的属性状态,他可以不产生对象就可以使用

static 的经典用法 单态设计模式

static 修饰的属性可以直接通过类名.属性名调用,而public 修饰的需要先new ,创建类对象,通过对象.属性调用

static 修饰的属性是类对象,所有的对象均可以使用,但public修饰的属性是属于对象本身的

 

6、 描述下对struts2的理解

 

答:Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。核心控制器FilterDispatcherStruts 2框架的基础,包含了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件是需要用户来自己实现的。用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。 Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同,所以说Struts 2WebWork的升级版本。

基本简要流程如下:

1、客户端浏览器发出HTTP请求。

2、根据web.xml配置,该请求被FilterDispatcher接收。

3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton

4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。

5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。

6、返回HTTP响应到客户端浏览器

 

7、 JDBC中有哪几种Statement对象,各有什么作用?

 

答:

1)、Statement对象用于执行不带参数的简单SQL语句

2)、Prepared Statement 对象用于执行预编译SQL语句

3)、Callable Statement对象用于执行对存储过程的调用

 

8、 简述JAVA中JPA的概念和意义

 

答:JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

 

9、 简述spring框架的功能

 

答:Spring是一个开源的控制反转(Inversion of ControlIoC)和面向切面(AOP)的容器框架。它的主要目的是使现有技术更加易用,推荐编码最佳实现,从而简化企业开发

Spring 目前已经发展为一个功能丰富而易用的集成框架,其核心是一个完整的控制反转(IoC)的轻量级容器,用户可以使用他建立自己的应用程序。在容器上,Spring提供了大量实用的服务。将很多高质量的开源项目集成到统一的框架上

Spring致力于Java EE 应用的各种解决方案,而不是仅仅专注于某一层面的方案。可以说,Spring是企业应用开发的“一站式”选择,Spring贯穿表示层、业务层、持久层。然而,Spring并不想取代那些已有的框架,而以高度的开发性与他们无缝整合

 

10、 Hibernate中有几种实体类之间的关系?

 

答:1)、Hibernate多对一关联映射:就是在“多”的一端加外键,指向“一”的一端。

  比如多个学生对应一个班级,多个用户对应一个级别等等,都是多对一关系。

2)、Hibernate单向的一对一主键关联映射:就是让两个实体的主键一样,就不需要加入多余的字段了。

  比如一个学生对应一个身份证号,一个学生对应一条户口信息等等,都是一对一关联映射

3)、Hibernate双向一对一关联映射:有些需求要求从一端可以查到另一端,从另一端又可以查到这一端,就需要双向的关联映射。

  比如说,想要根据人的信息查到他的户口信息,也想根据户口信息查到这是哪个人的信息等

4)、单向一对一唯一外键关联映射:一对一主键关联不好维护,用外键关联对象比较好。原理:多对一的特殊情况。

  比如说还是Person和IdCard的例子

5)、双向一对一唯一外键关联:如果有需求要求的情况下,也可以建立双向的外键关联。

6)、Hibernate单向一对多关联映射:让一的一端维护关系,和多对一的映射原理是一样的,都是在多的一端加入一个外键指向一的一端;

 

11、 SQL语句中,关联查询join有几种?他们之间有什么区别?

 

答:1) 、inner join 内连接是最常见的一种连接,它也被称为普通连接,只连接匹配的行(仅对满足连接条件的CROSS中的列)。它又分为等值连接(连接条件运算符为"=")和不等值连接(连接条件运算符不为"=",例如between...and)。

2)、left join 返回左表的全部行和右表满足ON条件的行,如果左表的行在右表中没有匹配,那么这一行右表中对应数据用NULL代替

3)、 right join 返回右表的全部行和左表满足ON条件的行,如果右表的行在左表中没有匹配,那么这一行左表中对应数据用NULL代替

4)、full join 会从左表 和右表 那里返回所有的行。如果其中一个表的数据行在另一个表中没有匹配的行,那么对面的数据用NULL代替

5)、cross join对两个表执行笛卡尔乘积。它为左表行和右表行的每种可能的组合返回一行。返回(左表行数*右表行数)行的表。

6)、Natural join自然连接是一种特殊的等值连接,在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列

 

12、 假设htm页面上有一个文本框IDtxt,当焦点离开文本框时验证内容:为空或为数字时不提示,非数字时提示“请输入数字”,并清空文本框的内容,用html代码和js或者jquery写一下

 

答:$("#txt").blur(function(){

 

if(isNaN($('#txt').val()){

 

alert("请输入数字");

 

    $("#txt").value="";

  }

});

 

13、 写一个java函数(一个String参数,返回值是int,实现计算器功能,参数是09之间的整数加减运算,例如当输入参数为“8-6+9-5”时返回6

 

答:题如果引入一个第三方jar包的话,是这样

String exp="2+(7-5)*3.14159*x+sin(0)";

Scope scope=Scope.create();

Expression parsiiExpr=Parser.parse(exp);

Variable var=scope.getVariable("x");

var.setValue(X_VALUE);

double result=parsiiExpr.evaluate();

Sytem.out.println(result);

 

14、 假设有两个表,学会表student(id number,name varchar2(20),class_id number);班级表class(id number,name varchar2(20),stu_num number)Student表的class_id是外键,对应class表的id字段,编写一个ORACLEupdate语句,统计每个班级的人数,更新到班级表classstu_num

 

答: update class a

set stu_num=(select COUNT(*) from Student where class_id=a.id);

相关新闻

济南华育学员:没有华育就没有我们的今天!

济南华育快讯:近日,刚刚就业不久的17-0910Java班学员代表李鑫铭与同学孔杰、孙磊、杨林一起来到济南华育

2018年01月05日

济南华育705网络营销班毕业啦

济南学网络营销课程 就到济南华育IT

2018年01月08日

IT行业,哪些岗位可以拿高薪

IT行业,哪些岗位可以拿高薪在职场毫无方向的时候,你可能会有这样的疑问:干哪行好呢?如果学计算机在你考虑的范围内,将来想进入软件和互

2019年09月25日

零基础如何学好大数据?

零基础如何学好大数据? 大数据是对海量数据进行存储、计算、统计、分析处理的一系列处理手段,处理的数据量通常是TB级,甚至是PB或EB级的

2019年09月24日

非计算机专业能学JAVA软件开发吗?

非计算机专业能学JAVA软件开发吗? 非计算机本专业是完全可以学的,java语言本身是很简单,不需要数学基础,甚至不需要什么计算机基础。 

2019年09月23日

2019,跳槽转行适合学习什么技术?

2019,跳槽转行适合学习什么技术?  近年来,随着信息技术的发展,阿里巴巴、百度、腾讯等IT企业如雨后春笋,拔地而起,马云、李彦宏、马

2019年09月21日

热点推荐