1、使用什么方式进行文件上传?

一般使用FormData对象,ajax异步上传。

为什么使用?

1、FormData对象
Mozilla上的介绍的,XMLHttpRequest Level 2添加了一个新的接口FormData.利用FormData对象,我们可以通过方法来异步的提交这个”表单”.比起普通的ajax,使用FormData的最大优点就是我们可以异步上传一个二进制文件.

2、ajax方式(关键是设置:processData 和 contentType )

告诉jQuery不要去处理请求的数据,用于对data参数进行序列化处理 这里必须false

processData:false

// 告诉jQuery不要去设置Content-Type请求头

contentType : false, //必须

2、 Spring IoC

IoC (控制反转)不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。

DI(依赖注入)

 2、针对与Spring AOP理解

AOP面向切面,切面将那些与业务无关,却被业务模块共同调用的逻辑提取并封装起来,减少了系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。

实现策略JAVA SE动态代理、CGLib

代理模式:代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,

代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等

代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。

静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。
动态代理:在程序运行时,运用反射机制动态创建而成。

spring aop通知(advice)分成五类: 
前置通知[Before advice]

在连接点前面执行,前置通知不会影响连接点的执行,除非此处抛出异常。 
正常返回通知[After returning advice]

在连接点正常执行完成后执行,如果连接点抛出异常,则不会执行。 
异常返回通知[After throwing advice]

在连接点抛出异常后执行。 
返回通知[After (finally) advice]

在连接点执行完成后执行,不管是正常执行完成,还是抛出异常,都会执行返回通知中的内容。 
环绕通知[Around advice]

环绕通知围绕在连接点前后,比如一个方法调用的前后。这是最强大的通知类型,能在方法调用前后自定义一些操作。环绕通知还需要负责决定是继续处理join point(调用ProceedingJoinPoint的proceed方法)还是中断执行。

3、多线程

一个程序至少有一个进程一个进程至少有一个线程,进程是程序的基本单位,线程是进程的一个实体

是共享内存资源,减少切换次数,提高效率。

多线程,多个线程同时执行多个任务

4、Spring MVC

SpringMvc是spring的一个模块 基于MVC的一个框架 无需中间整合层来整合

什么是MVC ?mvc在b/s下的应用:

MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。

它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,

在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。

首先请求发送request请求到C(control 接收用户请求响应用户) 然后控制器到M模型(pojo、action、service、dao)层处理

处理结果完了返回控制器 控制器要经过视图渲染  最后返回终端(response)

5、Redis基本数据类型:

String(字符串)

Hash(哈希)

List(列表)

Set(集合)

Zset(有序集合)

6、对于前后端分离的理解

针对于业务逻辑来划分

所有针对业务逻辑去实现的部分是后端,用来展现数据和用户交互的部分属于前端。

7、JDK和JRE的区别

JDK是Java的开发工具,它不仅提供了Java程序运行所需的JRE,还提供了一系列的编译,运行等工具,如javac,java,javaw等。

JRE只是Java程序的运行环境,它最核心的内容就是JVM(Java虚拟机)及核心类库。

8、Java数据类型

(2)Java数据类型在内存中的存储:

1)基本数据类型的存储原理:所有的简单数据类型不存在“引用”的概念,基本数据类型都是直接存储在内存中的内存栈上的,

数据本身的值就是存储在栈空间里面,而Java语言里面八种数据类型是这种存储模型;

2)引用类型的存储原理:引用类型继承于Object类(也是引用类型)都是按照Java里面存储对象的内存模型来进行数据存储的,

使用Java内存堆和内存栈来进行这种类型的数据存储,简单地讲,“引用”是存储在有序的内存栈上的,而对象本身的值存储在内存堆上的;

区别:基本数据类型和引用类型的区别主要在于基本数据类型是分配在栈上的,而引用类型是分配在堆上的(需要java中的栈、堆概念),

9、Java中final关键字的作用

final关键字可以用于三个地方。用于修饰类、类属性和类方法。

被final关键字修饰的类不能被继承,被final关键字修饰的类属性和类方法不能被覆盖(重写);

对于被final关键字修饰的类属性而言,子类就不能给他重新赋值了,如果重新赋值,会报错:

10、GET和POST的区别

HTTP(超文本传输协议)是什么?HTTP是基于TCP(传输控制协议)IP(互联网协议)的关于数据如何在万维网中如何通信的协议。

HTTP只是个行为准则,而TCP才是GET和POST怎么实现的基本。

get和post底层都是TCP/IP,所以get和post都是TCP链接

GET传输渠道:method为GET,把数据存放到URL。进行传输。他的优点方便记录,缺点不太安全

POST传输渠道:method为POST,数据会在request body中。

大小限制:(大多数)浏览器通常都会限制url长度在2K个字节,post就比较大了。

GET和POST还有一个区别,简单的说:GET产生一个TCP数据包;POST产生两个TCP数据包

长的说:

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

11、简单的解释一下垃圾回收

