Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

楼主: RecursiveG

[软件开发讨论] [编程开发]开发能力自测

  [复制链接]
DarcJC 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
3478
钻石
性别
保密
注册时间
2014-3-31
查看详细资料
发表于 2016-1-30 15:56:14 | 显示全部楼层
本帖最后由 z25096708 于 2016-3-4 20:42 编辑
andylizi 发表于 2015-12-8 21:06
恭喜你跟我一样上当了……foreach的本质是迭代器……我后来才想起来……

看到一大堆代码还没注释我脑子就炸了












梨子= =你拿到TDIANT送的梨子没= =
=======================================================
@andylizi 梨子= =上次StupidTdiant还给你在淘宝选购梨子。。。。。。。。






评分

参与人数 1金粒 +1 收起 理由
andylizi + 1 啥啥啥

查看全部评分

回复

使用道具 举报

TPAMCMOD 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
1399
钻石
性别
保密
注册时间
2016-1-25
查看详细资料
发表于 2016-1-25 20:27:44 | 显示全部楼层
头脑已经烧了......{:10_519:}
回复

使用道具 举报

土球球 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
13577
钻石
性别
保密
注册时间
2015-8-23
查看详细资料
发表于 2015-12-31 15:24:58 | 显示全部楼层
本帖最后由 ustc_zzzz 于 2015-12-31 15:27 编辑

直接从中级开始吧= =初级的懒得答了= =

(随便答答不要较真)

中级篇:


高级篇:


@RecursiveG
回复

使用道具 举报

Faints_小梦 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
138
钻石
性别
保密
注册时间
2015-11-7
查看详细资料
发表于 2015-12-15 21:21:23 | 显示全部楼层
完全看不懂,比较初二党!
回复

使用道具 举报

andylizi 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
15921
钻石
性别
保密
注册时间
2014-4-26
查看详细资料
发表于 2015-12-8 21:06:05 | 显示全部楼层
ufof 发表于 2015-11-30 20:53
好吧,看到那么多人参与。我也小试身手一下。

初级篇

恭喜你跟我一样上当了……foreach的本质是迭代器……我后来才想起来……

评分

参与人数 1金粒 +1 收起 理由
ufof + 1 666

查看全部评分

回复

使用道具 举报

ufof 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
3925
钻石
性别
保密
注册时间
2014-7-10
查看详细资料
发表于 2015-12-8 21:01:32 | 显示全部楼层
ufof 发表于 2015-11-30 04:53
好吧,看到那么多人参与。我也小试身手一下。

初级篇

@RecursiveG
回复

使用道具 举报

ufof 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
3925
钻石
性别
保密
注册时间
2014-7-10
查看详细资料
发表于 2015-11-30 20:53:37 | 显示全部楼层
本帖最后由 ufof 于 2015-11-30 05:10 编辑

好吧,看到那么多人参与。我也小试身手一下。

初级篇

1.

Java ---- 编程语言
JVM ----  运行时虚拟机
JRE ---- 运行时环境
JDK ---- 开发环境
javac ---- 编译器
*.java ---- 源文件
*.class ---- 目标文件(字节码文件更好?)
Eclipse ---- IDE
IDE ---- Integrated Development Environment
Gradle ---- 构建工具
Javadoc ----  开发文档

2.

  1. 1. int i=0;
  2. 2. for(;;);
  3. 3. List<String> myList = null;
  4. 4. Map<Integer, Integer> map = new Map<Integer, Integer>;
  5. 5. Map anotherMap = new Map();
  6. 6. if (currentIndex==index=getIndex()) doSomething();
  7. 7. while(true);
  8. 8. /*/* Important Comment */*/
  9. 9. public static main() {}
  10. 10. private foo(){foo();}
  11. 11. @NotNull MyClass instance = null;
  12. 12. throw RuntimeException();
  13. 13. List<Player> myList = new List<Player>();
复制代码
1. 可以
2. 可以通过编译(如果后面没有其他语句),但是会陷入无限循环。如果后面有语句,会是unreachable的,那就会报错
3.
可以
4. 语法问题,写构造方法的参数的括号忘了
5. 可以
6. 不可以,赋值运算符优先级是最低的,然而if中的括号必须是布尔
7. 同②
8. 不可以,多行注释不可以嵌套。最后一个关闭标记没有找到与之对应的开始标记
9. 不可以。主方法也是方法,返回值类型必须声明
10. 如果foo是构造方法,可以通过。如果不是,不可以。另外,这是无限制的递归,会陷入死循环
11. 取决于@NotNull这个Annotation(Java有提供这个Annotation吗?)
12. 不可以。throw抛出的是一个异常的对象。可以使用匿名对象“throw new RuntimeException()”
13. 可以。然而,Java 7之后“new List<Player>()”可以被简化为“new List<>()”,也就是菱形语法

