1、switch能否作用在byte、int、long、String?
答案:switch能作用在byte、int、enum常量, 补充:jdk7可以作用在String上
2、short s = 1; s = s + 1;有什么错? short s = 1; s += 1;有什么错?
答案: s = s + 1; 在计算右边的表达式时,隐式的将s转换为int,将一个int类型赋值给short出错,必须强制转换,即: s = (short)(s+1); 而s+=1; 编译器会首先将+=后面的1强制转换为+=前面的数据类型。故无错。
3、char型变量中能不能存贮一个中文汉字?为什么?
答案: 可以,因为java默认采用unicode编码表示一个字符。
4、用最有效率的方法算出2乘以8等於几?
答案: 2<<3 将2左移3位,2的3次方等于8;
5、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
答案: 引用不能变,而引用对象的值可以改变,
比如final StringBuffer BUFF = new StringBuffer("123");
BUFF.append("456"); //打印后是123456的字符串
6、静态变量和实例变量的区别?
答案: 静态变量又叫类变量,属于类而不是对象,用static关键字修饰;而实例变量属于对象,必须先实例化一个对象后,才能使用实例变量。
7、是否可以从一个static方法内部发出对非static方法的调用?
答案: 不能,因为static方法属于类,而非static方法属于实例化对象,静态类方法不知道调用哪个对象的非静态方法。
8、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
答案:12, -11;原因:向最大方向四舍五入。
9、请说出作用域public,private,protected,以及不写时的区别
答案:同一个包下的类认为是朋友:friendly。默认为friendly
public: 当前类、子类、同一包、其他包
protected: 当前类、子类、同一包
private: 当前类
friendly: 当前类、同一包
10、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
答案: Overloaded是重载,Override是重写。Overloaded在方法参数列表不同时,可以改变返回值的类型。
11、构造器Constructor是否可被override?
答案: Constructor即构造方法,不能被继承,当然不能被重写。
12、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?
答案: 接口可以被继承,使用extends关键字;抽象类可以实现接口;抽象类可以继承具体类;抽象类中可以有静态main方法,也可以有静态方法。
13、写clone()方法时,通常都有一行代码,是什么?
答案: super.clone(); clone即克隆,将一个对象拷贝给另一个对象,这两个对象属于独立的对象,改变其中一个对象,不会改变另一个对象。注意有浅克隆和深克隆之分。
14、抽象类和接口的区别:
答案: 1、面向对象中,所有对象都用类来描述,但是并不是所有类都用来描述对象。如果一个类中没有足够的信息来描述具体的对象,我们称之为抽象类。是对一系列看上去不同,但本质相同的具体概念的抽象。
2、语法上,用abstract class和interface区别,实现分别用extends和implements实现。
3、抽象类可以有非抽象方法但接口只能有抽象方法
4、一个类只能继承一个类,但可以实现多个接口。
5、抽象类中的字段可以不被初始化,但接口中定义字段时必须被初始化。
15、什么是内部类?Static Nested Class 和 Inner Class的不同。
答案: 内部类:是定义在类中的类。static nested class(嵌套类)是静态内部类:1、创建嵌套类的对象,并不需要其外部类的对象。 2、不能从嵌套类的对象中访问非静态的外部类对象。
16、是否可以继承String类?
答案: 不能,String类是一个final终结类。
17、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别?
答案: 两个。"xyz"作为一个常量字符串首先被创建,它保存在”常量“区,一旦创建不能修改,因此下次需要一个相同的字符串时,不必创建。引用一个常量串没有任何危险,因为它是只读的。当new String("xyz")调用时,再在堆(heap)中创建一个对象,值为常量区字符串的拷贝。区别: 一个在常量池,一个在堆中。
18、String 和StringBuffer、StringBuilder的区别?
答案: 都不是基本数据类型,都是final类不能被继承。String对象是一个不可变对象,一旦创建不能修改它的值。对于已经存在的String对象修改它的值,会重新创建一个新的对象,然后把新的值保存进去。对String对象的连接操作(+)实际上是会建立一个StringBuffer类对象,然后把字符串添加进去,最后调用toString()方法。 StringBuffer类是一个可变对象,当对它进行修改时不会像String那样重新建立一个对象,调用append()方法即可。StringBuffer是线程安全的,而Stringbuilder不是线程安全的。所谓线程安全,就是每个修改容器中数据的是同步的,因此保证了线程安全。
19、如何把一段逗号分割的字符串转换成一个数组?
答案: 调用String类中的实例方法split(); str.split(",");
20、数组有没有length()这个方法? String有没有length()这个方法?
答案: 数组没有length()方法,有一个length字段,String有length()方法。
21、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d";
答案:5个对象,现在常量池创建了"a","b","c","d",4个对象。再在堆中创建了一个"abcd"对象。
22、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
答案: finally{}里的代码一定会被执行。return之后执行finally,再执行了return,但是finally修改后的值,return的是修改之前的值。
23、final, finally, finalize的区别。
答案:final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
24、error和exception有什么区别?
答案: 相同处:Error类和Exception类都继承自Throwable类。不同处:Exception: 1、可以是可被控制(checked)或不可控制的(unchecked); 2、表示一个有程序员导致的错误。3、应该在应用程序级被处理。Error: 1、总是不可控制的(unchecked); 2、经常用来用于表示系统错误或底层资源错误。 3、如果可能的话,应该在系统级被捕获。
25、运行时异常与一般异常有何异同?
答案: 1、一般异常指checked exception: 这类异常都是Exception的子类。异常向上抛出,可能导致的问题: 代码效率低,耦合度过高。 2、运行时异常unchecked exception:这类异常都是RuntimeException的子类,虽然RuntimeException同样也是Exception的子类,但是他们是不同的,他们不能通过用户代码来试图解决。
26、请写出你最常见到的5个runtime exception?
答案: ClassCastException类型转换异常, ArithmeticException算数运算异常,NullPointerException空指针异常,IndexOutOfBoundsException索引越界异常。
NegativeArraySizeException负数作为数组大小异常,BufferOverflowException缓冲区溢出异常。
更多信息请查看 java面试题 http://www.itchm.com/zhaopinqiuzhi/java_bishi_mianshi/
分享到:
相关推荐
《Java面试宝典2018-最全面试资料》是一部专门为Java开发者准备的面试指南,旨在帮助求职者全面了解并掌握Java领域的核心知识和技术,从而在面试中表现出色。这份资料由黑马程序员精心编纂,集合了多家知名公司的...
【标题】"牛客面试真题附答案解析最新版-Java篇.rar" 是一份针对Java程序员面试准备的资源,包含了最新的面试题目以及详尽的答案解析。这份压缩包旨在帮助求职者提升Java技术栈,以便在后端开发职位的面试中表现出色...
这份资源包含多个部分,如JAVA程序员面试宝典JAVA(3).mht、JAVA程序员面试宝典JAVA(2).mht以及JAVA程序员面试宝典JAVA(1).txt,它们可能分别对应着不同的章节或主题,详细讲解了Java语言的核心概念、高级特性以及...
│ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ ...
本篇将深入分析《大厂真实Java高级工程师面试宝典》中的核心知识点,帮助求职者更好地准备面试。 #### 二、技术部分 1. **基础知识** - **Java基础**:包括面向对象的基本概念(封装、继承、多态)、异常处理机制...
本篇文章将根据标题“C,C++,Java,面试宝典”和描述中的内容,对这些语言的面试常见知识点进行详细的梳理。 1. **C语言知识点**: - **基本语法**:包括变量声明、数据类型、运算符、控制结构(如if、for、while)...
"13-Java并发编程学习宝典.zip" 包含了一系列关于Java并发编程的学习资源,旨在帮助开发者掌握多线程编程的核心技术和最佳实践。以下是这些资源所涵盖的关键知识点: 1. **多线程基础** - "03 多线程开发如此简单—...
《Java、C++、C及嵌入式面试宝典:300道精选题解析》 在信息技术领域,掌握一门或多门编程语言是基础,但深入理解并能灵活运用则是关键。本压缩包文件“java c++ c 嵌入式 笔试题面试题集300套.rar”集结了Java、...
【最新】2021自动化测试面试宝典1000题涵盖了软件测试与自动化测试领域的核心知识点,旨在为求职者提供全面的面试准备指南。这份文档不仅包含了基础的SQL查询,还涉及Python编程和Linux操作,以及接口测试的相关内容...
这篇面试宝典涵盖了基础篇、核心篇、框架篇、微服务篇、安全&性能、工程篇等多个方面的知识点,总结了大多数互联网公司的面试题目,涉及到Java基础知识、数据存储、缓存、消息队列、框架、微服务、安全、性能优化、...
在这篇文章中,我们将总结了 Java 面试中的 200 多个问题,涵盖了 Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis...
本篇文章将深入探讨如何解决计算质数和实现约瑟夫环算法这两个常见的面试题目。 首先,计算质数是许多算法题中的经典问题。质数是指大于1且仅能被1和它本身整除的自然数。在Java代码中,我们可以使用两种方法来找到...
这份资料集合了葵花宝典、九阴真经、JAVA面试题集以及其高级篇和编程篇,以及两份PDF面试题,为学习者提供了全面的Java知识体系复习。 葵花宝典和九阴真经通常代表的是核心基础理论和经典实践,可能包括Java语言的...
《程序员面试宝典》是一本专门针对程序员面试的书籍,旨在帮助求职者充分准备,提升在面试中的竞争力。这本书涵盖了编程基础、数据结构、算法、操作系统、计算机网络、数据库等多个核心领域,为读者构建了一个全面的...
### 求职宝典(SUN篇)知识点总结 #### 一、SUN公司简介及文化 - **成立背景**:SUN Microsystems成立于1982年,起源于美国斯坦福大学,公司名称来源于Stanford University Network的首字母缩写。 - **经营理念**:...
本资料涵盖了百度、京东、唯品会、阿里、蚂蚁金服、拼多多、OPPO、腾讯等知名企业的Java面试题目,旨在帮助应聘者全面了解并掌握Java相关的基础、网络和分布式等关键知识点,提高面试成功率。 首先,让我们聚焦Java...
- **《CrackingtheCodingInterview》**:同样是一本面试宝典,包含了大量的编程面试题目和解答策略。 - **《数据结构与算法分析》C实现**:数据结构和算法是编程的基础,本书提供了C语言实现的具体示例。 - **《编程...
本篇将详细解析从标题和描述中涉及的程序员面试知识点,以及部分代码问题。 首先,我们要了解几个基础概念: 1. `String`、`StringBuffer`和`StringBuilder`的区别:`String`是不可变对象,每次修改都会创建新对象...