Java 垃圾回收机制最基本的做法是分代回收。内存中的区域被划分成不同的世代,对象根据其存活的时间被保存在对应世代的区域中。

一般的实现是划分成3个世代:年轻、年老和永久。内存的分配是发生在年轻世代中的。当一个对象存活时间足够长的时候,它就会被复制到年老世代中。

对于不同的世代可以使用不同的垃圾回收算法。

垃圾回收算法

1、标记-清楚

2、标记整理

3、标记复制

4、分代回收

Java面试题准备(掌握)的更多相关文章

  1. java面试题及答案(转载)

    JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...

  2. 115个Java面试题和答案——终极列表(下)

    第一篇讨论了面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,本章主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servle ...

  3. Java面试题(全)

    JAVA部分 什么是反射机制?反射机制应用(Struts中反射机制的应用) 答:运行状态中,对于任意一个类,都可以知道它的所有属性和方法,对于任意一个对象都可以调用它的任意一个方法,这种动态获取信息以 ...

  4. Java面试题大全(四)

    JAVA代码查错 1. abstract class Name { private String name; public abstract boolean isStupidName(String n ...

  5. 大公司的Java面试题集

    找工作要面试,有面试就有对付面试的办法.以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及其它大小公司. 面试 ...

  6. 收集了50道基础的java面试题

    下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最 ...

  7. Java笔试题解答和部分面试题

    面试类  银行类的问题 问题一:在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? HashMap本身没有什么问题,有没有问题取决于你是如何使用它的.比如,你 ...

  8. 转:Java面试题集(51-70) http://blog.csdn.net/jackfrued/article/details/17403101

    Java面试题集(51-70) Java程序员面试题集(51-70) http://blog.csdn.net/jackfrued/article/details/17403101 摘要:这一部分主要 ...

  9. JAVA面试题集之基础知识

                           JAVA面试题集之基础知识 基础知识:  1.C 或Java中的异常处理机制的简单原理和应用. 当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就 ...

  10. [原]Java面试题-将字符串中数字提取出来排序后输出

    [Title][原]Java面试题-将字符串中数字提取出来排序后输出 [Date]2013-09-15 [Abstract]很简单的面试题,要求现场在纸上写出来. [Keywords]面试.Java. ...

随机推荐

  1. CodeForcs 1169B Good Triple

    CodeForcs 1169B Good Triple 题目链接:http://codeforces.com/problemset/problem/1169/B 题目描述:给你m对不超过n的数字,找出 ...

  2. 自定义控件之Canvas图形绘制基础练习-青春痘笑脸^_^

    对于自定义控件的意义不言而喻,所以对它的深入研究是很有必要的,前些年写过几篇关于UI效果的学习过程,但是中途比较懒一直就停滞了,而对于实际工作还是面试来说系统深入的了解自定义控件那是很有必要的,所以接 ...

  3. Python&Selenium 数据驱动【unittest+ddt】

    一.摘要 本博文将介绍Python和Selenium做自动化测试的时候,基于unittest框架,借助ddt实现数据驱动 二.测试代码 # encoding = utf-8 ""& ...

  4. JVM命令jinfo

          jinfo也是jvm中参与的一个命令,可以查看运行中jvm的全部参数,还可以设置部分参数.   格式      jinfo [ option ] pid      jinfo [ opti ...

  5. rac 关于RACScheduler的一点学习

    RACScheduler  信号调度器,是一个线性执行队列,rac中的信号可以在RACScheduler上执行任务.发送结果,底层用GCD封装的. rac中提供生成线程的几个方法: 1:schedul ...

  6. 如何在网页标题栏title加入logo(icon)图标?

    打开某一个网页会在浏览器的标签栏处显示该网页的标题和图标,当网页被添加到收藏夹或者书签中时也会出现网页的图标,怎么在网页title左边显示网页的logo图标呢? 方法一(被动式): 制作一个ico格式 ...

  7. js中回调函数(callback)的一些理解

    前言 我个人在学习Node.js相关知识时遇到了回调函数这个概念,虽然之前已经在c,c++等编程语言中用到过它,但还一直未对其机制有深入了解,这次就来好好谈一下它. 概念理解 百度对它的解释是回调函数 ...

  8. Codeforces Round #587 (Div. 3) C. White Sheet

    链接: https://codeforces.com/contest/1216/problem/C 题意: There is a white sheet of paper lying on a rec ...

  9. Luogu P2567 [SCOI2010]幸运数字 容斥+脑子

    双倍经验:BZOJ 2393 Cirno的完美算数教室 做法:先把$[1,r]$中所有的幸运数字筛出来,然后用这些幸运数字来筛$[l,r]$中的近似幸运号码: 剪枝:当一个幸运数字$a[i]$是另一个 ...

  10. wnmp安装配置的坑

    1.下载安装nginx: nginx官网下载地址->下载nginx 下载任意版本.我下载的是1.13.12版本,解压到C:\wnmp\nginx(自己决定目录),运行nginx.exe. 访问h ...