3,4跳过(不了解JSON,惭愧)

5.
因为32位系统位数不够,2^31-1不足以寻址4G内存

6. foreach的本质当然是for

7.
Lambda表达式是一个语法糖,用于简化匿名内部类。还有一个前提,就是匿名内部类必须是函数式接口的实现类。例如这段程序:

  1. new Thread(new Runnable(){
  2.     @Override
  3.     public void run(){
  4.          System.out.println("run");
  5.     }
  6. });
复制代码

在这个程序中,需要使用匿名内部类的方式实现Runnable并传入Thread类的构造方法。但是Lambda表达式可以把这个化简成:

  1. new Thread(() -> System.out.println("runs"));
复制代码

8.

  • for是一个循环语法。相对while来讲,对于变量的初始化,操作(一般自增自减)和循环是否继续的判断都融为一体;
  • while也是一个循环语法。通过布尔表达式判断是否继续循环。先判断再循环;
  • do while同while,但是先循环再判断
  • break从当前循环跳出
  • continue从本次循环跳出

LZ貌似写了两个for。。

9.

  1. void foo(int a, int b);
  2. void foo(int x, int y);
  3. void bar(List<Integer> list);
  4. void bar(List<Double> list);
  5. void foo(Integer a, Integer b);
  6. void foo(List<Integer> list);
  7. void bar(List list);
复制代码

foo(int a, int b)和foo(int x, int y)两个方法本质相同。很容易理解,因为两个方法的形参列表是相同的(int, int),只是形参名不一样。

然而对于foo(Integer a, Integer b),虽说Integer是int的包装类,但是形参列表是不同的,所以说和前两个本质有区别。

“void bar(List<Integer> list)”和“void foo(List<Integer> list)”两个方法本质一样。只是方法名不一样罢了。

关于三个bar(),虽说形参中的List有着不同的泛型,方法本质依旧一样。因为无论是List<Integer>、List<Double>等,都是instanceof List。只是传入实参时应当注意一下就行了。

10.

extends是指类继承另外一个类;implements是类实现一个接口。

如果A类继承B类,那么A类获得B类中的所有类成员;如果A类实现B接口,那么A类就必须遵守B接口的“规范”,也就是要复写B接口的所有方法。

11. 应该4个

12.

首先使用javac命令对这个源代码文件进行编译,会生成一个.class文件,也就是字节码文件。

然后使用java运行这个字节码文件。

中级篇

1.

这个方法不算是很高效。这是因为在方法中使用递归的算法运算斐波那契数。然而,递归算法每递归一次就会在栈内存给方法分配一个栈区。递归多了又出现栈内存溢出的风险。

应当使用循环来解决这个问题:

  1. static int func(int x) {
  2.         if (x < 0)
  3.                 throw new IllegalArgumentException("only positive integers please");
  4.         int num1 = 1;
  5.         int num2 = 1;
  6.         int result = 0;
  7.         for (int count = 0; count < x; count++) {
  8.                 result = num1 + num2;
  9.                 num1 = num2;
  10.                 num2 = result;
  11.         }
  12.         return result;
  13. }
复制代码

2.  选择死亡

3.

本人对C++不太了解。但是感觉是因为指针的关系,为了释放资源必须删除。或者因为Java有自动的垃圾回收机制,C++没有。

4. 这是因为指定泛型的类型时必须是引用数据类型。int是基本数据类型。可以改成int的包装类Integer。

5.  选择死亡

6.  
不可以。static final的字段十分特殊:首先在内存共享区中只有一个这样的字段,因为属于类而不是实例;还是最终的。所以说这个值永永远远就是刚开始给其赋的值。即使使用反射应该也会报错。

剩下的我全部选择死亡.. 我对插件以及mod还不是太了解,只会Java这个编程语言。请过目@RecursiveG




回复

使用道具 举报

cqjjjzr 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
1070
钻石
性别
保密
注册时间
2014-12-17
查看详细资料
发表于 2015-11-9 13:40:54 | 显示全部楼层
答题卡:
1.
Java语言
JVM虚拟机
JRE环境
JDK开发环境
JAVAC编译器
*.java源文件
*.class目标文件
Eclipse IDE
IDE Integ......
Gradle构建工具
Javadoc开发文档

2.
1,2,3,5,7,10(会出现运行时错误),11,13

3.
List<List> root = new List<>();
List<Map> list1 = new List<>();
Map<String,Integer> sub1to5 = new HashMap<>();
List<Map> list2 = new List<>();
Map<String,Integer> sub6 = new HashMap<>();
root.add(list1);
root.add(list2);
list1.add(sub1to5);
list2.add(sub6);

