2018常见的java面试题,2018年java面试题大全(整理版)

《2018年java面试题大全(整理版)》由会员分享,可在线阅读,更多相关《2018年java面试题大全(整理版)(25页珍藏版)》请在人人文库网上搜索。

1、2018年java面试问题大全(整理版)1 .面向对象的特征有哪些方面?抽象:抽象是将对象的共同特征组合到结构类中的过程,包括数据抽象和行为抽象。 抽象地说,只关注对象的属性和行为,不关注这些行为的细节。-继承:继承是从现有类中获取继承信息来创建新类的过程。 提供继承的类称为父类(超类、基类),继承的类称为子类(子类)。封装通常被认为是将数据与操作数据的方法联系起来,并且对数据的访问只能经由定义的接口。 所谓包装,可以说是将所有隐藏的东西隐藏起来,向外部提供最简单的编程接口(考虑到普通洗衣机和全自动洗衣机的不同,显然全自动洗衣机的包装更好,操作变得更简单)。 我们现在使用的智能手机也封装得足够。

2、了。 因为只要按几下按钮就能处理一切。”-多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。 简单地说,我用相同的对象引用调用了相同的方法,但是做了不同的事。 实现多态性需要两件事:1) .方法的改写(子类继承父类,改写父类的方法)2) .对象的形状(通过用父类型参照子类型的对象,在相同的参照调用中,相同的方法是子2、访问修饰符public、private、protected和无写入(默认)的区别是?修饰子当前类同包子类其他包。公共汽车日日日日受保护的日日日default日日私有的。日3、String是最基本的数据类型吗?a :没有。 Java的基本数据类型只有8种:字节、短、整。

3、数、长、浮置、双精度、char和布尔。除了基本类型和枚举类型以外,其馀的请参见4、浮点f=3. 4; 正确吗?:错了。 3.4是倍精度数,将双精度型(double )分配给浮点型(float ),是由于下播型(down-casting,也称为窄幅化)会导致精度的损失,故强制型变换float f=(float)3.4; 或者选择写float f=3.4F。5、短S1=1; s1=s1 1; 有错误吗? 短S1=1; s1 =1; 有错误吗?在短s1=s1 1的情况下s1=s1 1; 因为1是int型,s1 1的运算结果也是int型,所以分配给短型需要强制转换型。 短S1=1; s1 =1; s1。

4、=1,因此可以正确编译s1=(short)(s1 1 )具有相当隐式的强制类型转换。6、int和Integer的区别是什么?a:Java是几乎单纯的面向对象的编程语言,为了便于编程导入了基本数据类型,但是为了能把这些基本数据类型作为对象进行操作,Java按每个基本数据类型对应的包装类(wrapper class )class AutoUnboxingTest publicstaticvoidmain (string args ) 整数a=新整数(3);整数b=3; /3自动包装成Integer型PS=3;system.out.println (a=b )/false这两个引用不引用同一对象sy。

5、stem.out.println (a=c )/true a自动分解为int型并与c进行比较以下以下最近遇到的面试问题与自动包装和开箱有点关系。 代码如下所示:公共等级测试03 ;publicstaticvoidmain (string args ) 整数f2=100,f2=100,f3=150,f4=150;System.out.println(f1=f2 )System.out.println(f3=f4 )以下以下如果不知道哪个输出是true还是false,就很容易判断。 首先需要注意的是,f1、f2、f3、f4这四个变量都是Integer对象引用,因此以下=运算比较不是值,而是引用。 。

6、装箱的本质是什么?将int值指定给Integer对象后,将调用Integer类的静态方法valueOfpublicstaticintegervalueof (inti ) if (I=integer cache.lowi=integer cache.high )returnintegercache.cache I (-integer cache.low ) ;return new Integer(i )以下简单地说,如果整数文字的值在-128到127之间,则直接参考常量池中的Integer对象,而不是新的Integer对象,由此在上面的面试问题中f1=f2的结果为true,而f3=f4的结果为。

7、false7、和的区别是?两个运算符左右的布尔值的整个表达式值都必须为true,但必须为true。 之所以被称为短路运算,是因为如果左边的式的值为假,则右边的式被直接短路,不进行运算。 在大多数情况下,如果在验证用户登录时确定用户名不是空字符串,则必须写为用户名=空! username.equals ( ),两者的顺序不能交换,不能使用运算符。 如果第一个条件不成立,将发生NullPointerException异常,因为无法对字符串进行equals比较。 注意:逻辑运算符(|)和短路运算符(| )的差异也相同。8 .说明存储器中的堆栈、堆栈(heap )、静态区域的使用方法。堆栈空间操作最快。

8、,但堆栈非常小,经常有很多对象放在堆栈空间String str=new String(hello );在上面的语句中,变量str放在堆栈中,用new创建的字符串对象放在堆栈中,名为hello的文字放在静态区域中。9、Math.round(11.5 )是多少?Math.round(-11.5 )是多少?Math.round(11.5 )的返回值为12,Math.round(-11.5 )的返回值为-11。 四舍五入的原理是在参数上加上0.5之后再向下舍入。10、交换机作用于字节、长、字符串吗?expr可以是字节、短、char、整数、整数和字符串类型,但不能是长类型11、用最有效的方法计算28吗?。

9、a:23 (左位移3位相当于2的3次方,右位移3位相当于2的3次方)。12、数组中有length ()方法吗? String中有length ()方法吗?a :数组没有length ()方法,并且具有length属性。 String有一个length ()方法。 在JavaScript中,得到的字符串的长度通过length属性得到,这容易与Java混淆。13、构造函数能复盖吗?a :无法继承构造函数,所以无法复盖,但是可以重新加载。14、两个对象的值相同(x.equals(y)=true ),但是散列代码可能不同。 这句话对吗?a :不,如果两个对象x和y满足x.equals(y)=true,。

10、散列代码必须相同。 (1)对于eqauls和hashCode方法,Java的两个对象相同(equals方法返回true )时,其hashCode值必须相同(2)两个对象的hashCode15、能继承String类吗?String类是final类,不能继承。16 .将对象作为参数传递给方法后,该方法就可以修改对象的属性并返回修改后的结果。 在这里,是价格交货还是参照交货呢?a :是交价。 Java语言方法调用仅支持参数的值传递。 当对象实例作为参数传递给方法时,该参数的值是对该对象的引用。 可以在调用过程中更改对象的属性,但对对象的引用的更改不会影响调用方17、字符串和字符串构建器、字符串缓冲器。

11、有什么区别?Java平台有两种字符串: String和StringBuffer/StringBuilder,可以存储和操作字符串。 其中String是只读字符串。 也就是说,不能更改String引用的字符串的内容。 可以直接修改StringBuffer/StringBuilder类表示的字符串对象。 StringBuilder是在Java 5中引入的,与StringBuffer的方法完全相同。 不同之处在于它在单线程环境中使用。 因为没有同步修饰,所以比字符串缓冲器更有效。18 .过载和复盖的差异。 重负荷的方法能根据返回型区分吗?a :方法的重负荷和改写是实现多态性的方式,前者实现编译时的多。

12、态性,后者实现执行时的多态性,这一点是不同的。 如果重负载发生在一个类中,并且具有相同名称的方法有不同的参数列表(参数类型不同、参数数量不同或两者不同),则被视为重负载,重写发生在子类和父类之间,而重写请求子类的与父类的改写方法相同的返回类型,访问性比父类的改写方法好,不能声明比父类的改写方法多的例外(m.r .替换原则)。 重装对返回值的类型没有特别的要求。19 .您要说明JVM加载class文件的原理吗?a :在JVM中加载类是由类加载器(类加载器)及其子类实现的。 Java中的类加载器是一个重要的Java运行时系统组件,在运行时在类文件中搜索和加载类。 类加载通常是通过将类. class。

13、文件中的数据导入内存来创建字节数组并将其导入. class文件中20、抽象类(abstract类)和接口(接口)有什么区别?a :不能实例化抽象类和接口,但是可以定义抽象类和接口类型的引用。 如果类继承了抽象类或实现了接口,并且该类的所有抽象方法都必须实现,则该类还必须声明为抽象类。 接口比抽象类更抽象。 因为抽象类定义了构造函数,有抽象方法和具体方法,接口没有定义构造函数,而且所有的方法都是抽象方法。 抽象类的成员为私有、默认、受保护和公共,接口的所有成员都是公共的。 虽然可以在抽象类中定义成员变量,但接口中定义的成员变量实际上是常数。 具有抽象方法的类必须声明为抽象类,而抽象类不一定必须具。

14、有抽象方法。21.Java有内存泄漏吗? 请简单说明一下。a :理论上,Java有垃圾收集机制(GC ),所以不存在内存泄漏问题(这也是Java被广泛用于服务器端编程的重要原因)。 但是,在实际的开发中,虽然是无用的,但可能存在可以到达的对象,这些对象没有被GC回收,所以也会发生内存泄漏。 例如,hibernate的Session (主缓存)中的对象是持久的,垃圾收集器不会回收对象,但是这些对象可能存在不必要的垃圾对象,必须立即关闭或刷新22、什么是PS?为什么需要PS?a:GC是垃圾收集的意思,垃圾收集能有效地防止内存泄漏,有效地使用可用的内存String s=new String(“xyz。

15、”); 您创建了多少个字符串对象?a :两个对象,一个是静态区域“xyz”,另一个是在new堆上创建的对象。24 .接口能否继承接口? 抽象类是否可以实现(implements )接口? 抽象类能否继承具体类(concrete class )?a :接口可以继承接口,支持多个继承。 抽象类可以实现接口,而抽象类可以继承具体的类,也可以继承抽象类。25 .在Java中使用final关键字是什么?a:(1)修饰类:表示无法继承(2)修饰方法:表示方法不能改写(3)修饰变量:表示变量只被一次分配就不能变更值(常数)。26 .指出下列程序的执行结果:等级a ;设为静态System.out.print(。

16、1 );以下将publica () ()转换为System.out.print(2 );以下以下classbnextensa;设为静态system.out.print(a );以下publicb()()system.out.print(b );以下以下公共类hello ;publicstaticvoidmain (string args ) a ab=新b ();ab=新b ();以下以下执行结果: 1a2b2b。 创建对象时,构造函数的调用顺序是首先初始化静态成员,然后调用父类构造函数,然后初始化非静态成员,最后调用自构造函数。27 .数据类型之间的转换:如何将字符串转换为基本数据类型?-如何将基本数据类型转换为字符串?答案:-调用包装类中与基本数据类型对应的方法parseXXX(String )或valueOf(String ),返回对应的基本类型-将基本数据类型连接到空字符串(“)以获取对应的字符串的另一种方法是调用String类的valueOf ()方法来返回适当的字符串28、如何实现字符串的反转和替换?a :有很多方法。 你可以自己写实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值