随笔分类 -  java杂谈

Java中的两种异常类型是什么?他们有什么区别?
摘要:一、Throwable是所有异常的根,java.lang.Throwable Error是错误,java.lang.Error Exception是异常,java.lang.Exception 二、Exception 一般分为Checked异常和Runtime异常,所有RuntimeExceptio 阅读全文
posted @ 2018-07-19 10:36 yonyong 阅读(5212) 评论(0) 推荐(0)
Java堆的结构是什么样子的?什么是堆中的永久代(Perm Gen space)?
摘要:JVM的堆是运行时数据区,所有类的实例和数组都是在堆上分配内存。它在JVM启动的时候被创建。对象所占的堆内存是由自动内存管理系统也就是垃圾收集器回收。 堆内存是由存活和死亡的对象组成的。存活的对象是应用可以访问的,不会被垃圾回收。死亡的对象是应用不可访问尚且还没有被垃圾收集器回收掉的对象。一直到垃圾 阅读全文
posted @ 2018-07-19 10:17 yonyong 阅读(6293) 评论(0) 推荐(0)
Enumeration接口和Iterator接口的区别有哪些?
摘要:Enumeration速度是Iterator的2倍,同时占用更少的内存。但是,Iterator远远比Enumeration安全,因为其他线程不能够修改正在被iterator遍历的集合里面的对象。同时,Iterator允许调用者删除底层集合里面的元素,这对Enumeration来说是不可能的。 另外: 阅读全文
posted @ 2018-07-18 09:33 yonyong 阅读(1781) 评论(0) 推荐(1)
Java集合类框架的最佳实践?
摘要:根据应用的需要选择合适的集合对性能是非常重要的。如果一个集合的元素数量是固定的,而且我们能够提前知道固定的数量,那么就可以使用数组,而不是ArrayList。 每个集合都可以设置初始容量,如果我们提前能够估算出它的初始容量,那么就可以避免重新计算它的hash值与扩容。 为了保证程序的类型安全、健壮性 阅读全文
posted @ 2018-07-18 09:13 yonyong 阅读(1109) 评论(0) 推荐(0)
Comparable和Comparator接口是干什么的?列出它们的区别。
摘要:ava提供了只包含一个compareTo()方法的Comparable接口。这个方法可以个给两个对象排序。具体来说,它返回负数,0,正数来表明已经存在的对象小于,等于,大于输入对象。Java提供了包含compare()和equals()两个方法的Comparator接口。compare()方法用来给 阅读全文
posted @ 2018-07-17 16:00 yonyong 阅读(2089) 评论(0) 推荐(0)
ArrayList和LinkedList有什么区别?
摘要:ArrayList和LinkedList都实现了List接口,他们有以下的不同点:ArrayList是基于索引的数据接口,它的底层是数组。它可以以O(1)时间复杂度对元素进行随机访问。与此对应,LinkedList是以元素列表的形式存储它的数据,每一个元素都和它的前一个和后一个元素链接在一起,在这种 阅读全文
posted @ 2018-07-17 15:26 yonyong 阅读(14051) 评论(0) 推荐(3)
数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用Array而不是ArrayList?
摘要:下面列出了Array和ArrayList的不同点:Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。Array大小是固定的,ArrayList的大小是动态变化的。ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等 阅读全文
posted @ 2018-07-17 15:20 yonyong 阅读(22431) 评论(10) 推荐(4)
HashMap和Hashtable有什么区别?
摘要:HashMap和Hashtable都实现了Map接口,因此很多特性非常相似。但是,他们有以下不同点: 1、HashMap是非线程安全的,HashTable是线程安全的。 2、HashMap允许键和值是null,而Hashtable不允许键或者值是null。 3、因为线程安全的问题,HashMap效率 阅读全文
posted @ 2018-07-17 15:02 yonyong 阅读(817) 评论(0) 推荐(0)
Java中的HashMap的工作原理是什么?
摘要:Java中的HashMap是以键值对(key-value)的形式存储元素的。HashMap需要一个hash函数,它使用hashCode()和equals()方法来向集合/从集合添加和检索元素。当调用put()方法的时候,HashMap会计算key的hash值,然后把键值对存储在集合中合适的索引上。如 阅读全文
posted @ 2018-07-17 14:40 yonyong 阅读(1286) 评论(0) 推荐(1)
快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?
摘要:一:快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Exception。 原理:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。集 阅读全文
posted @ 2018-07-17 14:35 yonyong 阅读(1801) 评论(0) 推荐(0)
Java集合类框架的基本接口有哪些?
摘要:总共有两大接口:Collection 和Map ,一个元素集合,一个是键值对集合; 其中List和Set接口继承了Collection接口,一个是有序元素集合,一个是无序元素集合; 而ArrayList和 LinkedList 实现了List接口,HashSet实现了Set接口,这几个都比较常用; 阅读全文
posted @ 2018-07-17 11:20 yonyong 阅读(742) 评论(0) 推荐(0)
为什么要使用同步?
摘要:为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用, 从而保证了该变量的唯一性和准确性。 1.同步方法 即有synchronized关键字修 阅读全文
posted @ 2018-07-17 10:52 yonyong 阅读(1138) 评论(0) 推荐(0)
值传递还是引用传递?
摘要:今天,我在一本面试书上看到了关于java的一个参数传递的问题: 写道 java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? 我毫无疑问的回答:“引用传递!”,并且还觉得自己对java的这一特性很是熟悉! 结果发现,我错了! 答案是: 值传递!Java中只有按值传递,没有按引用传递! 回 阅读全文
posted @ 2018-07-17 09:21 yonyong 阅读(182) 评论(0) 推荐(0)
java面试题干货126-170
摘要:这部分主要是开源Java EE框架方面的内容,包括Hibernate、MyBatis、Spring、Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题,如果需要了解相关内容,可以参考一篇文章《Java面试题集(86-115)》。此外,这篇文章还对企业应 阅读全文
posted @ 2018-07-16 12:41 yonyong 阅读(440) 评论(0) 推荐(0)
java面试题干货96-125
摘要:这部分主要是与Java Web和Web Service相关的面试题。 96、阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产 阅读全文
posted @ 2018-07-16 12:29 yonyong 阅读(283) 评论(0) 推荐(0)
java面试题干货51-95
摘要:51、类ExampleA继承Exception,类ExampleB继承ExampleA。 有如下代码片断: 请问执行此段代码的输出是什么? 答:输出:ExampleA。(根据里氏代换原则[能使用父类型的地方一定能使用子类型],抓取ExampleA类型异常的catch块能够抓住try块中抛出的Exam 阅读全文
posted @ 2018-07-16 12:18 yonyong 阅读(534) 评论(0) 推荐(0)
java面试题干货1-50
摘要:1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 - 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父 阅读全文
posted @ 2018-07-16 11:35 yonyong 阅读(458) 评论(0) 推荐(0)
apache与tomcat的区别
摘要:1. Apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet容器,是Apache的扩展。 1. Apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet容器,是Apache的扩展。 1. Apache是web服务器,Tomcat是 阅读全文
posted @ 2018-06-28 17:59 yonyong 阅读(549) 评论(0) 推荐(0)
关于toString的自动调用
摘要:输出结果是 aa。为什么会默认调用toString方法 将System.out.println(i); 改为System.out.println(i.rr);结果为zzz。为什么不会调用toString方法。 1、这里面System.out.println(i)调用b里面定义的toString(); 阅读全文
posted @ 2018-04-11 15:57 yonyong 阅读(813) 评论(0) 推荐(0)
构造方法里的super()方法
摘要:为什么经常会遇到有的构造函数会有super(),而有的却没有,其实super就比如 对数函数,log的底数为10,如果为10 ,我们可写可不写,如果不为10,那么我们就要加上底数 在子类构造方法中,super();是默认省略的,(super();的作用是继承父类构造方法)。记住:默认省略不是不存在, 阅读全文
posted @ 2018-03-16 10:21 yonyong 阅读(3418) 评论(1) 推荐(2)