关于java基础面试题整理

怎么理解敏捷开发

敏捷开发以用户的需求进化为核心,采用迭代,循序渐进的方法进行软件开发。

多态

什么是多态:同一操作用于不同对象,可以有不同的解释,产生不同执行结果。

为什么要用多态:为了使代码能够合理的重复使用。

多态用于什么地方:用在方法的参数和方法的返回类型中。

Markdown

可以使用普通文本编译器编写的标记语言

4.左连接右连接

左连接:left join(连接左边所有的表) 右连接:right join(连接右边所有的表) 内连接 inner join(关联两个表中字段相符的记录)

解释切面

**AOP 容器存放共有功能实现的普通java类 , 通过配置文件识别切面 **

Post和get的区别,哪个更好一点?

get参数url可见,post参数url不可见
get通过拼接url进行传递参数,post通过body体传递参数
get请求可以缓存 post请求不可以缓存
get有长度限制 post无长度限制
post 更安全

Sql语句的优化,尽量别用哪些关键字?

**Sql语句尽量都用大写字母出现
**

Delete和另一个删除表的,有什么区别?

Delete在java后台删除,表在数据库中删除,一个是删除一行,一个是删除所有

Ajax原理

在不需要重新刷新页面的情况下,Ajax 通过异步请求加载后台数据,并在网页上呈现出来。(同步异步)

数据库的对应关系

一对一
多对多
多对一

多对多的表结构设计

Primary key

HashMap工作原理

HashMap使用Hashing工作原理,使用put、get获取数据

Mvc是什么?

是模型 视图 控制器的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与页面显示分离的方法来组织代码,减少编码时间

Spring Mvc处理流程

用户发送请求值前端控制器DIspatcherServlet
DIspatcherServlet收到请求调用HandlerMapping处理器 映射器,处理器映射器根据请求url找到具体的处理器,生成处理器及处理器拦截器(如果有则生成)一并返回给DispatcherServlet.

如何从一个字符串中把非文字分离出来?

.split

Cookie和session的区别

存放位置不同,cookie存放在浏览器中,session存放在服务器中,cookie不够安全,session会在一定时间内保存到服务器上,session消耗性能,cookie保存的数据不能超过4k,浏览器最多保存20个cookie,而session存储服务端,浏览器对其没有限制

主键和外键的作用?

主键是对表的约束,保证数据的唯一性
外键是建立表与表之间的联系

其他索引lock和线程锁优势

索引方便查找数据,lock锁可以使程序先运行

进程和线程的区别

进程是操作系统分配资源的最小单元
线程是操作系统调度的最小单元

Sql语句,如何实现数据库查询

select 查询内容 from 表名

Sql查询如何优化

1.选取最优字段
2.联合查询union(代替手动建临时表)
3.使用连接join(左连接右连接内连接)查询
4.事务(要么都成功 要么都失败)
5.锁定表(其他数据无法访问)
6.外键(关联主表)
7.索引(提高数据库速度)

Spring概念是什么

**1.面向切面、开源、松耦合、一站式轻量级框架、控制反转
**

什么是控制反转

**
1.控制反转是由IOC和AOP组成
IOC(控制反转)将控制对象创建及销毁过程
AOP(依赖注入)将对象的控制权交给IOC容器**

IOCAOP 的三个约定

1.将Bean交给IOC容器管理
2.被依赖的Bean通过构造执行注入
3.被依赖的Bean需要优先创建

IOC好处

**1.所有依赖关系被统一管理
2.每个类只需要关注自己的业务逻辑
3.修改依赖关系变得简单
**

HashMap和Hashtable的区别

**1.HashMap可以有null键值对,table不能
2.HashTable比HashMap更安全(有sychronized同步锁)
3.在单线程中,table因为同步锁原因比map速度更慢。
**

JS如何获取文本域内容

**1.var name = document.getElementById("name").value; alert(name);
**

如何实现JS刷新跳码

**
1<meta http-equiv="refresh" content="1">**

验证码怎么实现的?

1. 在xml中加入servlet,java中随机生成字符串,
2.将字符串存入session中生成图片,jsp中加入验证码
3.controller中获取session验证码并实现

软件的生命周期

1.问题定义及规划
2.需求分析
3.软件设计开发
4.程序编码
5.软件测试
6.运行维护

Tomcat怎么部署项目?

1.部署解包的webapp目录。
2.打包war文件
3.Manager Web应用程序

Mybatis怎么使用?

1.导入mabatis的jar包
2.使用XML配置mabatis,创建SqlSessionFactory

Mybatis常用标签。

**1.增删改查
2.控制动态Sql(if 、 foreach 、choose)
3.格式化输出(where、set、trim)
4.配置关联关系(collection、association)
5.定义常量及引用(sql、include)
**

AOP

面向切面编程
1.通知(Advice)
2.连接点(JoinPoint)
3.切入点(Pointcut)
4.切面(ASpect)
5.引入(Introduction)
6.目标(Target)
7.代理(Proxy)
8.织入(Weaving)

Static理解

1.修饰成员变量和成员方法
2.静态代码块
3.修饰类(内部类)
4.静态导包

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值