1、字符流和字节流的区别,使用场景是什么,相关类有哪些

http://blog.csdn.net/zj8692286/article/details/12650731
2、线程安全的概念,实现线程安全的几种方法

基本概念:如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。

实现方法:

synchronized关键字:获得一个锁来防止其他线程在执行此操作的线程完成之前访问同一个方法;

volatile关键字:volatile只能保证多线程的内存可见性,不能保证多线程的执行有序性

基本原子数据类型:在java.util.concurrent.atomic包中提供

3、抽象类和接口的区别,使用场景

1.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。
2.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abstract的。
3.abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"is-a"关系,即父类和派生类在概念本质上应该是相同的;interface表示的是"like-a"关系,并不要求interface的实现者和interface定义在概念本质上是一致的, 实现者仅仅是实现了interface定义的契约而已。
4.实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。
5.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。
6.抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。
7.接口中的方法默认都是 public,abstract 类型的。

4、hash算法的实现原理,hashcode的实现原理

http://blog.csdn.net/zj8692286/article/details/12651497

5、error和exception的区别,RuntimeException和非RuntimeException的区别

http://blog.csdn.net/zdwzzu2006/article/details/6568600
6、继承与组合的区别,使用场景

http://blog.csdn.net/iloveyin/article/details/8096428
7、使用静态工厂方法的好处和坏处

http://blog.csdn.net/beidou321/article/details/6488646
8、列出几种排序算法,他们是时间复杂度是多少

http://blog.sina.com.cn/s/blog_771849d301010ta0.html
9、数据库设计原则、范式

1.第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值
2.第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
3.第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。

10、数据库常用的编码方式有哪几种

以mysql为例,常用的编码方式有utf8;gbk;gb2312;latin1,对应的Java中的编码为UTF-8;GBK;GB2312;ISO-8859-1;

11、http和https的区别

http是超文本传输协议,明文传输信息,https 则是具有安全性的SSL加密传输协议,要比http协议安全
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443

12、序列化的作用和应用场景

作用:为了保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来,Java提供这种“序列化”保存对象状态的机制。

使用场景:内存中的对象状态保存到一个文件中或者数据库中时候;用套接字在网络上传送对象的时候;通过RMI传输对象的时候。

13、spring的IOC、AOP的使用场景

http://blog.sina.com.cn/s/blog_624a352c0101fo9j.html
14、ajax是否能跨域请求,解决的办法

ajax不能跨域请求,由于同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的资源。解决方式有两种:1 采用JSONP,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问;2 iframe的方式,通过设置document.domain来实现。
15、解析xml的几种方法,他们的原理

1.DOM(Document Object Model)它把整个XML文档当成一个对象加载到内 存,不管文档有多大。它一般处理小文件
2.SAX(Simple API for XML)它的处理过程像流媒体。它不会把整个文档加载到内存,它是读一点处理一点。一般用它处理比较大的文件
3.JDOM包含了前两种方式
4.DOM4J也包含了前两种方式
其中DOM和SAX都是java的标准,也就是java本身就提供标准的API,不需要下载其他包,但是它的API都是一些底层的实现,不是很好用。所以有人在它们的基础上封装了一下,就有了DOM4j和JDOM。DOM4J性能最好,连SUN的JAXM也在用DOM4J.Hibernate也用DOM4J,DOM4J对Xpath也有很好的支持

16、内部跳转和外部跳转的区别,底层实现原理

http://blog.csdn.net/hjjk123/article/details/5311227

17、如果有和其他系统有接口调用,但其他系统还没开发完成,怎么进行单元测试

采用Mock测试,Mock对象也就是真实对象在调试期的替代品。什么时候需要Mock对象:

1.真实对象具有不可确定的行为(产生不可预测的结果,如股票的行情)
2.真实对象很难被创建(比如具体的web容器)
3.真实对象的某些行为很难触发(比如网络错误)
4.真实情况令程序的运行速度很慢
5.真实对象有用户界面
6.测试需要询问真实对象它是如何被调用的(比如测试可能需要验证某个回调函数是否被调用了)
7.真实对象实际上并不存在(当需要和其他开发小组,或者新的硬件系统打交道的时候,这是一个普遍的问题)

http://blog.csdn.net/chjttony/article/details/14522771

18、防止重复提交有哪几种方式

1.禁掉提交按钮。表单提交后使用Javascript使提交按钮disable。这种方法防止心急的用户多次点击按钮。但有个问题,如果客户端把Javascript给禁止掉,这种方法就无效了
2.在提交后执行页面重定向
3. 在session中存放一个特殊标志。当表单页面被请求时,生成一个特殊的字符标志串,存在session中,同时放在表单的隐藏域里。接受处理表单数据时,检查标识字串是否存在,并立即从session中删除它,然后正常处理数据。
如果发现表单提交里没有有效的标志串,这说明表单已经被提交过了,忽略这次提交。

19、数据库连接池的实现原理,请求怎么样去获取连接,关闭连接时,连接池是销毁连接还是回收连接

