面试题:(把下面这些题都练了,很轻松就写完了,没问题的)
1、 有五个学生,每个学生有3门课(语文、数学、英语)的成绩,写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩),然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中。要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息。
2、 一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,删除其中所有值为"abc"的字符串元素,请用代码实现。
3、 编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。
4、将字符串中进行反转。abcde --> edcba
5、编写三各类Ticket、SealWindow、TicketSealCenter分别代表票信息、售票窗口、售票中心。售票中心分配一定数量的票,由若干个售票窗口进行出售,利用你所学的线程知识来模拟此售票过程。
6、取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)..(注意,字母出现的次数,要过滤掉数字)
7、ArrayList<Integer> list = new ArrayList<Integer>(); 在这个泛型为Integer的ArrayList中存放一个String类型的对象。
8、编写一个程序,获取10个1至20的随机数,要求随机数不能重复。
9、编写一个类,增加一个实例方法用于打印一条字符串。并使用反射手段创建该类的对象, 并调用该对象中的方法。
10、已知文件a.txt文件中的内容为“bcdeadferwplkou”,请编写程序读取该文件内容,并按照自然顺序排序后输出到b.txt文件中。即b.txt中的文件内容应为“abcd…………..”这样的顺序。show。)
11、编写一个类A,增加一个实例方法show用于打印一条字符串。再编写一个TestA,作为客户端,键盘录入一个字符串,该字符串就是类A的全名,使用反射手段创建该类的对象, 并调用该对象中的show方法)个数据即可。""
12、把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出,例如:
a: 21 次
b: 15 次
c: 15 次
把: 7 次
当: 9 次
前: 3 次
13、声明一个共享数组,起两个线程,两个线程分别隔一段时间(可以写一个随机数),给数组中添加数据,每一个线程为数组添加3个数据即可。
import java.util.*;
/*1、声明一个共享数组,起两个线程,两个线程分别隔一段时间(可以写一个随机数),
* 给数组中添加数据,每一个线程为数组添加3个数据即可。
* 思路:声明一个资源类 里面有一个数组 该类具有两个往数组中存取元素的方法
* 通过wait 和 notify方法交替存储
*/
public class ArrDemo {
public static void main(String[] args) {
final ArrRec ar = new ArrRec();
//new 一个线程 传入一个Runnable匿名内部类
Thread t1 =new Thread(new Runnable(){
@Override
public void run() {
for(int i = 0; i< 3; i++){
ar.saveFirst();
}
}
});
//new 一个线程 传入一个Runnable匿名内部类
Thread t2 =new Thread(new Runnable(){
@Override
public void run() {
for(int i = 0; i< 3; i++){
ar.saveSecond();
}
}
});
//开启线程
t1.start();
t2.start();
//主函数等待t1 t2 执行完
try {
t1.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
t2.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//输出
System.out.println("存好后的数组: "+Arrays.toString(ar.arrs));
}
}
//资源类
class ArrRec{
//共享数组
int[] arrs = new int[6];
//指针
int pos = 0;
//标识
boolean flag = false;
public synchronized void saveFirst(){//第一个存方法
if(flag)
try {
this.wait();//等待
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Thread.sleep(new Random().nextInt(10));/眠
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int num = new Random().nextInt(100);//获取随机数
arrs[pos++] = num;//存入元素
System.out.println(Thread.currentThread().getName()+"存入: "+num);
flag = true;
this.notify();//唤醒对方
}
public synchronized void saveSecond(){
if(!flag)
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Thread.sleep(new Random().nextInt(10));
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int num = new Random().nextInt(100);
arrs[pos++] = num;
System.out.println(Thread.currentThread().getName()+"存入: "+num);
flag = false;
this.notify();
}
}
14、 将C盘中的一个MP3复制到D盘,要求效率高的(思路 代码 注释)
15、复制整个文件夹的内容
16、求两个字符串中的最大相同子串 数组排序
17、编写一个程序的时候,我想把这个目录下的所有的带.java的文件都拷贝到另一个目录中,拷贝成功后,把后缀名是.java的改成.txt
18、定义一个静态方法,该方法可以接收一个List<Integer>,方法内对List进
行排序
19、键盘录入一个数组并进行排序!
20、求三位数的质数
22、 假如我们在开发一个系统时需要对员工进行建模,员工包含 3 个属性:姓名、工号以及工资。经理也是员工,除了含有员工的属性外,另为还有一个奖金属性。请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。
23、 编写程序,生成5个1至10之间的随机整数,存入一个List集合,编写方法对List集合进行排序(自定义排序算法,禁用Collections.sort方法和TreeSet),然后遍历集合输出。
24、 把以下IP存入一个txt文件,编写程序把这些IP按数值大小,从小到达排序并打印出来。
61.54.231.245
61.54.231.9
61.54.231.246
61.54.231.48
61.53.231.249
25、 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路)
}
}
|