黑马程序员技术交流社区

标题: 我的入学测试题 表示有点压力啊 [打印本页]

作者: dsh    时间: 2014-10-4 16:10
标题: 我的入学测试题 表示有点压力啊
1、 自定义枚举 Week 用于表示星期,Mon,Tue,Wed...要求每个枚举值都有toLocaleString 方法,用于获得枚举所表示的星期的中文格式 星期一、星期二、星期三...






2、 请说明Java中字符'\'的含义,有什么作用?






3、 编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。






4、 写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.   

public void setProperty(Object obj, String propertyName, Object value){   

}






5、 编写一个程序,获取10个1至20的随机数,要求随机数不能重复。






6、 统计一个文本文件中字符出现的次数,结果存入另外的一个文本文件中。例如:

        a:  21 次
        b:  15 次
        c: 15 次
        把:  7 次
        当:  9 次
        前:  3 次
        ,:30 次





7、 编写程序,生成5个1至10之间的随机整数,存入一个List集合,编写方法对List集合进行排序(自定义排序算法,禁用Collections.sort方法和TreeSet),然后遍历集合输出。






8、 存在一个JavaBean,它包含以下几种可能的属性:
       1:boolean/Boolean
       2:int/Integer
       3:String
       4:double/Double
     属性名未知,现在要给这些属性设置默认值,以下是要求的默认值:
       String类型的默认值为字符串 www.itheima.com
       int/Integer类型的默认值为100
     boolean/Boolean类型的默认值为true
       double/Double的默认值为0.01D.
  只需要设置带有getXxx/isXxx/setXxx方法的属性,非JavaBean属性不设置,请用代码实现






9、 写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印:                                

1
2
3
4

12
13
14
5

11
16
15
6

10
9
8
7









10、  金额转换,阿拉伯数字转换成中国传统形式。

例如:101000001010   转换为   壹仟零壹拾亿零壹仟零壹拾圆整

作者: dsh    时间: 2014-10-4 16:13
第四题  看着很简单 想了很久不知道到底是实现什么功能  有几道逻辑能力好强啊   
作者: 十万一千    时间: 2014-10-4 16:29
第四题:
  1. package com.itheima.test;

  2. public class Test3 {
  3.         // 3、 写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.
  4.         // public void setProperty(Object obj, String propertyName, Object value){
  5.         // }
  6.         public static void main(String[] args) {
  7.                 Obj obj = new Obj();
  8.                 setProperty(obj, "name", "NAME");
  9.                 setProperty(obj, "age", 22);
  10.                 System.out.println(obj.getName());
  11.                 System.out.println(obj.getAge());

  12.         }

  13.         public static void setProperty(Object obj, String propertyName, Object value) {
  14.                 //重构obj的propertyName的setter方法名
  15.                 propertyName = "set" + (propertyName.charAt(0) + "").toUpperCase() + propertyName.subSequence(1, propertyName.length());
  16.                 try {
  17.                          obj.getClass().getMethod(propertyName, value.getClass()).invoke(obj, value);
  18.                 } catch (Exception e) {
  19.                         e.printStackTrace();
  20.                 }
  21.         }

  22. }

  23. class Obj {
  24.         private String name;

  25.         private Integer age;

  26.         public String getName() {
  27.                 return name;
  28.         }

  29.         public void setName(String name) {
  30.                 this.name = name;
  31.         }

  32.         public Integer getAge() {
  33.                 return age;
  34.         }

  35.         public void setAge(Integer age) {
  36.                 this.age = age;
  37.         }
  38. }
复制代码



作者: 18643448863    时间: 2014-10-4 17:45
哎 真心的 还得努力学啊 基础测试没看懂几个
作者: 〆_、Wali    时间: 2014-10-4 18:53
dsh 发表于 2014-10-4 16:13
第四题  看着很简单 想了很久不知道到底是实现什么功能  有几道逻辑能力好强啊    ...

把object看成是一个Map集合对象就行了
作者: 杜庆娇    时间: 2014-10-4 19:42
比我的要难许多
作者: Eagle    时间: 2014-10-4 19:53
真心没有全部看懂。。
作者: 解冻    时间: 2014-10-4 19:58
没几个能看懂的啊 要努力了
作者: 白金角斗士    时间: 2014-10-4 20:06
哇。。。 貌似还有好多号多要学。。。
作者: dsh    时间: 2014-10-4 21:58
十万一千 发表于 2014-10-4 16:29
第四题:

意思是吧  obj中的属性更改一下   如果有两个对象  用反射没有多大意义  个人感觉反射就是动态的获取对象   创建一个未知的东西  增加程序的扩展性
作者: dsh    时间: 2014-10-4 22:04
十万一千 发表于 2014-10-4 16:29
第四题:

  //重构obj的propertyName的setter方法名

