当前位置: 首页 > news >正文

3道Java基础题

1

指出下列程序运行的结果:

public class Example{
    String str=new String("tarena");
    char[]ch={'a','b','c'};
    public static void main(String args[]){
        Example ex=new Example();
        ex.change(ex.str,ex.ch);
        System.out.print(ex.str+" and ");
        System.out.print(ex.ch);
    }
    public void change(String str,char ch[]){
   //引用类型变量,传递的是地址,属于引用传递。
        str="test ok";
        ch[0]='g';
    }
}

正确答案: tarena and gbc

由于string和char数组都是引用类型,调用方法时传递的是引用,如下图所示

 按道理修改str和ch时会影响原来的值,但是由于string是不可变的, 对string的修改实际 上是new
了-个新对象(这也是string和stringbuffer的区别, stringbuffer的底层是char数组, 所以可以直
接修改), 而对char数组的修改则会影响原值。所以如下图。

 2

指出下列程序运行的结果:

public static void main(String args[]) {
    List  Listlist1 = new ArrayList();
    Listlist1.add(0);
    List Listlist2 = Listlist1;
    System.out.println(Listlist1.get(0) instanceof Integer);
    System.out.println(Listlist2.get(0) instanceof Integer);
}

List集合中的元素必须是对象。 Listlist1.add(0); JDK1.5之后支持自动装箱(int类型自动装箱成Integer),编译通过。

instanceof:前一个参数通常是一个引用类型变量,后一个操作数通常是一个类(也可以是一个接口, 它用于判断前面的对象是否是后面的类,或者其子类、实现类的实例。

List没有使用泛型,说明使用get(0)取出的元素的编译类型Object型的, 但运行时类型是 Integer。所以打印true。这边体现了多态。 而Listlist1把引用赋给了List list2,说明两个指向同一个对象。第二个打印的也是true

3

 以下程序的输出结果为

class Base{
	public Base(String s){
		System.out.print("B");
	}
}
public class Derived extends Base{
	pub1ic Derived (String s) {
		System.out.print("D");
	}
	public static void main(String[] args){
		new Derived("C");
	}
}

BD
DB
C
编译错误       ------------>正确答案

 

 

子类构造方法在调用时必须先调用父类的,由于父类没有无参构造,必须在子类中显式调用,修改子类构造方法如下即可:
public Derived(String s){
    super("s");
    System.out.print("D");
}

上面这些题目来源于牛客网,自己也是刚开始做,分享的题目可能我并没有做错,但是也是给我带来了收获的题目,题解也是挑的下面牛友写的好一些的题解,希望大家有所收获。最近在突然想起来过几天就考六级了,呃呃呃,还剩十几天就考了,之前也没准备过,四级当时也没准备,压线过的,就想着报都报了就准备一下吧,毕竟不想白送钱,所以这两天忙着背单词,就只能每天做几个简单基础题或者算法题了……

 

相关文章:

  • Docker 安装 MySQL、Redis、Nginx
  • 疫情宅在家,研究一下fastjson中字段智能匹配的原理
  • 【MapGIS精品教程】001:MapGIS K9完整图文安装教程
  • 指针和数组笔试题解析
  • 人脸检测5种方法
  • SparkSQL 总结(未完待续)
  • 51单片机入门——数模\模数转换
  • 【毕业设计】 单片机自动写字机器人设计与实现 - 物联网 嵌入式 stm32
  • 花边新闻获取易语言代码
  • HTML5入门(1)——HTML基础
  • 计算机网络体概念
  • redis底层都有哪些数据结构?带你了解redis是如何存储数据的
  • 通道分离与合并、彩色图转换为灰度图、二值化
  • C语言经典算法实例4:判断回文数
  • 基于php+mysql的菜品食谱美食网
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • @angular/forms 源码解析之双向绑定
  • 2017-09-12 前端日报
  • Apache的基本使用
  • C# 免费离线人脸识别 2.0 Demo
  • iOS 颜色设置看我就够了
  • Python学习笔记 字符串拼接
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • vuex 学习笔记 01
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 老板让我十分钟上手nx-admin
  • 使用parted解决大于2T的磁盘分区
  • 算法之不定期更新(一)(2018-04-12)
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 优化 Vue 项目编译文件大小
  • 最近的计划
  • MyCAT水平分库
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • $(selector).each()和$.each()的区别
  • (0)Nginx 功能特性
  • (八)Spring源码解析:Spring MVC
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (六)Hibernate的二级缓存
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (三十五)大数据实战——Superset可视化平台搭建
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)用.Net的File控件上传文件的解决方案
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .Net Core和.Net Standard直观理解
  • .NET gRPC 和RESTful简单对比
  • .netcore如何运行环境安装到Linux服务器
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .net中生成excel后调整宽度
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • /run/containerd/containerd.sock connect: connection refused