![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 82
makerule
码农
展开
-
Java常用面试题
1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承原创 2016-08-27 23:41:27 · 1164 阅读 · 0 评论 -
ArrayList详细描述
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据原创 2017-03-27 22:18:15 · 429 阅读 · 0 评论 -
ArrayList、Vector、HashMap、HashSet的默认初始容量、加载因子、扩容增量
这里要讨论这些常用的默认初始容量和扩容的原因是: 当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使效率大大降低。 加载因子的系数小于等于1,意指 即当 元素个数 超过 容量长度*加载因子的系数 时,进行扩容。 另外,扩容也是有默认的倍数的,不同的容器扩容情况不同转载 2017-03-27 22:22:00 · 335 阅读 · 0 评论 -
Struts和Spring MVC对比
1、实现机制 struts2框架是类级别的拦截,每次来了请求就创建一个controller中对应的Action,然后调用setter getter方法把request中的数据注入 。struts2实际上是通过setter getter方法与request打交道的。struts2中,一个Action对象对应一个request上下文。spring mvc不同,spring mvc是方法级别的拦截,拦原创 2017-03-26 20:02:27 · 464 阅读 · 0 评论 -
高并发解决方案
说到高并发,首先,要明白什么是高并发。高并发就是项目在某个时段有很多用户访问,而造成的系统负载很大。如何解决高并发的问题呢?首先,要优化JDBC的连接问题,就需要使用连接池。使用了连接池之后,项目的性能会有很大的提高。接着,就需要使用缓存技术,将一些不重要的信息,比如论坛访问量等作为缓存放到内存里。这样的话,用户可以不通过数据库就可以访问到缓存里的信息,极大的节省开销,可以大量减少与数据库的交互,原创 2017-04-17 00:40:16 · 624 阅读 · 0 评论