JAVA面试
BoyWorldSkills
IT道路上前进的足迹
展开
-
九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试八十题
九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试八十题引言 自发表上一篇文章至今(事实上,上篇文章更新了近3个月之久),blog已经停了3个多月,而在那之前,自开博以来的21个月每月都不曾断过。正如上一篇文章支持向量机通俗导论(理解SVM的三层境界)末尾所述:”额,blog许久未有更新了,因为最近实在忙,无暇顾及blog。“与此同时,工作之余,也一直在转载 2015-07-07 17:53:59 · 3463 阅读 · 0 评论 -
jvm类加载-全盘负责和双亲委派机制
“全盘负责”是指当一个ClassLoader装载一个类时,除非显示地使用另一个ClassLoader,则该类所依赖及引用的类也由这个CladdLoader载入。例如,系统类加载器AppClassLoader加载入口类(含有main方法的类)时,会把main方法所依赖的类及引用的类也载入,依此类推。“全盘负责”机制也可称为当前类加载器负责机制。显然,入口类所依赖的类及引用的类的当前类加载器就是入原创 2015-07-14 10:32:28 · 1683 阅读 · 0 评论 -
SSH框架
首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活、易于扩展的多层Web应用程序。 集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。 Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制转载 2015-07-15 17:10:51 · 891 阅读 · 0 评论 -
面试试题总结
1.hashmap、concurrenthashmap底层实现和区别从ConcurrentHashMap代码中可以看出,它引入了一个“分段锁”的概念,具体可以理解为把一个大的Map拆分成N个小的HashTable,根据key.hashCode()来决定把key放到哪个HashTable中。在ConcurrentHashMap中,就是把Map分成了N个段Segment,put和get的时候,都是原创 2015-07-16 22:45:38 · 409 阅读 · 0 评论 -
SpringMVC框架介绍
SpringMVC框架介绍 1) Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Sprin转载 2015-07-17 11:11:29 · 433 阅读 · 0 评论 -
优先级反转问题及解决方法
(1)什么是优先级反转简单从字面上来说,就是低优先级的任务先于高优先级的任务执行了,优先级搞反了。那在什么情况下会生这种情况呢?假设三个任务准备执行,A,B,C,优先级依次是A>B>C;首先:C处于运行状态,获得CPU正在执行,同时占有了某种资源;其次:A进入就绪状态,因为优先级比C高,所以获得CPU,A转为运行状态;C进入就绪状态;第三:执行过原创 2015-08-28 17:48:53 · 9622 阅读 · 0 评论 -
SQL Select语句完整的执行顺序
SQL Select语句完整的执行顺序: 1、from子句组装来自不同数据源的数据;2、where子句基于指定的条件对记录行进行筛选;3、group by子句将数据划分为多个分组;4、使用聚集函数进行计算;5、使用having子句筛选分组;6、计算所有的表达式;7、select 的字段;8、使用order by对结果集进行排序。SQL语言不同于其他编程语言的最明显特征是原创 2015-08-28 18:07:22 · 444 阅读 · 0 评论 -
String a=new String("b","c")会创建几个对象?
String a=new String("b","c")会创建几个对象? String a=new String("b"+"c")又会创建几个?为什么? 1.String a=new String("b"+"c"); b一个 c一个 b+c一个 a一个 总共四个1、Java中New出的对象则始终被JVM存放在堆中,创建的字串常量则始转载 2015-07-22 10:57:45 · 5300 阅读 · 0 评论 -
数据库三级模式介绍
我们首先,谈谈模式的概念,模式为某种事物的标准形式或使人可以照着做的标准样式。这个词用在数据库中,它是由英文的Schema翻译过来的。在数据库管理系统中,其模式是指数据模式(data schema),是数据抽象的结果表示,如用关系模型抽象学生的基本信息表示为:学生(学号,姓名,性别,出生年月,入校年月,专业编号),此表示即为一种数据模式。 在数据库管理系统中,将数据按三层结构来转载 2015-08-29 12:03:20 · 5469 阅读 · 1 评论 -
单例模式的常见应用场景
单例模式(Singleton)也叫单态模式,是设计模式中最为简单的一种模式,甚至有些模式大师都不称其为模式,称其为一种实现技巧,因为设计模式讲究对象之间的关系的抽象,而单例模式只有自己一个对象,也因此有些设计大师并把把其称为设计模式之一。这里又不具体讲如何实现单例模式和介绍其原理(因为这方便的已经有太多的好文章介绍了),如果对单例模式不了解的可以先看下:http://terrylee.cn转载 2015-07-23 15:45:02 · 593 阅读 · 0 评论 -
数据库连接池 单例模式的实现
Java应用程序访问数据库的基本原理 在Java语言中,JDBC(Java DataBase Connection)是应用程序与数据库沟通的桥梁, 即Java语言通过JDBC技术访问数据库。JDBC是一种“开放”的方案,它为数据库应用开发人员﹑数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。JDBC提供两种API,转载 2015-07-23 15:47:21 · 14875 阅读 · 1 评论 -
Simple Factory 简单工厂模式(静态工厂)
基本概念:1) Simple Factory模式属于创建型模式,2) 简单工厂模式是由一个工厂(注意是一个!)对象决定创建出哪一种产品类的实例(例如你到肯德基说你要鸡腿,要薯条,要饮料还是,,,这时肯德基是一个工厂,客户端只需要点明自己要什么就行)3)实现方式的实质:由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例转载 2015-07-23 16:13:22 · 456 阅读 · 0 评论 -
Java 类的卸载机制
类的生命周期 当Sample类被加载、连接和初始化后,它的生命周期就开始了。 当代表Sample类的Class对象不再被引用,即不可触及时,Class对象就会结束生命周期,Sample类在方法区内的数据也会被卸载,从而结束Sample类的生命周期。 由此可见,一个类何时结束生命周期,取决于代表它的Class对象何时结束生命周期。 引用关系 加转载 2015-07-24 16:12:29 · 638 阅读 · 0 评论 -
深入理解JVM垃圾回收机制
Java语言出来之前,大家都在拼命的写C或者C++的程序,而此时存在一个很大的矛盾,C++等语言创建对象要不断的去开辟空间,不用的时候有需要不断的去释放控件,既要写构造函数,又要写析构函数,很多时候都在重复的allocated,然后不停的~析构。于是,有人就提出,能不能写一段程序在实现这块功能,每次创建,释放控件的时候复用这段代码,而无需重复的书写呢?1960年 基于MIT的Lisp首先提转载 2015-07-13 15:02:24 · 421 阅读 · 0 评论 -
JVM-verbose参数详解
java-verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息。 1.java-verbose:class 在程序运行的时候有多少类被加载!你可以用verbose:class来监视, 在命令行输入java -verbose:class XXX (XXX为程序名),你会在控制台看到加载的类的情况。verbose和verbose:class含义相同,输转载 2015-07-13 14:52:34 · 775 阅读 · 0 评论 -
阿里面试题目总结
1、StringBuffer是线程安全的,StringBuilder不是线程安全的。2、数据在各个网络层之间是怎么传输的?数据在各层之间的单位都是不一样的,在物理层数据的单位称为比特(bit);在数据链路层,数据的单位称为帧(frame);在网络层,数据的单位称为数据包(packet);传输层,数据的单位称为数据段(segment)。 Hashtable、HashMapHa转载 2015-07-07 17:50:38 · 494 阅读 · 0 评论 -
GET 和 POST (HTTP请求报文和HTTP响应报文)
HTTP请求报文和HTTP响应报文HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。HTTP请求报文一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。or<request-line><转载 2015-07-09 14:02:19 · 2153 阅读 · 0 评论 -
Session的工作原理
Session的工作原理一、术语session 在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。 session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。有时候我们可转载 2015-07-08 14:54:29 · 665 阅读 · 0 评论 -
Hibernate面试知识点总结
Hibernate是目前最流行的开源对象关系映射(ORM)框架。Hibernate采用低侵入式的设计,也即完全采用普通的Java对象(POJO),而不必继承Hibernate的某个基类,或实现Hibernate的某个接口。Hibernate是面向对象的程序设计语言和关系数据库之间的桥梁,Hibernate允许程序开发者采用面向对象的方式来操作关系数据库。因为我们知道hibernate它转载 2015-07-09 17:33:03 · 515 阅读 · 0 评论 -
PreparedStatement与Statement区别
一、PreparedStatement的预编译机制,使其与Statement有着显著的区别 (1)PrepareStatement语句,在经过编译器编译后,被缓存下来,下次调用相同的预编译语句时,就不需要再次编译,只要将参数直接传入编译过的语句执行代码中就能够执行。这并是说只有一个Connection中多次执行的预编译语句被缓存,而是对于整个DB中,只要预编译的语句语法和缓存转载 2015-07-09 16:34:40 · 530 阅读 · 0 评论 -
阿里巴巴常考面试题及汇总答案
一、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?答: 1、String是字符串常量,StringBuffer和StringBuilder都是字符串变量。后两者的字符内容可变,而前者创建后内容不可变。2、String不可变是因为在JDK中String类被声明为一个final类。3、StringBuffe转载 2015-07-08 15:50:15 · 612 阅读 · 0 评论 -
常见排序算法
排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进行整理便于理解记忆显得很重要。每种算法都有它特定的使用场合,很难通用。因此,我们很有必要对所有常见的排序算法进行归纳。 我不喜欢死记硬背,我更偏向于弄清来龙去脉,理解性地记忆。比如下面这张图,我们将围绕这张图来思考几个问题。 上面的这张图来自一个PPT。它概括了数据结构中的所有常见转载 2015-07-10 14:07:23 · 377 阅读 · 0 评论 -
TCP协议中的三次握手和四次挥手
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:转载 2015-07-10 14:46:40 · 404 阅读 · 0 评论 -
阿里负责人揭秘面试潜规则
阿里巴巴校招负责人揭秘面试中那些你应该知道的“潜规则”最近负责了公司招聘,发现校园招聘这种事情,真是一个奇葩的工作。能做好校园招聘的人,一定是一个矛盾体。这个人一定是思维缜密,因为流程在这里特别重要,宣讲会、笔试、面试,需要不能出乱子;这个人还需要有创新意识,做好了宣讲会、笔试面试,也就是中规中矩,没啥特色,如果不弄点有新意的东东出来,也很难找到最优秀的人才。有人说,这个不转载 2015-07-12 22:21:36 · 655 阅读 · 0 评论 -
深入JVM之类加载、类加载器、双亲委派机制与常见问题
一.概述定义:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型。类加载和连接的过程都是在运行期间完成的。二. 类的加载方式1):本地编译好的class中直接加载2):网络加载:java.net.URLClassLoader可以加载url指定的类3转载 2015-07-09 15:37:47 · 488 阅读 · 0 评论 -
FTP工作原理
1)FTP服务器运行FTPd守护进程,等待用户的FTP请求。 2)用户运行FTP命令,请求FTP服务器为其服务。例:FTP 10.10.16.2533)FTPd守护进程收到用户的FTP请求后,派生出子进程FTP与用户进程FTP交互,建立文件传输控制连接,使用TCP端口21。 4)用户输入FTP子命令,服务器接收子命令,如果命令正确,双方各派生一个数据传输进程F原创 2015-07-13 09:48:22 · 616 阅读 · 0 评论 -
EJB
EJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序,类似微软的.com技术。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB (Enterprise JavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。 在J2EE里,Enterprise Java Bean原创 2015-07-12 21:47:58 · 232 阅读 · 0 评论 -
为什么Java中的String设计成不可变的?
答案一:最流行的Java面试题之一就是:什么是不可变对象(immutable object),不可变对象有什么好处,在什么情况下应该用,或者更具体一些,Java的String类为什么要设成immutable类型?不可变对象,顾名思义就是创建后不可以改变的对象,典型的例子就是Java中的String类。 代码如下:String s = "ABC"; s.toLowerC转载 2015-07-24 23:14:59 · 484 阅读 · 0 评论