java语言基础大闯关

标签: java
5人阅读 评论(0) 收藏 举报
分类:

# 一、查错

前言

此类型题目,一般都会给出错误的代码,以及相应的正确代码,如有必要,还会给出简短的提示。

需要思考的点主要有两个:

  1. 为什么错误代码是错的?
  2. 相比错误代码,正确代码为什么是对的

题目

  1. wrong:

    char c1 = 'd';
    c1 = c1 + 1;

    correct:

    char c1 = 'd';
    c1 += 1;
    c1++;

    hint:运算符自动类型转化

  2. wrong:

    int i = 120;
    c = i;

    correct:

    char c = 120;

    hint:编译优化

  3. wrong:

    int method(int num) {
       if(num > 0) return 1;
       else if (num == 0) return 0;
       else if(num < 0) return -1;
    }
  4. wrong:

    public class ErrorDefGenerics {
       public static void main(String[] args) {
           Dog d = new Dog();
           Cat c = new Cat();
           speak(d);
           speak(c);
       }
       static<T> void speak(T speaker) {
           speaker.talk();
       }
    }
    class Dog {
       void talk(){}
    }
    class Cat {
       void talk(){}
    }

    correct:

    public class ErrorDefGenerics {
       public static void main(String[] args) {
           Dog d = new Dog();
           Cat c = new Cat();
           speak(d);
           speak(c);
       }
       static<T extends Speaks> void speak(T speaker) {
           speaker.talk();
       }
    }
    
    interface Speaks {
       void talk();
    }
    
    class Dog implements Speaks{
       public void talk(){}
    }
    
    class Cat implements Speaks{
       public void talk(){}
    }

    hint:java泛型实现方式-擦拭

二、代码运行结果

  1. 21 % -5.2 = ?
    -21 % -5.2 = ?
  2. public class Test {
    static void method(int num) {
        System.out.println(System.identityHashCode(num));
        num = 20;
        System.out.println(System.identityHashCode(20));
        System.out.println(System.identityHashCode(num));
    }
    public static void main(String[] args) {
        int num = 10;
        System.out.println(System.identityHashCode(num));
        method(num);
    }
    }

三、知识点

  1. java语言中,只有值传递一种传递方式
  2. java存储机制
  3. java中中的每个类,如果没有显示指定,就隐含继承于java.lang.Object
  4. volatile
  5. java泛型 - 通配符
  6. java泛型的局限性:
    1. 基本数据类型不能用做类型实参
    2. 类型参数不能用于创建对象
    3. 类型参数和泛型类型不能用于instanceof运算
    4. 不能创建泛型数组(程序编译时,所有类型参数的具体类型信息都会被擦除,因此,类型参数不能用于任何运行时需要知道确切类型信息的操作中)。
查看评论

光棍节程序员闯关秀 writeup

先放上题目网址→→ https://1111.segmentfault.com/第1关 ctrl+a ~~第2关 查看页面源代码,复制粘贴 回车~~第3关 用firebug抓包,或者火狐谷歌浏...
  • specter11235
  • specter11235
  • 2017-04-13 22:59:47
  • 487

【攻略】淘宝前端智勇大闯关-第一季

淘宝前端智勇大闯关:http://ued.taobao.com/quiz/ 第一关 页面全选 或者 查看源码 第二关 最简单的方法,chrome浏览器,F12 将代码在co...
  • boyleeht
  • boyleeht
  • 2014-03-13 20:32:14
  • 2467

【攻略】淘宝前端智勇大闯关-第三季

淘宝前端智勇大闯关第一季:http://ued.taobao.com/quiz/ 淘宝前端智勇大闯关第二季:http://ued.taobao.com/quiz2/ 淘宝前端智勇大闯关第三季:ht...
  • boyleeht
  • boyleeht
  • 2014-04-02 17:46:54
  • 2512

光棍节程序员闯关秀过关全攻略

光棍节程序员闯关秀过关全攻略。程序员的寂寞谁能懂?"SF光棍节程序员闯关秀"智力挑战小游戏火热上线,看看你能闯到第几关?  游戏地址: http://segmentfault.com/game/ ,游...
  • u011314442
  • u011314442
  • 2016-11-11 16:07:30
  • 3168

Java语言基础面试题及答案

1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?  可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。 2、Java有没有goto?...
  • develop_wangzhi
  • develop_wangzhi
  • 2017-04-21 11:32:01
  • 1603

(一)语言基础——JAVA语言

JAVA基础名词 JDK(Java Development Kit):Java开发工具,包括JRE; JRE(Java Runtime Environment):Java运行环境,包括JVM; J...
  • dlmacr
  • dlmacr
  • 2017-03-28 13:00:59
  • 3559

java编写的飞机射击闯关游戏源码

  • 2011年09月01日 12:59
  • 187KB
  • 下载

java语言基础实验报告 第二个实验

package njtcstudent.com; import java.util.Scanner; public class Seond { public static void main(...
  • puhaiyang
  • puhaiyang
  • 2014-09-30 22:41:21
  • 795

java语言基础(面试相关)

1.java语言有哪些特点? 面向对象 平台无关性,一次编译,到处运行 java提供很多的内置类库 java提过了对web应用开发的支持 具有较好的安全性和健壮性 比...
  • qq_32269393
  • qq_32269393
  • 2018-03-03 10:49:56
  • 147

JAVA语言基础(达内课程)

  • 2017年08月28日 17:55
  • 31.66MB
  • 下载
    个人资料
    持之以恒
    等级:
    访问量: 30万+
    积分: 6605
    排名: 4504
    文章分类
    最新评论