Java面试
文章平均质量分 94
猴哥_IT小菜鸟
三分天注定七分靠打拼 爱拼才会赢
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Hashtable 和 HashMap之间的区别
Hashtable是继承了Dictionary,是线程安全的。HashMap实现了Map接口,不是线程安全的。HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。HashMap允许将null作为一个entry的key或者value,而Hashtab转载 2017-01-23 16:17:07 · 261 阅读 · 0 评论 -
网站访问量和数据量需要都很大,如何解决?
访问量很大?数据量很大?访问量和数据量需要都很大?核心是通过分布式系统解决前面提到的三个问题转载 2017-01-23 16:10:11 · 730 阅读 · 0 评论 -
Oracle数据库默认使用的是乐观锁还是悲观锁?
Oracle数据库默认使用的是乐观锁。任何一个以UPDATE…SET开始并且不是以SELECT…FOR UPDATE进行操作的命令就是一个乐观锁的例子。转载 2017-01-23 16:11:52 · 1636 阅读 · 0 评论 -
一个网站有很大的访问量,有什么办法来解决?
主要从架构层面解决:1,使用服务器集群,如tomcat集群;2,使用缓存,如memcache, cassandra分布式缓存;3,使用数据库集群,如MySQL集群, Oracle数据库集群转载 2017-01-23 16:12:46 · 568 阅读 · 0 评论 -
Oracle的悲观锁和乐观锁
为了得到最大的性能,一般数据库都有并发机制,不过带来的问题就是数据访问的冲突。为了解决这个问题,大多数数据库用的方法就是数据的锁定。数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁。什么叫悲观锁呢,悲观锁顾名思义,就是对数据的冲突采取一种悲观的态度,也就是说假 设数据肯定会冲突,所以在数据开始读取的时候就把数据锁定住。而乐观锁就是认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时转载 2017-01-23 16:13:13 · 312 阅读 · 0 评论 -
spring 五个事务隔离级别和七个事务传播行为
spring在TransactionDefinition接口中定义了五个不同的事务隔离级别ISOLATION_DEFAULT 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别.另外四个与JDBC的隔离级别相对应 ISOLATION_READ_UNCOMMITTED 这是事务最低的隔离级别,它充许别外一个事务可以看到这个事务未提交的数据。这种转载 2017-01-23 16:13:41 · 232 阅读 · 0 评论 -
数据库事务并发有关问题
多个事务同时访问数据库时候,会发生下列5类问题,包括3类数据读问题(脏读,不可重复读,幻读),2类数据更新问题(第一类丢失更新,第二类丢失更新):1,脏读(dirty read)A事务读取B事务尚未提交的更改数据,并在这个数据基础上操作。如果B事务回滚,那么A事务读到的数据根本不是合法的,称为脏读。在Oracle中,由于有version控制,不会出现脏读。2,不可重复读(unrepeatabl转载 2017-01-23 16:14:21 · 320 阅读 · 0 评论 -
synchronized 和java.util.concurrent.locks.Lock 的异同
主要相同点: Lock能完成synchronized所实现的所有功能主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放转载 2017-01-23 16:15:01 · 190 阅读 · 0 评论 -
XML文档定义有几种形式?解析XML文档有哪几种方式?
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?a: 两种形式 dtd schema,b: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的),c:有DOM,SAX,STAX等DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个转载 2017-01-23 16:15:35 · 609 阅读 · 0 评论 -
Collection 和 Collections的区别
Collection是集合类的上级接口,继承与他的接口主要有Set 和List.Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。转载 2017-01-23 16:16:34 · 267 阅读 · 0 评论 -
hashCode()的作用
在一般的应用中你不需要了解hashCode的用法,但当你用到HashMap,HashSet等集合类时要注意下hashCode。 你想通过一个object的key来拿HashMap的value,HashMap的工作方法是,通过你传入的object的hashcode在内存中找地址,当找到这个地址后再通过equals方法来比较这个地址中的内容是否和你原来放进去的一样,一样就取出value。转载 2017-01-23 16:07:58 · 329 阅读 · 0 评论 -
ArrayList,LinkedList, Vector三者的区别
LinkedList内部以链表形式存储数据ArrayList内部以数组形式存储数据。Vector同ArrayList,不过它与ArrayList比较起来是线程安全的。 ArrayList 和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于转载 2017-01-23 16:17:41 · 292 阅读 · 0 评论 -
String, StringBuffer, StringBuilder三者区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)简要的说,String 类型和 StringBuffer 类型的主要性能区别其实在于 String是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串转载 2017-01-23 16:18:13 · 260 阅读 · 0 评论 -
线程同步的方法
wait():作用是使得当前调用wait方法所在部分(代码块)的线程停止执行,并释放当前获得的调用wait所在的代码块的锁,并在其他线程调用notify或者notifyAll方法时恢复到竞争锁状态(一旦获得锁就恢复执行)。调用wait方法需要注意几点: 第一点:wait被调用的时候必须在拥有锁(即synchronized修饰的)的代码块中。 第二点:恢复执行后,从w转载 2017-01-23 16:18:48 · 263 阅读 · 0 评论 -
Mybatis分库分表扩展插件
对于一个刚上线的互联网项目来说,由于前期活跃用户数量并不多,并发量也相对较小,所以此时企业一般都会选择将所有数据存放在一个数据库中进行访问操作。但随着后续的市场推广力度不断加强,用户数量和并发量不断上升,这时如果仅靠一个数据库来支撑所有访问压力,几乎是在自寻死路。所以一旦到了这个阶段,大部分Mysql DBA就会将数据库设置成读写分离状态,也就是一个Master节点对应多个Salve节点。经过Mas转载 2017-01-23 17:21:35 · 3611 阅读 · 0 评论 -
数据存储——HashMap,Hashtable的区别
HashTable和HashMap区别第一,继承的父类不同。Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类。但二者都实现了Map接口。第二,线程安全性不同。Hashtable 中的方法是Synchronize的,而HashMap中的方法在缺省情况下是非Synchronize的。在多线程并发的环境下,可以直接使用Hashtable,不需要自己为它的转载 2017-01-23 17:33:33 · 278 阅读 · 0 评论 -
JAVA中的throws和throw的区别
一直对java中的throws和throw不太理解。最近一直在查这两个方面的资料,算是能明白一点吧。如果我下面的观点哪有不对,希望指出来,我加以改进。 throw:(针对对象的做法) 抛出一个异常,可以是系统定义的,也可以是自己定义的。下面举两个例子: 抛出Java中的一个系统异常:public class One { public void yichang(){ NumberF转载 2017-02-15 10:09:46 · 318 阅读 · 0 评论 -
关于 Java 中 finally 语句块的深度辨析
在 IBM Bluemix 云平台上开发并部署您的下一个应用。开始您的试用可不能小看这个简单的 finally,看似简单的问题背后,却隐藏了无数的玄机。接下来我就带您一步一步的揭开这个 finally 的神秘面纱。问题分析首先来问大家一个问题:finally 语句块一定会执行吗?很多人都认为 finally 语句块是肯定要执行的,其中也包括一些很有经验的 Java 程序员。可惜并不像大多人所认为的那原创 2017-03-06 19:43:55 · 1043 阅读 · 0 评论 -
Java Web前端到后台常用框架介绍
版权声明:本文为博主原创文章,转载注明出处http://blog.youkuaiyun.com/u013142781一、SpringMVChttp://blog.youkuaiyun.com/evankaka/article/details/45501811spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基转载 2017-04-01 16:25:30 · 1286 阅读 · 0 评论 -
CocurrentHashMap和Hashtable的区别
目录(?)[-]为什么我们需要ConcurrentHashMap和CopyOnWriteArrayListConcurrentHashMap和Hashtable的区别集合类是Java API的核心,但是我觉得要用好它们是一种艺术。我总结了一些个人的经验,譬如使用ArrayList能够提高性能,而不再需要过时的Vector了,等等。JDK 1.5引入了一些好用的并发集合类,它们对于大型的、要求低延转载 2017-01-23 15:38:02 · 240 阅读 · 0 评论 -
数组常用方法的总结
[java] view plain copy print?//数组常用方法 public class ArrayTest { public static void main(String[] args) { int arr[] = {1,66,35,78,2,5,6,3}; //System.out.println(getMax(arr));转载 2017-02-09 09:48:18 · 265 阅读 · 0 评论 -
cookie/session总结
cookie1 服务端可以向客户端写内容2 只能写文本内容3 只能拿自己webapp写入的内容4 客户端可以组织内容的写入5 cookie分两种属于窗口/子窗口属于文本6 一个servlet/jsp设置的cookie能够被同一个url下和或者子url下的的servlet/jsp读到session1 在某段时间一连串客服端与服务器端的“交易”2 在jsp/servlet中,如果浏转载 2017-02-09 09:50:23 · 280 阅读 · 0 评论 -
Java集合框架的接口和类层次关系结构图
Java集合框架的接口和类层次关系结构图 <div class="postBody"> <div id="cnblogs_post_body"><a name="_labelTop"></a><div id="navCategory"><h1>阅读目录</h1><ul><li><a href="#_label0">Collection和Col转载 2017-02-09 09:57:15 · 1016 阅读 · 0 评论 -
java集合框架XXX与XXX的区别
1. HashMap与HashTable的区别HashMap是非同步的,HashTable是同步的。同步HashMap可用两种方法:(1):Collections.synchronizedMap(newHashMap());(2):ConcurrentHashMap()HashMapp允许null的key-value,而hashtable不可以迭代HashMap采用快速失败机制,而Has转载 2017-02-09 10:02:36 · 1097 阅读 · 0 评论 -
二叉树类型笔试面试题大总结(含代码)
一、二叉树的遍历-前序、中序、后序以及层次遍历(递归与非递归)参考另外一篇笔记《二叉树的遍历-递归与非递归 -海子 - 博客园》。 二、重建二叉树,依据前序遍历结果和中序遍历结果《剑指Offer》面试题6. 思想:递归代码:// 《剑指Offer——名企面试官精讲典型编程题》代码// 著作权所有者:何海涛 struct BinaryTreeNode{ int转载 2017-02-09 10:45:52 · 270 阅读 · 0 评论 -
笔试面试常考数据结构-单链表常用操作编程实现
单链表是笔试以及面试手写代码中常考的数据结构之一。下面实现了单链表的常见操作:创建单链表、删除节点、打印单链表(包括正向打印以及逆向打印)、反转单链表、找出单链表的倒数第K个节点、合并两个有序单链表等操作。代码(C++):[cpp] view plain copy print?//笔试面试单链表常用操作编程实现 #include <iostream> #include <stack> #in转载 2017-02-09 10:52:41 · 399 阅读 · 0 评论 -
轻松搞定面试中的二叉树题目
版权所有,转载请注明出处,谢谢!http://blog.youkuaiyun.com/walkinginthewind/article/details/7518888树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基本都转载 2017-02-09 10:55:00 · 565 阅读 · 0 评论 -
二分查找,你真的掌握了吗?
版权所有,转载请注明出处,谢谢!http://blog.youkuaiyun.com/walkinginthewind/article/details/8937978二分查找,最基本的算法之一,也是面试中常被考察的重点,因为基本的算法最能反映出一个人的基础是否扎实。本文对二分查找相关题目做一个总结。题目列表:1. 给定一个有序(非降序)数组A,求任意一个i使得A[i]等于target,不存在则返回-12转载 2017-02-09 10:57:04 · 688 阅读 · 0 评论 -
Java集合框架及其区别
Java容器类List、ArrayList、Vector及map、HashTable、HashMap分别的区别ArrayList 和HashMap是异步的,Vector和HashTable是同步的,所以Vector和HashTable是线程安全的,而 ArrayList和HashMap并不是线程安全的。因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于 ArrayLis转载 2017-02-09 09:44:43 · 345 阅读 · 0 评论 -
深入分析ConcurrentHashMap
术语定义术语英文解释哈希算法hash algorithm是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。哈希表hash table根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。 线程不安全的HashMap因为多线转载 2017-01-23 15:43:33 · 219 阅读 · 0 评论 -
HashMap的工作原理
HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入让转载 2017-01-23 15:59:00 · 375 阅读 · 0 评论 -
TCP三次握手/四次挥手详解
TCP连接三次握手:在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器 进入SYN_RECV状态; 第三次握手转载 2017-01-23 16:00:32 · 351 阅读 · 0 评论 -
Java中保留字和关键字的区别
Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等。保留字是为java预留的关键字,他们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。Java 关键字列表 (依字母排序 共50组): abstract, assert,boolean, break, byte, case, catch, char, class, continue, de转载 2017-01-23 16:03:43 · 1060 阅读 · 0 评论 -
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。转载 2017-01-23 16:05:15 · 675 阅读 · 0 评论 -
<%! 定义 %>与 <% 定义 %>区别
使用<%! %>定义的变量编译成servlet后成为servlet的私有成员变量,在servlet运行环境中,对于一个JSP页只允许有一个servlet的实例在运行和响应所有的页面请求。因此,在结果servlet中所有的成员变量可以被所有的请求所共享,所以只要成员变量没有重新赋值,下次访问该页面时仍然不变。而在<% %>中定义的变量编译成servlet后成service()方法的一个本地变量,而se转载 2017-01-23 16:05:57 · 633 阅读 · 0 评论 -
引用类型和原始类型的区别
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。原始类型 封装类 boolean –> Booleanbyte –> Byte char –> Character short –> Short int –> Integer long –> Lon转载 2017-01-23 16:06:43 · 1130 阅读 · 0 评论 -
重载equal和hashCode
1、 为什么要重载equal方法?因为Object的equal方法默认是两个对象的引用的比较,意思就是指向同一内存,地址则相等,否则不相等;如果你现在需要利用对象里面的值来判断是否相等,则重载equal方法。2、 为什么重载hashCode方法?一般的地方不需要重载hashCode,只有当类需要放在HashTable、HashMap、HashSet等等hash结构的集合时才会重载hashCod转载 2017-01-23 16:07:21 · 412 阅读 · 0 评论
分享