连接池在初始化的时候,生成多个可用的Connection存放在List中,当DAO获取连接时,关闭连接时,连接被回收

以上题目均收集自互联网,部分答案也来自互联网,版权均属于原作者

Java面试题和解答(二)的更多相关文章

  1. Java面试题和解答(五)

    1.在Java中Executor和Executors的区别? Executor是线程池的顶层接口,它的实现类如下图所示: Executors是一个类,提供了多个静态方法,用于生成不同类型的线程池,如下 ...

  2. Java面试题合集(二)

    接下来几篇文章准备系统整理一下有关Java的面试题,分为基础篇,javaweb篇,框架篇,数据库篇,多线程篇,并发篇,算法篇等等,陆续更新中.其他方面如前端后端等等的面试题也在整理中,都会有的. 注: ...

  3. 史上最全最新java面试题合集二(附答案)

    下面小编整理了本套java面试题全集,分享给大家,希望对大家的java学习和就业面试有所帮助. 51.类ExampleA继承Exception,类ExampleB继承ExampleA. 有如下代码片断 ...

  4. 经典Java面试题收集(二)

    经典的Java面试题(第二部分),这部分主要是与Java Web和Web Service相关的面试题. 96.阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于 ...

  5. Java笔试题解析(二)——2015届唯品会校招

    曾经总是看别人写的笔经面经.今天自己最终能够写自己亲身经历的一篇了 T-T. 前阵子去了唯品会的秋招宣讲会,华工场(如今才知道原来找家互联网公司工作的人好多).副总裁介绍了VIP的商业模式是逛街式的购 ...

  6. JAVA面试题和答案(二)

    本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的章节分为上下两篇,第一篇将要讨论面向对象编程和它的特点,关于Java和它的功能 ...

  7. Java面试题和解答(一)

    1.说说JVM原理?内存泄露与溢出区别,何时产生内存泄露? JVM原理 :http://www.cnblogs.com/jiayi/archive/2010/06/08/1753863.html 内存 ...

  8. Java面试题详解二:java中的关键字

    一,final1.被final修饰的类不可以被继承2.被final修饰的方法不可以被重写3.被final修饰的变量不可以被改变  重点就是第三句.被final修饰的变量不可以被改变,什么不可以被改变呢 ...

  9. 超详细的Java面试题总结(二)之Java基础知识篇

    多线程和Java虚拟机 创建线程有几种不同的方式?你喜欢哪一种?为什么? 继承Thread类 实现Runnable接口 应用程序可以使用Executor框架来创建线程池 实现Callable接口. 我 ...

随机推荐

  1. JavaScript入门学习笔记(表单验证)

    表单验证: 在数据被送到服务器之前对HTML表单中的输入数据进行验证,避免服务器频繁验证信息造成用户体验差. (1)表单数据是否为空 (2)输入的信息格式是否正确 (3)输入数据的类型是否正确 必填( ...

  2. 末学者笔记--Linux中RAID磁盘阵列及centos7启动过程

    <一>RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意. 磁盘阵列是由很多价格较便 ...

  3. spring boot vuejs

    项目介绍 Spring Boot 2.0 + VueJs 2.0 开发项目示例 GitHub: https://github.com/fqybzhangji/spring-boot-vue 码云: h ...

  4. python——常见排序算法解析

    算法是程序员的灵魂. 下面的博文是我整理的感觉还不错的算法实现 原理的理解是最重要的,我会常回来看看,并坚持每天刷leetcode 本篇主要实现九(八)大排序算法,分别是冒泡排序,插入排序,选择排序, ...

  5. nginx 配置laravel框架域名配置

    server { listen 80; server_name admin.meiquick.local.com; #charset koi8-r; # access_log /var/log/ngi ...

  6. OI/ACM 刷题网站 人气OJ简介

         SPOJ简介 SPOJ是波兰最为出色的Online Judge之一,界面和谐,题目类型也非常丰富,适合有一定基础的选手练习,对高手而言也是个提高能力的良好平台. SPOJ题目分类:class ...

  7. 【安全性测试】一个简单地绕前端暴XSS漏洞

    在appscan暴出一个关于跨站点脚本编制的漏洞,但是appscan并不能完整地显示该漏洞.于是,工具是否出现误报,需要通过自己手工验证. 然后,我们需要找到目标参数的包并分析是从哪个步骤提交给服务器 ...

  8. python学习:输入中文

    输入中文 python2 输入中文:#!-*- coding:utf-8 -*-(或者#coding:utf-8)例如: msg = u"我爱北京天安门!" print msg p ...

  9. HTML5_新标签

    HTML5 是定义 HTML 标准的最新版本. 是一个新版本的 HTML 语言,具有新的元素,属性,行为, 是一个技术及,允许更多样化和强大的网站和应用程序 优势: 跨平台: 通吃 MAC PC Li ...

  10. css页面滚动触发动画

    参考页面:http://www.jq22.com/jquery-info1384