黑马程序员技术交流社区
标题:
直播入学测试题(求版主打赏技术分一枚)
[打印本页]
作者:
兴许不接客
时间:
2015-10-16 00:51
提示:
该帖被管理员或版主屏蔽
作者:
兴许不接客
时间:
2015-10-16 00:54
第一题: 1、 ArrayList<Integer> list = new ArrayList<Integer>(); 在这个泛型为Integer的ArrayList中存放一个String类型的对象。
拿到此题后当时就高兴了,在14号刚上过通过反射绕过泛型检查的问题 小case 感谢刘正风大大
开搞:
public class Test1 {
public static void main(String[] args) throws Exception {
// 新建集合
ArrayList<Integer> list = new ArrayList<Integer>();
// 先为集合添加integer对象
// 添加整形即可,自动装箱
list.add(18);
list.add(24);
list.add(22);
// 打印查看集合
System.out.println(list);
// 通过对象获取class对象
Class c1 = list.getClass();
// 通过字节码对象获取添加方法
Method adds = c1.getMethod("add", Object.class);
// 运行方法,添加字符串
adds.invoke(list, "我爱java");
//输出产看集合
System.out.println(list);
}
}
复制代码
搞定收工
作者:
兴许不接客
时间:
2015-10-16 00:59
第二题 一道理论题 2.方法中的内部类能不能访问方法中的局部变量,为什么?
首先将自己得理解通过文字描述出来然后翻笔记,将自己描述不到位的地方和
错误的地方进行更正,并且再次加深记忆。原谅我为了完美去查了资料。
答:不可以。
内部类的生命周期和方法中的局部变量是不一样的,
内部类是也是一个类, 是存储在堆中,也只有当对该类的引用消失时,内部类才会消亡。
而方法的 局部变量是存储在堆栈中的,当调用结束时就会退栈,即在内存中这个属性就消失了。
也就是说,内部类的生命周期超过了方法中局部变量的生命周期,内部类可能会调用到已经消失的属性,
因此内部类不能访问方法中的局部变量。
为了是内部类可以访问到局部变量需要在局部变量前加修饰符final此时局部变量就会存在堆中,
生命周期跟工程的生命周期是一样的,此时内部类就可以访问方法中的局部变量。
再次搞定
作者:
兴许不接客
时间:
2015-10-16 01:01
第三题:程序分析题,看到这个就头大 因为这种题考查的东西说多不多但是都不好做,为了满分拼了
上题目:
public class Test3 {
public static void main(String args[]) {
Data data = new Data();
ArrayList<Data> list = new ArrayList<Data>();
for (int i = 100; i < 103; i++) {
data.val = i;
list.add(data);
}
for (Data d : list) {
System.out.println(d.val);
}
}
}
class Data {
int val;
}
复制代码
作者:
兴许不接客
时间:
2015-10-16 01:46
第四题 说实话懵逼了
算是一个大总结吧 考到了集合 考到了io
上代码大家感受一下
package com.itheima;
/*
* 有五个学生,每个学生有3门课(语文、数学、英语)的成绩,写一个程序接收从键盘输入学生的信息,
* 输入格式为:name,30,30,30(姓名,三门课成绩),然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中。
* 要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息。
*
*/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
public class Test4 {
public static void main(String[] args) throws IOException {
// 自定义强制反转的比较器
Comparator<Student> cmp = Collections.reverseOrder();
//以下把比较器作为参数传递
Set<Student> stus = StudentInfoTool.getStudents(cmp);
StudentInfoTool.writeToFile(stus);
}
}
class Student implements Comparable<Student> {
private String name;
private int ma, cn, en;
private int sum;
Student(String name, int ma, int cn, int en) {
this.name = name;
this.ma = ma;
this.cn = cn;
this.en = en;
sum = ma + cn + en;
}
public String getName() {
return name;
}
public int getSum() {
return sum;
}
public int hashCode()// 重写方法
{
return name.hashCode() + sum * 56;// 56是随便乘的
}
public boolean equals(Object obj)// 重写方法
{
if (!(obj instanceof Student))
throw new ClassCastException("不是学生类!");
Student s = (Student) obj;
return this.name.equals(s.name) && this.sum == s.sum;
}
// 实现接口中的方法,分数相同再比较姓名。如果总分和姓名都相同,就是同一个人。
public int compareTo(Student s) {
int num = new Integer(this.sum).compareTo(new Integer(s.sum));
if (num == 0)
return this.name.compareTo(s.name);
return num;
}
public String toString() {
return "姓名"+name+", 数学成绩"+ma+", 语文成绩"+cn+", 英语成绩"+en;
}
}
class StudentInfoTool {
public static Set<Student> getStudents() throws IOException// 不论带不带比较器,调用的都是带比较器的方法
{
return getStudents(null);// 不带比较器的比较
}
public static Set<Student> getStudents(Comparator<Student> cmp)
throws IOException// 带自定义比较器的比较
{
BufferedReader bufr = new BufferedReader(new InputStreamReader(
System.in));
String line = null;
Set<Student> stus = null;
if (cmp == null)// 不论带不带比较器,调用的都是掉比较器的方法
stus = new TreeSet<Student>();// treeset内部已经按默认自然排序,排好序啦!!!
else
stus = new TreeSet<Student>(cmp);
while ((line = bufr.readLine()) != null) {
if ("over".equals(line))// 输入over就结束
break;
String[] info = line.split(",");// 以逗号分隔输入的信息
Student stu = new Student(info[0], Integer.parseInt(info[1]),
Integer.parseInt(info[2]), Integer.parseInt(info[3]));// 字符串要转换为整形
stus.add(stu);
}
bufr.close();
return stus;
}
public static void writeToFile(Set<Student> stus) throws IOException {
BufferedWriter bufw = new BufferedWriter(new FileWriter("stuinfo.txt"));
for(Student stu : stus)
{
bufw.write(stu.toString()+"\t");
bufw.write("\t"+"总成绩"+stu.getSum());//要转换成字符串
bufw.newLine();
bufw.flush();
}
bufw.close();
}
}
复制代码
这道题参考大神做后做的
作者:
兴许不接客
时间:
2015-10-16 02:59
第五题码出来了
package com.itheima;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
/*
* 编写程序,生成5个1至10之间的随机整数,存入一个List集合,
* 编写方法对List集合进行排序(自定义排序算法,禁用Collections.sort方法和TreeSet),
* 然后遍历集合输出。
*/
public class Test5 {
public static void main(String[] args) {
// 新建一个集合
List list = new ArrayList<Integer>();
method2(method(),list);
//打印查看
System.out.println(list);
}
//新建方法用于为集合添加元素
//新建方法用于生成随机数并排序
public static int[] method() {
//新建一个数组用于存放随机数
int temp[] = new int[5];
//产生所需随机数
for (int i = 0; i < temp.length; i++) {
//生成1-10 的随机数
int shu = new Random().nextInt(10) + 1;
//放入数组
temp[i] = shu;
//进行排序
Arrays.sort(temp);
}
//返回这个数组
return temp;
}
public static void method2(int[] a,List list){
//遍历排序好的数组 并将元素添加到集合中
for (int i : a) {
list.add(i);
}
}
}
复制代码
作者:
fenger7
时间:
2015-10-16 06:57
这是笔试还是哪个测试呀
作者:
fwqk123
时间:
2015-10-16 08:05
厉害 学习了
作者:
吾要娶她
时间:
2015-10-16 08:42
还行 看起来比较简单
作者:
小穿钉
时间:
2015-10-16 08:43
加油,赞一个
作者:
SF_NEVERMORE
时间:
2015-10-16 08:56
第三题答案是啥?
作者:
pqq
时间:
2015-10-16 11:32
必须赞一个!
作者:
LLLLL
时间:
2015-10-16 13:36
6666666666666666
作者:
q2209617
时间:
2015-10-16 22:34
必须点个赞
作者:
0925李超月
时间:
2015-10-16 22:41
现在对于我还是相当的难啊
作者:
dai2686779
时间:
2015-10-16 22:45
赏!!!!!!!!
作者:
ksh
时间:
2015-10-16 23:11
666,果真好难,加油,,,
作者:
jyf823691221
时间:
2015-10-17 00:17
必须点个赞
作者:
pan1564335
时间:
2015-10-17 00:18
感觉有点难 还得努力啊
作者:
Love1027
时间:
2015-10-17 06:50
赞一个,加油。
作者:
heshiwei
时间:
2015-10-17 09:10
厉害啊,学习了。
作者:
T-l-H、小生
时间:
2015-10-17 09:32
回过头来看看这些基础题,感觉蛮有爱的。。。。
作者:
七了个七
时间:
2015-10-17 10:06
这个是报到的时候的入学测试? 好难呀
作者:
黑夜中那颗星
时间:
2015-10-17 11:50
如果全是这种题,感觉毫无压力
作者:
shoresmile
时间:
2015-10-17 12:25
SF_NEVERMORE 发表于 2015-10-16 08:56
第三题答案是啥?
102
102
102
作者:
shoresmile
时间:
2015-10-17 12:27
作者:
hyzhw
时间:
2015-10-17 17:04
厉害 ,怎么和我的题目一样呢?
作者:
莫盛强
时间:
2015-10-17 17:28
基本没问题。
作者:
迷途老马
时间:
2015-10-17 20:32
赞!!!!!!!!
作者:
如梦丶似幻
时间:
2015-10-17 21:10
前来学习~~~~~
作者:
yuanjun52306
时间:
2015-10-17 21:43
天哪,一个不会。。
作者:
lkjmnbqwe
时间:
2015-10-17 21:47
好厉害啊,我竟然都看不懂
作者:
lzh838330255
时间:
2015-10-17 23:01
恩,写的不错
作者:
michael_wlq
时间:
2015-10-17 23:10
貌似这些题不让放这里的。。。
作者:
大地z灵
时间:
2015-10-17 23:53
这个要顶起,大家都来看看
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2