18.                propertyName = "set" + (propertyName.charAt(0) + "").toUpperCase() + propertyName.subSequence(1, propertyName.length());

19.                try {

20.                         obj.getClass().getMethod(propertyName, value.getClass()).invoke(obj, value);

主要是这没看懂

作者: 刘宣超    时间: 2014-10-4 22:22
难道第四题不可以这样写吗?还是我想的太天真了。
4、 写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.   

public void setProperty(Object obj, String propertyName, Object value){   

          obj.propertyName = (String)value;
}
作者: yuli2039    时间: 2014-10-4 23:26
十万一千 发表于 2014-10-4 16:29
第四题:

题目没说该对象一定是javaBean对象,你这相当于强行加一个set方法上去了,虽然也行,但是我觉得应该直接用暴力反射获取所有成员变量,然后判断是否有该变量,如果有,直接用反射赋值就行.
作者: jeromechen    时间: 2014-10-4 23:51
比基础测试题目要难些,可以结合之前人的经验加上自己的理解写
作者: 戏言丶    时间: 2014-10-5 00:01
刚看完基础视频,对这些题目还是有点压力啊
作者: 杜工    时间: 2014-10-5 07:39
入学测试题,做起来有压力吧。
作者: yueyazhishang    时间: 2014-10-5 08:38
确实有点难度。
作者: 十万一千    时间: 2014-10-5 14:02
dsh 发表于 2014-10-4 22:04
//重构obj的propertyName的setter方法名

18.                propertyName = "set" + (propertyName. ...

18行是一个字符串操作的步骤,拿到pojo对象成员属性的setter方法
20行是拿到obj对象的对应setter方法做赋值操作了,因为你不能确定到底是那个Obj类的对象,所以在调用方法的时候 需要指定Obj类的某个实例
作者: 十万一千    时间: 2014-10-5 14:05
本帖最后由 十万一千 于 2014-10-5 14:06 编辑
刘宣超 发表于 2014-10-4 22:22
难道第四题不可以这样写吗?还是我想的太天真了。
4、 写一个方法,此方法可将obj对象中名为propertyName的 ...

obj对象是Object类型,极有可能是没有propertyName的,况且propertyName 也有可能是private的
作者: 354620815    时间: 2014-10-5 14:09
入学测试能做几天。。。有时间限制?

作者: 郑飞    时间: 2014-10-5 14:44
楼主这手气 难题有点集中了 加油做
作者: 静水流华    时间: 2014-10-5 14:45
  1. package com.it.heima;
  2. import java.io.*;
  3. //Properties是HashSet的子类,它具有Map集合的特
  4. import java.io.*;
  5. import java.util.Properties;
  6. public class PropertiesDemo {

  7.         public static void main(String[] args) {
  8.                 // TODO 自动生成的方法存根
  9.                 try {
  10.                         BufferedReader br=new BufferedReader(new FileReader("F:\\java\\10-4\\com.it.heima\\src\\com\\it\\heima\\Demo.Properties"));
  11.                         String str=br.readLine();
  12.                         String[] str1=str.split("=");//用=号将切割字符串
  13.                         Properties pp=new Properties();
  14.                         pp.setProperty(str1[0], str1[1]);
  15.                         System.out.println(pp);//可以看到集合pp中的内容
  16.                         //在这里也可以用反射的方式创建对象
  17.                         Class c=Class.forName(pp.getProperty(str1[0]));
  18.                         DemoClass dc=(DemoClass)c.newInstance();
  19.                         //调用对象中的方法
  20.                         dc.run();
  21.                        
  22.                 } catch (Exception e) {
  23.                         // TODO 自动生成的 catch 块
  24.                         e.printStackTrace();
  25.                 }
  26.                
  27.         }

  28. }
复制代码

作者: MacxChina    时间: 2014-10-5 14:51
呼呼。加油
作者: 马嘉    时间: 2014-10-5 14:56
入学测试,深感有很大难度呀
作者: dsh    时间: 2014-10-5 20:13
354620815 发表于 2014-10-5 14:09
入学测试能做几天。。。有时间限制?

恩 有时间限制三天   不过时间还是挺充足的应该可以搞定
作者: dsh    时间: 2014-10-5 20:15
十万一千 发表于 2014-10-5 14:02
18行是一个字符串操作的步骤,拿到pojo对象成员属性的setter方法
20行是拿到obj对象的对应setter方法做赋 ...

不管怎样  谢谢   我这个没怎么学
作者: dsh    时间: 2014-10-5 20:16
杜工 发表于 2014-10-5 07:39
入学测试题,做起来有压力吧。

有点  压力   有几题我感觉不是在考java基础  像是在考  算法
作者: ye361571404    时间: 2014-10-5 21:12
看到压力山大呀
作者: 刘宣超    时间: 2014-10-6 14:35
十万一千 发表于 2014-10-5 14:05
obj对象是Object类型,极有可能是没有propertyName的,况且propertyName 也有可能是private的 ...

那用反射暴力反射
public static void setProperty(Object obj, String propertyName, Object value)throws Exception{   
                //用反射的方式来获取obj对象里面的propertyName字段
                Field field = obj.getClass().getDeclaredField(propertyName);
                field.setAccessible(true);
                //把propertyName字段的属性设置成指定的value
                field.set(obj, value);
        }

作者: yangzhong1991    时间: 2014-10-6 15:00
压力山大,几乎都看不懂啊{:3_49:}
作者: 华谦    时间: 2014-10-6 17:36
第九题,个人感觉挺难的
作者: 逍遥呆    时间: 2014-10-6 18:16
这题目确实有点难
作者: chenglove1201    时间: 2014-10-6 20:10
还得努力,不少题目没有看懂
作者: 这个夏天的芬芳    时间: 2014-10-7 22:39
{:2_31:}{:2_31:}{:2_31:}{:2_31:}{:2_31:}{:2_31:}
作者: yueyazhishang    时间: 2014-10-7 22:56
还好   
作者: 潘杰    时间: 2014-10-7 23:00
入学测试就10道题么?
作者: 家进    时间: 2014-10-8 09:23
354620815 发表于 2014-10-5 14:09
入学测试能做几天。。。有时间限制?

听说三天之内要做出来
作者: 田峻菘    时间: 2014-10-8 13:36
加油吧。。
作者: 小城。    时间: 2014-10-8 15:24
有点难,这是基础测试,还是入学测试。
作者: 面具猴    时间: 2014-10-8 16:48
要学高新技术中的东西才能做出来。
总共就十道题吗?
作者: 琳以沫    时间: 2014-10-8 21:26
学习下。。。
作者: 湖边雨    时间: 2014-10-8 21:32
354620815 发表于 2014-10-5 14:09
入学测试能做几天。。。有时间限制?

3天,超出后要重新下载测试题,第二次下载不知道会不会影响得分.
作者: dsh    时间: 2014-10-9 09:31
354620815 发表于 2014-10-5 14:09
入学测试能做几天。。。有时间限制?

有时间限制    3天   时间很充足  应该做的完
作者: dsh    时间: 2014-10-9 09:32
郑飞 发表于 2014-10-5 14:44
楼主这手气 难题有点集中了 加油做

是啊   估计没戏了   笔试还好  面试怎么搞啊  
作者: 奋发吧小白    时间: 2014-10-9 10:53
都和这差不多!楼主加油吧!
作者: 笑脸迷人    时间: 2014-10-9 11:27
刘宣超 发表于 2014-10-4 22:22
难道第四题不可以这样写吗?还是我想的太天真了。
4、 写一个方法,此方法可将obj对象中名为propertyName的 ...

一般的,属性都是private修饰的,在类的外部不能直接调用~~这题考的是反射~
作者: dsh    时间: 2014-10-9 12:34
戏言丶 发表于 2014-10-5 00:01
刚看完基础视频,对这些题目还是有点压力啊

加油  我今天面试了  上面就有这些题   建议如果面试就到论坛上找些题先练练  准备好再去  我挂的很惨  
作者: 沙拉很好吃    时间: 2014-10-9 13:02
慢慢答,我的比你的还难!
作者: 戏言丶    时间: 2014-10-9 15:54
dsh 发表于 2014-10-9 12:34
加油  我今天面试了  上面就有这些题   建议如果面试就到论坛上找些题先练练  准备好再去  我挂的很惨   ...

48期的吗?考了高薪和7K没有?
作者: dsh    时间: 2014-10-9 16:52
戏言丶 发表于 2014-10-9 15:54
48期的吗?考了高薪和7K没有?

估计去不了    只有103,8分
作者: 郑飞    时间: 2014-10-9 17:45
dsh 发表于 2014-10-9 09:32
是啊   估计没戏了   笔试还好  面试怎么搞啊

没事的 笔试做完 学差不多了在面试 反正面试没时间限制
作者: x564573138    时间: 2014-10-9 18:05
沙发。,。。。。
作者: shileishihai    时间: 2014-10-9 21:23
谢谢楼主的分享
作者: 十指紧扣    时间: 2014-10-10 10:37
加油………………………………




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2