设为首页收藏本站

职业吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 333|回复: 1

基础(11,20)

[复制链接]

15

主题

15

帖子

53

积分

网站编辑

Rank: 8Rank: 8

积分
53
发表于 2017-2-3 23:06:02 | 显示全部楼层 |阅读模式
本帖最后由 editor 于 2017-2-3 23:08 编辑

11switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上??
答:在Java 5以前,switch(expr)中,expr只能是byteshortcharint。从Java 5开始,Java中引入了枚举类型,expr也可以是enum类型,从Java 7开始,expr还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的。
12、用最有效率的方法计算2乘以8?
答: 2 << 3(左移3位相当于乘以23次方,右移3位相当于除以23次方)。
补充:我们为编写的类重写hashCode方法时,可能会看到如下所示的代码,其实我们不太理解为什么要使用这样的乘法运算来产生哈希码(散列码),而且为什么这个数是个素数,为什么通常选择31这个数?前两个问题的答案你可以自己百度一下,选择31是因为可以用移位和减法运算来代替乘法,从而得到更好的性能。说到这里你可能已经想到了:31 * num 等价于(num << 5) - num,左移5位相当于乘以25次方再减去自身就相当于乘以31,现在的VM都能自动完成这个优化。
13、数组有没有length()方法?String有没有length()方法??
答:数组没有length()方法,有length 的属性。String length()方法。JavaScript中,获得字符串的长度是通过length属性得到的,这一点容易和Java混淆。
14、在Java中,如何跳出当前的多重嵌套循环??
答:在最外层循环前加一个标记如A,然后用break A;可以跳出多重循环。(Java中支持带标签的breakcontinue语句,作用有点类似于CC++中的goto语句,但是就像要避免使用goto一样,应该避免使用带标签的breakcontinue,因为它不会让你的程序变得更优雅,很多时候甚至有相反的作用,所以这种语法其实不知道更好)
15、构造器(constructor)是否可被重写(override)??
答:构造器不能被继承,因此不能被重写,但可以被重载。
16、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对??
答:不对,如果两个对象xy满足x.equals(y) == true,它们的哈希码(hash code)应当相同。Java对于eqauls方法和hashCode方法是这样规定的:(1)如果两个对象相同(equals方法返回true),那么它们的hashCode值一定要相同;(2)如果两个对象的hashCode相同,它们并不一定相同。当然,你未必要按照要求去做,但是如果你违背了上述原则就会发现在使用容器时,相同的对象可以出现在Set集合中,同时增加新元素的效率会大大下降(对于使用哈希存储的系统,如果哈希码频繁的冲突将会造成存取性能急剧下降)。
补充:关于equalshashCode方法,很多Java程序都知道,但很多人也就是仅仅知道而已,在Joshua Bloch的大作《Effective Java》(很多软件公司,《Effective Java》、《Java编程思想》以及《重构:改善既有代码质量》是Java程序员必看书籍,如果你还没看过,那就赶紧去亚马逊买一本吧)中是这样介绍equals方法的:首先equals方法必须满足自反性(x.equals(x)必须返回true)、对称性(x.equals(y)返回true时,y.equals(x)也必须返回true)、传递性(x.equals(y)y.equals(z)都返回true时,x.equals(z)也必须返回true)和一致性(当xy引用的对象信息没有被修改时,多次调用x.equals(y)应该得到同样的返回值),而且对于任何非null值的引用xx.equals(null)必须返回false。实现高质量的equals方法的诀窍包括:1. 使用==操作符检查"参数是否为这个对象的引用"2. 使用instanceof操作符检查"参数是否为正确的类型"3. 对于类中的关键属性,检查参数传入对象的属性是否与之相匹配;4. 编写完equals方法后,问自己它是否满足对称性、传递性、一致性;5. 重写equals时总是要重写hashCode6. 不要将equals方法参数中的Object对象替换为其他的类型,在重写时不要忘掉@Override注解。
17、是否可以继承String类??
答:String 类是final类,不可以被继承。
补充:继承String本身就是一个错误的行为,对String类型最好的重用方式是关联关系(Has-A)和依赖关系(Use-A)而不是继承关系(Is-A)。
18、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递??
答:是值传递。Java语言的方法调用只支持参数的值传递。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的属性可以在被调用过程中被改变,但对对象引用的改变是不会影响到调用者的。C++C#中可以通过传引用或传输出参数来改变传入的参数的值。在C#中可以编写如下所示的代码,但是在Java中却做不到。
说明:Java中没有传引用实在是非常的不方便,这一点在Java 8中仍然没有得到改进,正是如此在Java编写的代码中才会出现大量的Wrapper类(将需要通过方法调用修改的引用置于一个Wrapper类中,再将Wrapper对象传入方法),这样的做法只会让代码变得臃肿,尤其是让从CC++转型为Java程序员的开发者无法容忍。
19StringStringBuilderStringBuffer的区别??
答:Java平台提供了两种类型的字符串:StringStringBuffer/StringBuilder,它们可以储存和操作字符串。其中String是只读字符串,也就意味着String引用的字符串内容是不能被改变的。而StringBuffer/StringBuilder类表示的字符串对象可以直接进行修改。StringBuilderJava 5中引入的,它和StringBuffer的方法完全相同,区别在于它是在单线程环境下使用的,因为它的所有方面都没有被synchronized修饰,因此它的效率也比StringBuffer要高。
面试题1?- 什么情况下用+运算符进行字符串连接比调用StringBuffer/StringBuilder对象的append方法连接字符串性能更好?
1. String对象的intern方法会得到字符串对象在常量池中对应的版本的引用(如果常量池中有一个字符串与String对象的equals结果是true),如果常量池中没有对应的字符串,则该字符串将被添加到常量池中,然后返回常量池中字符串的引用;2. 字符串的+操作其本质是创建了StringBuilder对象进行append操作,然后将拼接后的StringBuilder对象用toString方法处理成String对象,这一点可以用javap -c StringEqualTest.class命令获得class文件对应的JVM字节码指令就可以看出来。
20、重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分??
答:方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求。

