博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
7.26
阅读量:5100 次
发布时间:2019-06-13

本文共 2932 字,大约阅读时间需要 9 分钟。

ONE StringBuffer类对象创建之后可以再修改和变动.

String,StringBuffer,StringBuilder,都实现了CharSequence接口。
String是个不可继承类(final修饰),也是个不可变类(内部char数组被final修饰)。
StringBuffer和StringBuilder内部都是一般的动态数组,所以可变。前者是线程安全的,因为方法基本都被synchronized修饰了。
 
String对象不可变、StringBuffer对象可变的含义:
举个例子:String str = "aa"; str = "aa"+"bb"; 此时str的值为"aabb",但是"aabb"不是在开始的字符串"aa"后面直接连接的"bb",而是又新生成了字符串"aabb",字符串"aa"一旦被初始化,那么它的值不可能再改变了。
StringBuffer strb = StringBuffer("aa"); strb.append("bb"); 此时的strb的值也为"aabb",但是"aabb"是直接在开始的字符串"aa"后面连接的“bb”,并没有生成新的字符串。
 

TWO 类Person里面有个方法sleep(),如果直接用Person.sleep(),则方法sleep前面必须用的关键词是?  (  static  )

static关键字:针对多个对象共有的成员变量值时所提出的。

特点:1、随着类的加载而加载;    2、优先于对象存在;    3、被类的所有对象共享;       4、可以通过类名直接调用。
注意事项:1.在静态方法中是没有this关键字的;        2.静态方法只能访问静态的成员变量和静态的成员方法。
 
能被类直接调用,说明是静态的,随着类的加载而加载

THREE Java是从()语言改进重新设计  C++

java是类C语言,从C++改进而来,去掉了指针和多继承,采用自动垃圾回收等
 
FOUR i++
1 链接:https://www.nowcoder.com/questionTerminal/180c762a093640409a5972d0bcc7d787 2 来源:牛客网 3  4 public static int getValue() { 5        int i = 1; 6        try { 7            i = 4; 8            return i; 9        } finally {10            i++;11            return i;12        }13    }//这里return 5;i=514  15    public static int getValue2() {16        int i = 1;17        try {18            i = 4;19            return i;20        } finally {21            i++;22        }23    }//这里return 4;i=5

 

FIVE 在类Tester中定义方法如下,

public double max(int x, int y) { // 省略 }

则在该类中定义如下哪个方法头是对上述方法的重载(Overload)? 

public int max(double a, double b) {}

重载就是一句话:同名不同参,返回值无关。
覆盖/重写:同名同参
 
SIX 关于Java的抽象类、接口,以下描述错误的是?
抽象类不一定含有抽象方法,接口中的方法都是抽象方法
一个类只能继承一个抽象类,但可以实现多个接口;一个接口可以继承多个接口
抽象类和接口中的方法都没有方法体 抽象类可以含有私有成员变量,接口不含有私有成员变量
选择C。
A----------抽象类不一定含有抽象方法,接口中的方法都是抽象方法。
接口中的方法默认修饰符有public abstract。 B----------一个类只能继承一个一个抽象类,但可以实现多个接口;一个接口可以继承多个接口。 Java里类是单继承的,接口是可以多继承的,用关键字extends。 C----------抽象类和接口中的方法都没有方法体。 抽象类中的方法是可以有方法体的。JDK1.8之后,接口中的方法也可以有方法体,用default关键字修饰方法。 D----------抽象类可以含有私有成员变量,接口不含有私有成员变量。 接口中的成员变量都是public static final的,一般用作常量。  7 接口 只能用 public 和 abstract 修饰。only public & abstract are permitted 。
内部接口 only public, protected, private, abstract & static are permitted
 

8 假设有以下代码String s = "hello";String t = "hello";char c [ ] = {'h','e','l','l','o'};下列选项中返回false的语句是?

s.equals (t);

t.equals (c);

s==t;

t.equals (new String ("hello"));

首先==与equals是有明显区别的。

==强调栈中的比较,可以理解为地址比较
equals强调对象的内容比较
String s=“hello”;会在栈中生成hello字符串,并存入字符串常量池中。
String t=“hello” ;创建时,会在字符串常量池中寻找,当找到需要的hello时,不进行字符串的创建,引用已有的。 所以,s==t返回true,s.equals(t)也是true。
char c[]={'h','e','l','l','o'}; c==s这个是不存在的,==两边类型不同
t.equals(c)这个语句在anObject instanceof String这步判断不会通过,也就是cha[] 压根不能与String相比较,类型不是相同的。返回false

 

 

1. java数据类型分为:
        *  基本数据类型 
        *  引用数据类型 
2.对于"=="
        *用于基本数据类型相互比较. 比较二者的值是否相等.
        *用于引用数据类型相互比较. 比较二者地址是否相等.
        *不能用于基本数据类型与引用型比较.
3.对于"equals":
        * 不能用于基本数据类型比较(因为这是一个方法, 继承自object).
        *用于进行对象的比较, 比较二者的引用地址是否相同.
 4.特殊情况:
        1)数值型基本类型和数值型类会存在自动装箱和自动拆箱.
        2)字符串会以常量形式存在, 如果多个字符串变量值相同, 则他们指向同一个地址.

        3)数值类型会存在类型自动转换.

5.本题对照上面规则解题.
 
 

 

 

转载于:https://www.cnblogs.com/shareidea94/p/11249622.html

你可能感兴趣的文章
python第九天课程:遇到了金角大王
查看>>
字符串处理
查看>>
HtmlUnitDriver 网页内容动态抓取
查看>>
ad logon hour
查看>>
获得进程可执行文件的路径: GetModuleFileNameEx, GetProcessImageFileName, QueryFullProcessImageName...
查看>>
证件照(1寸2寸)拍摄处理知识汇总
查看>>
罗马数字与阿拉伯数字转换
查看>>
Eclipse 反编译之 JadClipse
查看>>
Python入门-函数
查看>>
[HDU5727]Necklace(二分图最大匹配,枚举)
查看>>
距离公式汇总以及Python实现
查看>>
设计模式之装饰者模式
查看>>
一道不知道哪里来的容斥题
查看>>
Blender Python UV 学习
查看>>
window添加右键菜单
查看>>
入手腾龙SP AF90mm MACRO
查看>>
python学习4 常用内置模块
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
ResolveUrl的用法
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>