一、选择题

1.A 派生出子类 B , B 派生出子类 C ,并且在 java 源代码有如下声明:

  1. A a0=new A();
  2. A a1=new B();
  3. A a2=new C();

问以下哪个说法是正确的?()
A 只有第一行能通过编译
B 第1、2行能通过编译,但第3行编译出错
C 第1、2、3行能通过编译,但第2、3行运行时出错
D 第1行,第2行和第3行的声明都是正确的

正确答案 : D

解析 : ① 继承的传递性 , B继承于A,C继承于B,所以A为B和C共同的父类 ; ② 父类引用指向子类对象 , 子类可以自然地完成向上(到父类的)转型

2.下面代码将输出什么内容:()

public class SystemUtil{public static boolean isAdmin(String userId){return userId.toLowerCase()=="admin";}public static void main(String[] args){System.out.println(isAdmin("Admin"));}
}

正确答案 : false

解析 : 在源码中 toLowerCase 是重新 new String() , "=="是比较身份而非比较值, 所以这两个对象的地址是不相同的.

3.阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有()

package NowCoder;
class Test {public static void hello() {System.out.println("hello");}
}
public class MyApplication {public static void main(String[] args) {// TODO Auto-generated method stubTest test=null;test.hello();}
}

正确答案 : 能编译通过,并正确运行

解析 : 静态方法不依附于对象,这里是直接调用静态方法,类的静态成员不依赖实例对象,静态成员在类编译的时候就已经被创建好了,无论是是使用类名,还是使用实例对象都是可以访问的

4.在使用super和this关键字时,以下描述正确的是()
A 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
B super()和this()不一定要放在构造方法内第一行
C this()和super()可以同时出现在一个构造函数中
D this()和super()可以在static环境中使用,包括static方法和static语句块

正确答案 : A

解析 : ① super()调用父类中的某一个构造函数,this()是调用本类中另一种形成的构造函数 ② this()和super()都必须出现在构造器的第一行,所以两者不可能出现在同一个构造器中 ③ this和super都不能出现了静态方法、静态块中

5.如下代码的 结果是什么 ?

class Base {Base() {System.out.print("Base");}
}
public class Alpha extends Base {public static void main( String[] args ) {new Alpha();//调用父类无参的构造方法new Base();}
}

正确答案 : BaseBase

解析 : 在执行new Alpha()时,因为Alpha继承了Base , 在执行Alpha类的构造方法前 , 会先执行父类的构造方法,再执行相应的子类的构造方法,所以此处会打印Base,在执行new Base()时,会直接执行Base中无参构造器的代码,再输出Base

6.如下代码的输出结果是什么?

public class Test {public int aMethod(){static int i = 0;i++;return i;}public static void main(String args[]){Test test = new Test();test.aMethod();int j = test.aMethod();System.out.println(j);}
}

正确答案 : 编译失败

(来源牛客)大佬解析 : 静态变量是先于类的其他而加载的,所以static代码块只能是类成员变量,而不能是局部变量,因为在static加载时,方法还没有分配空间

7.下列哪一种叙述是正确的()
A abstract修饰符可修饰字段、方法和类
B 抽象方法的body部分必须用一对大括号{ }包住
C 声明抽象方法,大括号可有可无
D 声明抽象方法不可写出大括号

正确答案 : D

解析 : abstract只可修饰方法和类 , 不可以修饰字段(类成员变量);抽象方法是没有被实现的方法,没有body部分,也没有花括号,声明后面直接就是分号

8.下列说法正确的有:()
A class中的constructor不可省略
B constructor必须与class同名,但方法不能与class同名
C constructor在一个对象被new 时执行
D 一个class只能定义一个constructor

正确答案 : C

解析 : . 类中的构造方法可以省略不写的 , 构造方法必须跟类名相同,普通的类方法是可以和类名同名的,和构造方法唯一的区分就是,构造方法没有返回值 , 构造方法都在new 对象的时候调用的 , 一个类可以定义多个构造方法的

9.选项中哪一行代码可以替换 //add code here 而不产生编译错误

public abstract class MyClass {public int constInt = 5;//add code herepublic void method() {}
}

A public abstract void method(int a);
B consInt=constInt+5;
C public int method();
D public abstract void anotherMethod(){}

正确答案 : A

解析 : ① 抽象类可以包含抽象方法 , 用abstract修饰,是抽象方法,不能带方法体(带有{}的就是方法体,即使里面是空的) ② 类中定义成员和方法,不能直接进行运算,可以写在代码块{}或者静态代码块中static{}中 ③ 方法重载需要满足 , 在同一个类中 , 方法的名称相同 , 参数列表不同(参数的类型,个数,顺序) , 与访问修饰符和返回值类型无关

(未学)10.java 中哪个关键字可以对对象加互斥锁?
A transient
B synchronized
C serialize
D static

正确答案 : B

解析 :① transient是反序列化修饰符,序列化的时候,类中的属性都会被复制,但是被transient和static修饰的属性不会被复制 ② synchronized是同步锁,被synchronized修饰的方法或者代码块,同一时刻只允许被一个线程访问 ③ serialize是序列化 ④ static是静态修饰符。可修饰成员变量和方法,内部类/接口,不可修饰局部变量和外部类/接口。

二、编程题

1.标题:汽水瓶 | 时间限制:1秒 | 内存限制:32768K

有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?

输入描述:
输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=100),表示小张手上的空汽水瓶数。n=0表示输入结束,你的程序不应当处理这一行。

输出描述:
对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出0。

示例1:
输入
3
10
81
0
输出
1
5
40

import java.util.Scanner;
public class Main{public static void main(String[] args){Scanner scanner=new Scanner(System.in);while (scanner.hasNextInt()) {int num = scanner.nextInt();//一种偷懒写法//System.out.println(num/2);//int result=canMax(num);System.out.println(canMax(num));}}public static int canMax(int n){int sum=0;//核心就是抓住三和二这两种情况就好while(n>=3){sum=sum+n/3;n=n/3+n%3;}if(n==2){sum=sum+1;}return sum;}
}

2.标题:数组中的逆序对 | 时间限制:3秒 | 内存限制:32768K | 语言限制:[Python, C++, C#, Java]

有一组数,对于其中任意两个数组,若前面一个大于后面一个数字,则这两个数字组成一个逆序对。请设计一个高效的算法,计算给定数组中的逆序对个数。给定一个int数组A和它的大小n,请返回A中的逆序对个数。保证n小于等于5000。

测试样例:
[1,2,3,4,5,6,7,0],8
返回:7

import java.util.*;
public class AntiOrder {public int count(int[] A, int n) {// write code hereint result=0;//从0号位置开始打擂 看是不是比后面的大for(int bound=0;bound<n-1;bound++){for(int cur=bound+1;cur<n;cur++){if(A[bound]>A[cur]){result++;}}}return result;}
}

最后一个编程题就是基于选择排序的理念进行改变了一下~

赊了两串冰糖葫芦才写出来的小结相关推荐

  1. 赊了三串冰糖葫芦才写出来的小结

    一.选择题 1.以下代码运行输出的是 public class Person{private String name = "Person";int age=0; } public ...

  2. 赊了一串冰糖葫芦才写出来的小结

    一.前言 关于这个板块我主要用来记述一些日常练习的选择题.编程题进行查缺补漏 ~(部分题没有学过就会被特殊标记一下的哦) 二.选择题 (未学)1.执行如下程序,输出结果是( ) class Test{ ...

  3. 编程笔试(解析及代码实现):求不重复数字之和​​​​​​​给定一组整型数字,里面有且仅有两个数字值出现了一次,其他的数字都出现了两次。请写出程序求出这两个只出现了一次的数字之和

    编程笔试(解析及代码实现):求不重复数字之和给定一组整型数字,里面有且仅有两个数字值出现了一次,其他的数字都出现了两次.请写出程序求出这两个只出现了一次的数字之和 目录 题目描述 代码实现 题目描述 ...

  4. 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字

    package demo;import java.util.Arrays;/** 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字.*/ //num ...

  5. 牛客网编程题——字符串_确定两串乱序同构

    题目描述 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串.这里规定大小写为不同字符,且考虑字符串中的空格. 给定一个string stringA和一个string ...

  6. 踩了无数个坑,才写出稿费1000的文章

    踩了无数个坑,才写出稿费1000的文章,早知道这些就好了,强烈推荐给小白的你. 挣钱难,大家都想靠副业多赚一份收入,比如现在流行的写作,可很多小伙伴都像无头苍蝇般,想要撞大运,殊不知已经踩到了坑,来看 ...

  7. 手动编译包含两个import自写类的java类。

    手动编译包含两个import自写类的java类. cmd (1)e: (2)cd E:\tomcat\apache-tomcat-7.0.79-windows-x64\apache-tomcat-7. ...

  8. 刚出社会的学弟:“毕业两年月薪才35K,真是没出息啊....”

    "害,毕业两年月薪才拿35k,真失败,真的给同龄人拖后腿!"这是人能讲出来的话?这就是凡尔赛天花板?这就是我公司的高级软件测试工程师说出来的话,他计算机专业毕业两年,包括实习,在我 ...

  9. FS4033泛海微原厂5V输入升压7.2V给两串磷酸铁锂电池充电IC

    1.2 应用:便捷充电设备等 1.3 电池组:3.2V电池组,两串3.2V锂电池,充满7.2V 1.4 输入电压:5V (充电亮灯,充满转灯) Max充电电流:1A 1.5芯片功能简介: 1,锂电池充 ...

最新文章

  1. The Pediatric Cancer Genome Project   儿童癌症基因组计划
  2. Java SE 8 在并发工具方面的加强
  3. 用PIL读取保存图片错误 :OSError: cannot write mode RGBA as JPEG
  4. 基于 abp vNext 和 .NET Core 开发博客项目 - 终结篇之发布项目
  5. 前端学习(1307):模块查找规则二
  6. framebuffer驱动详解3——framebuffer驱动分析(driver和device的配套查找)
  7. C4.5决策树生成算法完整版(Python),连续属性的离散化, 缺失样本的添加权重处理, 算法缺陷的修正, 代码等
  8. BugkuCTF-WEB题你从哪里来
  9. python安装扩展常用的工具是_Python 安装扩展库常用的是 _______ 工具_学小易找答案...
  10. Java开发Maven插件
  11. Windows Server 部署WEB API时内部错误
  12. Nginx-1.6.2更改端口
  13. 【渝粤教育】国家开放大学2018年秋季 0313-22T促销策划与实战 参考试题
  14. js中如何获取font标签中的内容
  15. 【LabVIEW】基于LabVIEW的俄罗斯方块小游戏
  16. clang static analyzer源码分析(番外篇):RegionStore以及evalCall()中的conservativeEvalCall
  17. L2-009 抢红包 排序+模拟
  18. Rust 最受喜爱却少有人用,Python 仅排第六,2021 全球开发者调查报告出炉
  19. android手机如何访问电脑tomcat服务器
  20. 软件工程与计算机科学的区别

热门文章

  1. 税费计算机,友商税费计算器
  2. C语言赋值被截断,c语言中赋值截断
  3. 简述linux的系统组成,简述Linux系统结构
  4. 27岁计算机考研,男生27岁研究生毕业真的晚吗?
  5. 百度架构师手把手教深度学习之心得
  6. 2019年面试大概问题
  7. 手把手教你最近很火的 微信公众号测试号推送消息
  8. Failed to create Anaconda Menus
  9. 【SCI论文攥写】注意事项
  10. Lubuntu下启用Compiz