Java面试题
世间事,很多都可投机取巧,但技术却必须靠日积月累的努力来提高。本分类专栏更加注重的是知识的掌握,而不仅仅是对面试题的应付。在 展示常见的面试问题以及回答技巧 的同时 还详细讲解了每一道题所包含的知识点,让读者不仅知其然,更知其所以然。
维护世界和平的程序员
微博@维护世界和平的程序员
展开
-
每天一道Java面试题——JavaSE基础(五)Java的异常处理
1.Java中异常分为哪些种类 1)按照异常需要处理的时机分为编译时异常 也叫强制性异常 也叫 CheckedException 和运行时异常也叫非强制性异常 也叫 RuntimeException 。只有 java 语言提供了 Checked 异常, Java 认为 Checked异常都是可以被处理的异常,所以 Java 程序必须显式处理Checked 异常。如果程序没有处理 Checked 异常,该程序在编译时就会发生错误无法编译。这体现了 Java 的设计哲学:没有完善错误处理的代码根本没有机会被执行原创 2020-05-10 17:32:58 · 207 阅读 · 1 评论 -
每天一道Java面试题——JavaSE基础(四)
13.String s = “Hello”;s = s + " world!"; 这两行代码执行后,原始的 String 对象中的内容到底变了没有? 没有。因为String 被设计成不可变 ( 类,所以它的所有对象都是不可变对象。在这段代码中, s 原先指向一个 String 对象,内容是 " Hello",然后我们对 s 进行了“ 操作,那么 s 所指向的那个对象是否发生了改变呢?答案是没有。这时, s 不指向原来那个对象了,而指向了另一个 String 对象,内容为 “Hello world!”,原来那原创 2020-05-10 16:41:47 · 150 阅读 · 0 评论 -
每天一道Java面试题——JavaSE基础(三)
8.char型变量中能不能存储一个中文汉字,为什么? char类型可以存储一个中文汉字,因为Java中使用的编码是Unicode(不选择任何特定的编码,直接使用字符在字符集中的编号,这是统一个唯一方法),一个char类型占两个字节(16比特),所以放一个中文是没问题的。 补充:使用Unicode意味着字符在JVM内部和外部有不同的表现形式,在JVM内部是Unicode,当这个字符被从JVM内部转移到外部时(例如存入文件系统中),需要进行编码转换。所以JAVA中有字节流和字符流,以及在字符流和字节流之间转换的原创 2020-05-10 16:30:30 · 203 阅读 · 1 评论 -
每天一道Java面试题——JavaSE基础(二)
4.两个对象值相同(x.equals(y) == true)但却可有不同的 hashCode这句话对不对? 不对,如果两个对象x 和 y 满足 x.equals(y) == true ,它们的哈希码 hash C ode )应当相 同。Java对于 eqauls 方法和 hashCode 方法是这样规定的: :( 如果两个对象相同( equals 方法返回 true ),那么它们的 hashCode 值一定要相同; ;( 如果两个对象的 hashCode 相同,它们并不一定相同。当然,你未必要按照要求去做,原创 2020-05-10 10:45:14 · 150 阅读 · 0 评论 -
每天一道Java面试题——JavaSE基础(一)
1. Java有没有goto语句? goto是 Java 中的保留字,在目前版本的 Java 中没有使用。根据 James Gosling Java 之父)编写的《 The JavaProgramming Language 》一书的附录中给出了一个 Java 关键字列表,其中有 goto 和 const ,但是这两个是目前无法使用的关键字,因此有些地方将其称之为保留字,其实保留字这个词应该有更广泛...原创 2020-05-06 21:29:33 · 215 阅读 · 0 评论 -
每天一道Java面试题——如何理解clone对象?
1.为什么要用clone? 在实际编程过程中,我们常常要遇到这种情况: 有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和 A 完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的。在 Java 语言中,用简单的赋值语句是不能满足这种需求的。要满足这种需求虽然有很多途径,但实现clone()方法是其中最简单,...原创 2020-05-06 21:03:12 · 202 阅读 · 0 评论 -
每天一道Java面试题——访问权限修饰符public、private、protected, 以及不写(默认)时的区别?
原创 2020-05-06 20:18:27 · 295 阅读 · 0 评论 -
每天一道Java面试题——面向对象都有哪些特性以及你对这些特性的理解?
1.继承: 继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的 类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段。 2.封装: 通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对...原创 2020-05-06 20:04:35 · 255 阅读 · 0 评论