4.不会

5.32位寻址系统的长度不足以存放4G以上内存的内存地址

6.for

7.泛型

8.for:加强的while while:条件循环 dowhile:执行一次之后条件循环 breakcontinue:跳出循环和开始下一次循环

9.1,2
3.7 4,7

10.extends继承类,implements实现接口

11.4

12.javac A.java
java A

中级
1.不。
int func(int x) {
    if (!(x > 1)) return 1;
    if (x < 0) throw new IllegalArgumentException();
    return func(x - 1) + func(x - 2);
}
接下来的后面填坑
回复

使用道具 举报

0x3B800001 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
5271
钻石
性别
保密
注册时间
2014-5-7
查看详细资料
发表于 2015-10-31 17:50:22 | 显示全部楼层
lz指的是通向公式+快速幂吗?

评分

参与人数 1金粒 +1 收起 理由
RecursiveG + 1 Bingo! 其实我比较喜欢用矩阵算,没有浮点.

查看全部评分

回复

使用道具 举报

0x3B800001 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
5271
钻石
性别
保密
注册时间
2014-5-7
查看详细资料
发表于 2015-10-31 17:46:10 | 显示全部楼层
丶皇天 发表于 2015-10-31 08:53
话说中级篇的第一题怎么没有人讨论。第一题效率低的原因是用了递归算法吧,作用是求出斐波那契数列第x+1项 ...

O(log(n))算法?!让我想想

评分

参与人数 1金粒 +1 收起 理由
huanghongxun + 1 矩阵快速幂O(logn)

查看全部评分

回复

使用道具 举报

ufof 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
3925
钻石
性别
保密
注册时间
2014-7-10
查看详细资料
发表于 2015-10-31 15:44:01 | 显示全部楼层
丶皇天 发表于 2015-10-30 16:53
话说中级篇的第一题怎么没有人讨论。第一题效率低的原因是用了递归算法吧,作用是求出斐波那契数列第x+1项 ...

的确,递归太耗费栈内存。。
回复

使用道具 举报

0x3B800001 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
5271
钻石
性别
保密
注册时间
2014-5-7
查看详细资料
发表于 2015-10-31 08:53:53 | 显示全部楼层
本帖最后由 丶皇天 于 2015-10-31 08:58 编辑

话说中级篇的第一题怎么没有人讨论。第一题效率低的原因是用了递归算法吧,作用是求出斐波那契数列第x+1项
  1. int func(int x) {
  2.     if (x == 0 || x == 1) return 1;
  3.     if (x < 0) throw new IllegalArgumentException();
  4.     return func(x - 1) + func(x - 2);
  5. }
复制代码
我的答案是:
int func(int x)
{
    if (x < 0) throw new IllegalArgumentException();
    int i,f1,f2,f3;
    f1=1;
    f2=1;
    for (i=0;i<x;i++)
    {
        f3=f1+f2;
        f1=f2;
        f2=f3;
    }
    return f1;
}







评分

参与人数 1金粒 +1 收起 理由
RecursiveG + 1 Bingo! 还有O(log(n))算法哟

查看全部评分

回复

使用道具 举报

xiweihai 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
2028
钻石
性别
保密
注册时间
2014-5-7
查看详细资料
发表于 2015-10-26 16:01:11 | 显示全部楼层
andylizi 发表于 2015-10-26 15:38
你对第二题的回答我已经醉了,他的意思是单独把每一句拿出来,没跟你说连起来啊 ...

随便写写而已,别当真
回复

使用道具 举报

andylizi 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
15921
钻石
性别
保密
注册时间
2014-4-26
查看详细资料
发表于 2015-10-26 15:46:49 | 显示全部楼层
本帖最后由 andylizi 于 2015-10-26 15:51 编辑



果不其然,但是。。。原因在哪里呀原因在哪里
呃,刚刚又试了下,修改数组。。


为什么数组就可以。。
回复

使用道具 举报

andylizi 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
15921
钻石
性别
保密
注册时间
2014-4-26
查看详细资料
发表于 2015-10-26 15:38:43 | 显示全部楼层
xiweihai 发表于 2015-10-26 01:51
好吧刚刚关完ide看见这个
1.jvm是虚拟机,jre是运行环节,jdk开发环境。javadoc 是api,java编程语言,.jav ...

你对第二题的回答我已经醉了,他的意思是单独把每一句拿出来,没跟你说连起来啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2020-6-2 04:07 , Processed in 0.057426 second(s), Total 50, Slave 34 queries, Release: Build.2020.05.27.1637, Gzip On, MemCached On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

© 2010-2020 我的世界中文论坛 版权所有 本站原创图文内容版权属于原创作者,未经许可不得转载

快速回复 返回顶部 返回列表