回复

使用道具 举报

0

主题

3

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2018-2-7 15:51:41 | 显示全部楼层
天龙一条龙|奇迹Mu一条龙|魔兽一条龙|魔域一条龙|墨香一条龙
天堂2一条龙|传奇3一条龙|英雄王座一条龙|千年一条龙|征途一条龙
新魔界一条龙|骑士一条龙|烈焰一条龙|破天一条龙|决战一条龙
美丽世界一条龙|乱勇OL一条龙|倚天2一条龙|完美世界一条龙|征服一条龙
天堂一条龙|传世一条龙|真封神一条龙|劲舞团一条龙|天上碑一条龙
永恒之塔一条龙|仙境RO一条龙|诛仙一条龙|神泣一条龙|石器一条龙
冒险岛一条龙|惊天动地一条龙|热血江湖一条龙|问道一条龙|密传一条龙
火线任务(Heat Project)一条龙|飞飞OL一条龙|洛汗一条龙|天之炼狱一条龙
丝路传说一条龙|大话西游一条龙|蜀门一条龙|机战一条龙|剑侠情缘一条龙
绝对女神一条龙|传说OL一条龙|刀剑一条龙|弹弹堂一条龙|科洛斯一条龙
魔力宝贝一条龙|武林外传一条龙|网页游戏一条龙|页游一条龙|希望OL一条龙
成吉思汗一条龙|剑侠世界一条龙|全民奇迹一条龙|挑战OL一条龙
红月一条龙|十二之天(江湖OL)一条龙|倚天一条龙|dnf一条龙

力争做到传奇私服一条龙最TOP公司,cqsf最信誉的一条龙制作商,GM开服必选老品牌,
用诚信和技术实力赢得客户,这里不强制广告,不强制充值平台。很多被骗后才来我这。
不管你上多少钱广告都与我无关!充值平台随便选,不存在黑单!
服务器租用-开区模版-私服套餐-版本挑选-广告代理
官方网站www.05mx.com
客服咨询QQ1207542352(企鹅扣扣)
Email:1207542352@qq.com
www.05mx.com服务端商业版本下载地址(已修复不能下载问题):
www.05mx.com/soft/index.html
石器私服一条龙制作_05mx.com 天堂2sf一条龙开服_05mx.com 仙境RO开区一条龙服务端_05mx.com












石器私服一条龙制作 天堂2sf一条龙开服 仙境RO开区一条龙服务端
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|职业助手吧    

GMT+8, 2018-2-20 05:58 , Processed in 0.093101 second(s), 29 queries , Gzip On.

Powered by zhiye8.net

© 2016-2017 zhiye8.net

快速回复 返回顶部 返回列表