JAVA核心技术第六章纠错

1单选(3分)
下面关于变量及其范围的陈述哪些是错误的

得分/总分

A.
实例变量是类的成员变量

B.
实例变量用关键字static声明

C.
在方法中定义的局部变量在该方法被执行时创建

D.
局部变量在使用前必须被初始化

正确答案:B你没选择任何选项
解析: D、静态成员变量通常也叫做类变量,因为它不从属于任何对象。非静态的成员变量,也叫做实例变量,是从属于某一个具体的对象。所以A是正确的(更严格的表述:实例变量是类的成员变量的一种)。实例变量不能用static,类变量采用static。方法中的临时变量是没有初始化的,在使用之前必须初始化。而类成员变量默认是有初始值的。普通基本变量可以参看第三章第二节《基本类型》视频。对象成员变量默认值是null.

下列说法错误的是

得分/总分

A.
声明为static的方法可以被重写

0.00/3.00

B.
声明为static的方法不可以调用非static变量

C.
声明为final的方法可以被重写

D.
声明为final的类不可以被继承

正确答案:C你错选为A
解析: D、声明为final的方法是不能被重写的,只能在参数列表上做修改,形成重载,而非重写。

下列代码执行结果是

class NumTest{

static int id = 1;

int id2 = 1;

NumTest(int id,int id2){

this.id = id;

this.id2 = id2;

}

void printId(){

System.out.print(id+id2+" ");

}

public static void main(String[] args) {

NumTest a = new NumTest(1,2);

NumTest b = new NumTest(2,1);

NumTest c = new NumTest(0,0);

a.printId();

b.printId();

c.printId();

}

}

得分/总分

A.
3 3 0

0.00/3.00

B.
1 2 0

C.
2 1 0

D.
编译报错

正确答案:C你错选为A
解析: D、NumTest.id是一个静态变量,所有的NumTest对象都共享同一个。所以在c对象创建完成后,NumTest.id为0.而每个对象的id2是对立的。所以在每个对象的printId方法上,将0和id2相加再输出。
static用完之后,变为0
class NumTest{

final static int num1 = 1;

static int num2 = 1;

void printNum1(){

System.out.print(num1+" ");

}

void printNum2(){

System.out.print(num2+" ");

}

public static void main(String[] args) {

NumTest a = new NumTest();

a.num2 ++;

a.printNum1();

NumTest b = new NumTest();

b.printNum2();

}

}

得分/总分

A.
1 1

B.
1 2

C.
2 2

D.
编译报错

0.00/3.00
正确答案:B你错选为D
解析: D、num1和num2都是static,num1而且是final,无法修改值,所以num1一直保持是1. a.num2和b.num2是同一个,a.num2++,导致num2变成2,因此b.num2也是2了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PerptronSegmenter是由StanfordNLP提供的一个Java中文分词器,它基于感知机算法训练得到,可以实现中文分词和词性标注。在使用PerceptronSegmenter进行中文分词时,可以结合规则、字典和语言模型等方法进行纠错,下面是一个简单的示例代码: ```java import edu.stanford.nlp.ie.crf.*; import edu.stanford.nlp.ling.*; import edu.stanford.nlp.ling.CoreAnnotations.*; import edu.stanford.nlp.sequences.*; import edu.stanford.nlp.util.*; import java.util.*; public class PerceptronSegmenterExample { public static void main(String[] args) { String text = "中国人民站起来了"; CRFClassifier segmenter = CRFClassifier.getClassifierNoExceptions("edu/stanford/nlp/models/segmenter/chinese/ctb.gz"); List<String> words = segmenter.segmentString(text); System.out.println("分词结果:" + words); // 对分词结果进行纠错 for (int i = 0; i < words.size(); i++) { String word = words.get(i); if (word.equals("中国人民")) { words.set(i, "中国人"); words.add(i + 1, "民"); } else if (word.equals("站起来")) { words.set(i, "站"); words.add(i + 1, "起来"); } } System.out.println("纠错后结果:" + words); } } ``` 在上面的示例代码中,我们首先使用PerceptronSegmenter对一个中文句子进行分词,然后通过遍历分词结果,对一些常见的错误词语进行纠错,例如将“中国人民”替换为“中国人”和“民”,将“站起来”替换为“站”和“起来”。最后输出纠错后的分词结果。需要注意的是,这只是一个简单的示例,实际情况下可能需要结合更多的规则、字典和语言模型等方法进行纠错

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值