笔试题
1:定义map集合,并自定义对象,对map集合遍历,打出key和value值
2:定义一个类A,类中定义一个show方法,打印一句话,在定义一个TestA类,利用反射在TestA中创建A的对象,并调用show方法【已完成ok】
3:使用高效字符缓冲流复制文件【已完成ok】
4:把C盘中的一个多层文件夹拷贝到D盘中。用高效的方法(要求写思路,注释,代码)【已完成】
5:Integer泛型Map中存储字符串【已完成 ok】
6:开启两个线程每隔一段时间分别向一个共享数组中添加元素,每个线程添加3个即可。【已完成ok】
7:Map的两种遍历方式【已完成ok】
8:如何用反射去创建一个对象,有2种方式,尽量用代码去体现【已完成ok】
9:编写一个程序,把这个目录里边的所有的带.java文件都拷贝到另一个目录里边,拷贝成功以后,把后缀名是.java改成.txt【已完成】
10:创建多线程的方式有几种?尽量用代码去体现【已完成】
11:编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。【已完成ok】
12:编写程序,生成5个1至10之间的随机整数,存入一个List集合,编写方法对List集合进行排序(自定义排序算法,禁用Collections.sort方法和TreeSet),然后遍历集合输出【已完成ok】
14:Collection集合下班有哪些类,哪些类又有哪些特点【看我的关于集合的总结】
15: 求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×1000
16: 编写一个类,增加一个实例方法用于打印一条字符串。并使用反射手段创建该类的对象, 并调用该对象中的方法。【已完成ok】
17:编写一个类A,增加一个实力方法showString,用于打印一条字符串,在编写一个类TestA ,作为客户端,用键盘输入一个字符串,改字符串就是类A的全名,使用反射机制创建该类的对象,并调用该对象中的方法showString【已完成ok】
18:复制多级文件夹【已完成ok】
19:写一个线程类MyThread,该线程实现了Runnable接口,写一个main方法,用for循环创建5个线程对象。需求如下:【已完成】
① 利用线程类的构造函数输出:"创建线程4"。
(备注:当创建一个线程的时候,标记为1,再次创建一个线程的时候,标记为2,所以输出的"创建线程4"就是创建的第四个线程)
② 在run方法中输出:“线程X :计数Y”,当执行次数达到6次的时候,退出。
(备注:其中“线程X”为第X个线程,“计数Y”为该线程的run方法执行了多少次)
20:23 9 -4 18 100 7" 要求对这串数字按照从小到大排序,生成一个数值有序的字符串。【已完成ok】
21:一个是随机生成5个1——10之间的随机数,存入list集合中,自定义排序,不能用sort方法【已完成ok】
22:递归删除多级文件【已完成】
23:一道ArrayList集合创建添加元素并删除abc【已完成ok】
24:取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...【已完成ok】
25:有类似这样的字符串:“1.2,3.4,5.6,7.8,5.56,44.55”, 请按照要求,依次完成以下试题【已完成ok】
① 以逗号作为分隔符,把已知的字符串分成一个String类型的数组,
数组中的每一个元素类似于“1.2","3.4"这样的字符串;
② 把数组中的每一个元素以.作为分割,把.号左边的元素作为key,
把.号右边的元素作为value,封装到Map中,
③ 把map中的key封装到Set中,并且把set中的元素输出;
④ 把map中的value封装到Collection中,把collection中的元素输出。
26:编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。【已完成ok】
27:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。【已完成ok】
面试题
1:反射的理解
2:集合框架的概述、arraylist的特点、map集合的特点、Collection集合下班有哪些类,哪些类又有哪些特点、HashMap是Hashtable的区别
3:懒汉模式和饿汉模式的区别
4:进程和线程的关系、线程的理解、线程安全问题、线程创建方式、死锁是什么、创建多线程的方法、线程休眠的方法、sleep睡眠时间的单位、同步函数与同步代码块的区别,Sleep和 wait方法有什么区别。同步与异步的区别【未完成】、为什么wait(),notify(),notifyAll()等方法都定义在Object类中、同步的原理:就是将部分操作功能数据的代码进行加锁。说说对线程池的理解、run和start什么区别?【已完成】
5:匿名内部类理解【已完成】
6:抽象类的理解【已完成】
7:面向对象和面向过程的区别,面向对象的三个特征: 封装,继承,多态
8:try...catch..finally
9:对反射暴力反射的理解、反射的理解和应用、获取字节码的三种方式,以及主要用在什么什么地方、用反射创建对象的两种方法?
10:Set集合和List集合的区别、什么是数组、数组和集合的区别、HashMap和Hashtable的区别、Set、List、Map集合的区别、Collection 和 collections的区别,ArrayList和 Vector的区别、List和Set有什么区别、List下面的两个类的的优点和缺点、hashset怎样保证元素的唯一性、TreeSet怎样保证元素的唯一性、迭代器的特点。treeset的特点
11:面向对象编程思想
12:访问控制符
13:接口能继承类吗?接口和抽象类、说说接口和抽象类的特征和区别
14:介绍一下io、IO流的体系和理解、如何使用字节流的?什么时候会用到转换流呢?IO流的flush和close方法的作用和区别、字节流和字符流的区别、请说明字符流和字节流的区别在哪儿?readLine实现的机制是什么?
17:线程通信的理解、线程的状态、为什么会有多线程的安全问题、多线程安全问题的解决办法、创建线程有几种方式,那种方式比较好,为什么、同步的前提、说说你对死锁的理解
18:StringBuffer和StringBuilder的区别
19:增强for和普通for的区别,增强for循环 有些缺点,例如不能在增强循环里动态的删除集合内容。不能获取下标等。
20:If 和 switch有什么区别,以及在什么时候使用Switch
21:内省的作用
22:讲一讲异常体系以及异常的处理原则。异常和错误的不同?final、finally、finanlize()的区别、编程中遇到过异常吗,都遇到了哪些异常,请你简述一下你遇到的异常以及解决方案。throw和throws的区别
23:readLine 是字节流的方法吗?
24:说一下拷贝一个MP3从C盘到D盘的思路
25:什么情况下要用flush();
26:成员变量局部变量以及静态变量的区别?
27:装饰设计模式和继承有什么区别?
28:代理是什么?动态代理的介绍。如何创建动态代理?你对动态代理和静态代理的理解??
29:对象的概念
30:类加载器的使用、三大类加载器、委托机制的理解、动态代理反射有什么关系、加载器和反射什么关系
31:什么时候会用到泛型?举例说明下泛型上下限说是什么时候用
32:单例的设计模式作用,懒汉式和饿汉式的区别,银行系统哪里用到了单例,问银行卡上有账号是不是单例
33:在枚举种,可以使用抽象方法么?枚举能继承类吗?说说枚举和单利设计模式的区别、枚举是否可以继承类
34:你还知道其他的设计模式么?分别介绍一下
35:java的特点是什么?
36:你看了7千面试题么?
37:staitc代码块、构造代码块、构造函数的作用与执行顺序(还问了static代码块的使用与作用)、构造函数与一般函数的区别,静态代码块特点
38:为什么内部类在局部位置上只能访问局部中被final修饰的局部变量
39:重载与重写区别
40:|、&与||、&&的区别
41:接口能继承类吗?
42:访问控制符【已完成】
43:int和Integer的不同;【已完成】
44:同步代码块和同步修饰符有什么不同
45:函数特点
46:数组排序有几种
47:匿名内部类理解
48:存储了一个相同的键,大家都知道常用的map是不能存储相同的键,我是想继承hashMap改写put的方法,无奈功底不够,最后是找到了map中的子类 IdentityHashMap<K,V>可以存储相同键。
49:名词提炼法
50:类和对象的关系
51:什么是封装,好处、封装原则
52:什么时候定义静态变量呢
53:抽象类的理解
54:JDK1.5的新特性有哪些
55:还有从7K里面挑出来一个说说思路,实现方式
56:为什么配置path,什么时候配置classpath?
57:求三位数的质数,只能被本身和1整除!!!
58:内存,堆和栈的区别
简单讲讲classpath,讲一下javabeam
59:Set<Map.Entry<k,v>> entrySet:将map集合中的映射关系存入到了set集合中
60:关于compartor和comparable接口的区别
61:抽象关键字为什么不能和 private、static、final 共存
63:为什么接口中的常量必须使用public static final修饰
64:如果基类为抽象类,子类还会访问抽象类的构造函数吗,如果会的话,抽象类不能创建对象,其构造函数有什么意义?
65:类与类,类与对象,类与接口的关系
66:循环中怎么结束
67:TCP和UDP的区别
---------NO1------------
1、 以下代码哪个是正确的?为什么?
a. byte b = 1 + 1;
b. byte b = 1; b = b + 1;
c. byte b = 1; b = b += 1;
d. byte b = 1; b = ++b;
2、 创建ArrayList对象,添加5个元素,使用Iterator遍历输出【已完成ok】
3、 请列举您了解的一些排序算法,并用Java语言实现一个效率较高的。
4、 Collection和Collections有什么关系?List和Set有什么异同点?Map有哪些常用类,各有什么特点?【已完成】
5、 定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数。
6、 声明类Person,包含2个成员变量:name、age。定义函数sayHello(),调用时输出:我叫***,今年***岁了。声明类Chinese继承Person。
7、 编写程序,打印1到100之内的整数,但数字中包含7的要跳过,例如:17、27、71、72【已完成ok】
8、 在打印语句中如何打印这3个x变量?
class A {
int x = 1;
class B {
int x = 2;
void func() {
int x = 3;
System.out.println( ? );
}
}
}
9、 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt【已完成】
10、编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表),例如:从“HM程序员”中截取2个字节是“HM”,截取4个则是“HM程”,截取3个字节也要是"HM"而不要出现半个中文【已完成】
---------NO2------------
1、 创建ArrayList对象,添加5个元素,使用Iterator遍历输出【已完成ok】
2、 什么情况下适合用UDP协议,什么情况下适合用TCP协议?
3、 编写程序计算12+22+32+....+1002的和.【已完成ok】
4、 为什么需要配置path,什么时候需要classpath?
5、 在打印语句中如何打印这3个x变量?
class A {
int x = 1;
class B {
int x = 2;
void func() {
int x = 3;
System.out.println( ? );
}
}
}
6、 编写一个延迟加载的单例设计模式。
7、 编程打印所有的3位质数,质数特点:只能被1和其本身整除【已完成ok】
8、 声明类Student,包含3个成员变量:name、age、score,要求可以通过 new Student("张三", 22, 95) 的方式创建对象,并可以通过set和get方法访问成员变量
9、 写一个正则表达式,可以匹配尾号5连的手机号。规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任意数字,最后5位为任意相同的数字。例如:18601088888、13912366666【已完成ok】
10、声明类Student,包含3个成员变量:name、age、score,创建5个对象装入TreeSet,按照成绩排序输出结果(考虑成绩相同的问题)。【已完成ok】
---------NO3------------
1、 什么情况下适合用UDP协议,什么情况下适合用TCP协议?
2、判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串【已完成ok】
3、 定义一个二维int数组,编写代码获取最小元素。【已完成ok】
4、 创建ArrayList对象,添加5个元素,使用Iterator遍历输出【已完成ok】
5、 用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly?
6、 数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}【已完成ok】
7、 分析运行结果,说明原理。(没有分析结果不得分)
class A {
void fun1() {
System.out.println(fun2());
}
int fun2() {
return 123;
}
}
public class B extends A {
int fun2() {
return 456;
}
public static void main(String args[]) {
B b = new B();
b.fun1();
A a = b;
a.fun1();
}
}
8、 声明类Student,包含3个成员变量:name、age、score,要求可以通过 new Student("张三", 22, 95) 的方式创建对象,并可以通过set和get方法访问成员变量
9、 编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,程序计算这一天是星期几,并且计算出是一年中的第几天。
10、 小明的妈妈每天会给他20元零花钱。平日里,小明先花掉一半,再把一半存起来。每到周日,小明拿到钱后会把所有零花钱花掉一半。请编程计算,从周一开始,小明需要多少天才能存够100元?
---------NO4------------
1、 请列举您了解的一些排序算法,并用Java语言实现一个效率较高的。
2、 从键盘接受一个数字,列出该数字的中文表示格式,例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。
3、 创建ArrayList对象,添加5个元素,使用Iterator遍历输出
4、 以下代码哪个是正确的?为什么?
a. byte b = 1 + 1;
b. byte b = 1; b = b + 1;
c. byte b = 1; b = b += 1;
d. byte b = 1; b = ++b;
5、 用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly?
6、 编写程序,打印1到100之内的整数,但数字中包含7的要跳过,例如:17、27、71、72
7、 声明类Person,包含2个成员变量:name、age。定义函数sayHello(),调用时输出:我叫***,今年***岁了。声明类Chinese继承Person。
8、 编写一个可以获取文件扩展名的函数,形参接收一个文件名字符串,返回一个扩展名字符串。
9、 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
10、 小明的妈妈每天会给他20元零花钱。平日里,小明先花掉一半,再把一半存起来。每到周日,小明拿到钱后会把所有零花钱花掉一半。请编程计算,从周一开始,小明需要多少天才能存够100元?
---------NO5------------
1、 写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.
public void setProperty(Object obj, String propertyName, Object value){
}
2、 假如我们在开发一个系统时需要对员工进行建模,员工包含 3 个属性:姓名、工号以及工资。经理也是员工,除了含有员工的属性外,另为还有一个奖金属性。请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。
3、 一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,删除其中所有值为"abc"的字符串元素,请用代码实现。
4、 有五个学生,每个学生有3门课(语文、数学、英语)的成绩,写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩),然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中。要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息。
5、 将字符串中进行反转。abcde --> edcba
6、 编写程序,生成5个1至10之间的随机整数,存入一个List集合,编写方法对List集合进行排序(自定义排序算法,禁用Collections.sort方法和TreeSet),然后遍历集合输出。
7、 编写三各类Ticket、SealWindow、TicketSealCenter分别代表票信息、售票窗口、售票中心。售票中心分配一定数量的票,由若干个售票窗口进行出售,利用你所学的线程知识来模拟此售票过程。
8、 定义一个标准的JavaBean,名叫Person,包含属性name、age。使用反射的方式创建一个实例、调用构造函数初始化name、age,使用反射方式调用setName方法对名称进行设置,不使用setAge方法直接使用反射方式对age赋值。
9、 编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。这个程序要考虑输入的字符串不能转换成一个十进制整数的情况,并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。提示:十进制数转二进制数的方式是用这个数除以2,余数就是二进制数的最低位,接着再用得到的商作为被除数去除以2,这次得到的余数就是次低位,如此循环,直到被除数为0为止。其实,只要明白了打印出一个十进制数的每一位的方式(不断除以10,得到的余数就分别是个位,十位,百位),就很容易理解十进制数转二进制数的这种方式。
10、 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
---------NO6------------
1.定义一个二维int数组,编写代码获取最小元素。
2. 什么情况下适合用UDP协议,什么情况下适合用TCP协议?
3. Collection和Collections有什么关系?List和Set有什么异同点?Map有哪些常用类,各有什么特点?
4.从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
键盘输入6,打印6秒;
键盘输入60,打印1分;
键盘输入66,打印1分6秒;
键盘输入666,打印11分6秒;
键盘输入3601,打印1小时1秒
5.写出以下代码执行结果,分析为什么?(没有分析结果不得分)
public class Test {
public static void main(String[] args) {
String s = "abc";
s.substring(1);
s.replace("bc", "xyz");
System.out.println(s);
String value = new String ("abc");
System.out.println(s == value);
}
}
6.定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数。
7.编写程序,打印1到100之内的整数,但数字中包含7的要跳过,例如:17、27、71、72
8.编写一个可以获取文件扩展名的函数,形参接收一个文件名字符串,返回一个扩展名字符串。
9.有这样三个类,Person、Student、GoodStudent。
其中GoodStudent继承于Student,Student继承于Person。
如何证明创建GoodStudent时是否调用了Person的构造函数?
在GoodStudent中是否能指定调用Student的哪个构造函数?
在GoodStudent中是否能指定调用Person的哪个构造函数?
10.使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。
---------NO7------------
1、分析运行结果,说明原理。(没有分析结果不得分)
import java.util.ArrayList;
class Data {
int val;
}
public class Test {
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);
}
}
}
2、 一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,删除其中所有值为"abc"的字符串元素,请用代码实现。
3、 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...
4、 假如我们在开发一个系统时需要对员工进行建模,员工包含 3 个属性:姓名、工号以及工资。经理也是员工,除了含有员工的属性外,另为还有一个奖金属性。请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。
5、 有一个类为ClassA,有一个类为ClassB,在ClassB中有一个方法b,此方法抛出异常,在ClassA类中有一个方法a,请在这个方法中调用b,然后抛出异常。在客户端有一个类为TestC,有一个方法为c ,请在这个方法中捕捉异常的信息。完成这个例子,请说出java中针对异常的处理机制。
6、 编写一个类,增加一个实例方法用于打印一条字符串。并使用反射手段创建该类的对象, 并调用该对象中的方法。
7、 将字符串中进行反转。abcde --> edcba
8、 分析以下程序运行结果,说明原理。(没有分析结果不得分)
public class ThreadTest {
public static void main(String args[]) {
MyThread t = new MyThread();
t.run();
t.start();
System.out.println("A");
}
}
class MyThread extends Thread {
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
}
System.out.println("B");
}
}
9、 写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
10、 金额转换,阿拉伯数字转换成中国传统形式。
例如:101000001010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整
---------NO8------------
1、 一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,删除其中所有值为"abc"的字符串元素,请用代码实现。
2、 分析运行结果,说明原理。(没有分析结果不得分)
import java.util.ArrayList;
class Data {
int val;
}
public class Test {
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);
}
}
}
3、 方法中的内部类能不能访问方法中的局部变量,为什么?
4、 写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.
public void setProperty(Object obj, String propertyName, Object value){
}
5、 编写一个类,增加一个实例方法用于打印一条字符串。并使用反射手段创建该类的对象, 并调用该对象中的方法。
6、 分析以下程序运行结果,说明原理。(没有分析结果不得分)
public class ThreadTest {
public static void main(String args[]) {
MyThread t = new MyThread();
t.run();
t.start();
System.out.println("A");
}
}
class MyThread extends Thread {
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
}
System.out.println("B");
}
}
7、 自定义字符输入流的包装类,通过这个包装类对底层字符输入流进行包装,让程序通过这个包装类读取某个文本文件(例如,一个java源文件)时,能够在读取的每行前面都加上有行号和冒号。
8、 有一个类为ClassA,有一个类为ClassB,在ClassB中有一个方法b,此方法抛出异常,在ClassA类中有一个方法a,请在这个方法中调用b,然后抛出异常。在客户端有一个类为TestC,有一个方法为c ,请在这个方法中捕捉异常的信息。完成这个例子,请说出java中针对异常的处理机制。
9、 编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。这个程序要考虑输入的字符串不能转换成一个十进制整数的情况,并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。提示:十进制数转二进制数的方式是用这个数除以2,余数就是二进制数的最低位,接着再用得到的商作为被除数去除以2,这次得到的余数就是次低位,如此循环,直到被除数为0为止。其实,只要明白了打印出一个十进制数的每一位的方式(不断除以10,得到的余数就分别是个位,十位,百位),就很容易理解十进制数转二进制数的这种方式。
10、 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
package com.itheima.test;
---------NO9------------
1、 创建ArrayList对象,添加5个元素,使用Iterator遍历输出
2、 Collection和Collections有什么关系?
List和Set有什么异同点?
Map有哪些常用类,各有什么特点?
3、 编程计算3乘8等于几,什么方法效率更高
4、 从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
* 键盘输入6,打印6秒;
* 键盘输入60,打印1分;
* 键盘输入66,打印1分6秒;
* 键盘输入666,打印11分6秒;
* 键盘输入3601,打印1小时1秒
5、 用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly?
6、 编写一个可以获取文件扩展名的函数,形参接收一个文件名字符串,返回一个扩展名字符串。
7、 数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}
8、 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符,例如:
*原始字符串是"abc",打印得到下列所有组合情况:
*"a" "b" "c"
*"ab" "bc" "ca" "ba" "cb" "ac"
*"abc" "acb" "bac" "bca" "cab" "cba"
9、 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
10、 小明的妈妈每天会给他20元零花钱。
* 平日里,小明先花掉一半,再把一半存起来。
* 每到周日,小明拿到钱后会把所有零花钱花掉一半。
* 请编程计算,从周一开始,小明需要多少天才能存够100元?
---------NO10------------
1、 写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.
public void setProperty(Object obj, String propertyName, Object value){
}
2、 请说明Java中字符'\'的含义,有什么作用?
3、 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...
4、 ArrayList<Integer> list = new ArrayList<Integer>(); 在这个泛型为Integer的ArrayList中存放一个String类型的对象。
5、 分析以下程序运行结果,说明原理。(没有分析结果不得分)
public class ThreadTest {
public static void main(String args[]) {
MyThread t = new MyThread();
t.run();
t.start();
System.out.println("A");
}
}
class MyThread extends Thread {
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
}
System.out.println("B");
}
}
6、 将字符串中进行反转。abcde --> edcba
7、 定义一个标准的JavaBean,名叫Person,包含属性name、age。使用反射的方式创建一个实例、调用构造函数初始化name、age,使用反射方式调用setName方法对名称进行设置,不使用setAge方法直接使用反射方式对age赋值。
8、 编写三各类Ticket、SealWindow、TicketSealCenter分别代表票信息、售票窗口、售票中心。售票中心分配一定数量的票,由若干个售票窗口进行出售,利用你所学的线程知识来模拟此售票过程。
9、 在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,如果存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),否则,返回-1。要搜索的字符数组和字符都以参数形式传递传递给该方法,如果传入的数组为null,应抛出IllegalArgumentException异常。在类的main方法中以各种可能出现的情况测试验证该方法编写得是否正确,例如,字符不存在,字符存在,传入的数组为null等。
10、 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路)
3、 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...
public class test3
{
public static void main(String[] args)
{
//定义一个字符串
String str = "abcdekka27qoq";
//将字符串转化为字符数组
char[] buf = str.toCharArray();
//定义一个数组,由于字符最大值z的Ascall码为122,将字符数组定义为123
int[] num = new int[123];
//将字符放入数组num变为nun数组的下标值,举例:buf[0] = 'a';将它放入num[],‘a’变为Asscall值为97
//即为num[97],通过循环num[97]++;即可记录a出现的次数
for(int i = 0; i < buf.length; i++)
num[buf[i]]++;
//同过for循环遍历数组num
for(int i = 0; i < num.length; i++)
{
//通过i的大小满足(i>=65 && i<=90) || (i>=97&& i<=122)则找到数组num所有大小写字母
//并且要满足num[i]>0才能找出并输出字符串中出现的字母
if(((i>=65 && i<=90) || (i>=97&& i<=122)) && num[i] > 0)
{
System.out.print((char)i + "(" + num[i] + ")");
}
}
}
}
---------NO11------------
1. 有五个学生,每个学生有3门课(语文、数学、英语)的成绩,写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩),然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中。要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息。
2. 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...
3.编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。
4.一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,删除其中所有值为"abc"的字符串元素,请用代码实现。
5.定义一个标准的JavaBean,名叫Person,包含属性name、age。使用反射的方式创建一个实例、调用构造函数初始化name、age,使用反射方式调用setName方法对名称进行设置,不使用setAge方法直接使用反射方式对age赋值。
6.编写一个程序,获取10个1至20的随机数,要求随机数不能重复。
7.分析以下程序运行结果,说明原理。(没有分析结果不得分)
public class ThreadTest {
public static void main(String args[]) {
MyThread t = new MyThread();
t.run();
t.start();
System.out.println("A");
}
}
class MyThread extends Thread {
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
}
System.out.println("B");
}
}
8.已知文件a.txt文件中的内容为“bcdeadferwplkou”,请编写程序读取该文件内容,并按照自然顺序排序后输出到b.txt文件中。即b.txt中的文件内容应为“abcd…………..”这样的顺序。
9.在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,如果存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),否则,返回-1。要搜索的字符数组和字符都以参数形式传递传递给该方法,如果传入的数组为null,应抛出IllegalArgumentException异常。在类的main方法中以各种可能出现的情况测试验证该方法编写得是否正确,例如,字符不存在,字符存在,传入的数组为null等
10.28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路
---------NO12------------
1、 创建ArrayList对象,添加5个元素,使用Iterator遍历输出
2、 Collection和Collections有什么关系?List和Set有什么异同点?Map有哪些常用类,各有什么特点?
3、 编程计算3乘8等于几,什么方法效率更高?
4、 从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
* 键盘输入6,打印6秒;
* 键盘输入60,打印1分;
* 键盘输入66,打印1分6秒;
* 键盘输入666,打印11分6秒;
* 键盘输入3601,打印1小时1秒
5、 用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly?
6、 编写一个可以获取文件扩展名的函数,形参接收一个文件名字符串,返回一个扩展名字符串。
7、 数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}
8、 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符,例如:
*原始字符串是"abc",打印得到下列所有组合情况:
*"a" "b" "c"
*"ab" "bc" "ca" "ba" "cb" "ac"
*"abc" "acb" "bac" "bca" "cab" "cba"
9、 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
10、 小明的妈妈每天会给他20元零花钱。平日里,小明先花掉一半,再把一半存起来。每到周日,小明拿到钱后会把所有零花钱花掉一半。请编程计算,从周一开始,小明需要多少天才能存够100元?
---------NO13------------
1、 已知一个int数组, 编程从数组中获取最大数.
2、 编写一个方法(名字自定,但要符合Java编码规范),方法内打印一字符串,并在main()方法内调用它。
3、 环境变量path和classpath的作用是什么?
系统环境 path 为了更方便应用java 开发工具 将要执行命令的所在路径给系统、让系统去寻找 方便执行、必须是可执行文件先找当前路径再找path 路径 临时配置方式 通过set 命令完成、设置查看环境变量的值 在path环境变量的基础上添加新的目录 在任意目录下执行java 执行程序 专门给类文件设置路径 将class 文件所在目录 告诉系统,让系统去寻找 虚拟机先从classpath 寻找
4、 UDP协议与TCP协议有什么不同?
5、 编写一个类Person,为Person类定义年龄、姓名两个属性,并且定义一个SayHello方法,方法执行时输出“我是***我的年龄是***”;定义一个Chinese类从Person类继承。
6、 创建一个包含有private的属性和private方法的类。然后创建一个内部类,它有一个方法可用来修改外部类的属性,并调用外部类的方法。在外部类的另一个方法中,创建此内部类的对象,并且调用它的方法。
7、 用控制台程序输出九九乘法表;输出结果按下图所示:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
.........
8、 编写程序拷贝一个文件, 尽量使用效率高的方式.
9、 编写HTML注册表单, 需要字段: 用户名, 密码, 确认密码, 性别(单选), 城市(下拉列表), 兴趣爱好(多选), 个人简介(文本域).
10、 定义一个学生类, 需要有姓名, 年龄, 考试成绩三个成员属性,创建5个对象, 属性可为任意值. 编程对这5个对象按成绩排序,并将结果输出。(提示,用TreeSet和Comparator实现)
---------NO14------------
1、 请说明Java中字符'\'的含义,有什么作用?
转义字符:\n等
2、 编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。
import java.util.*;
/*
1、获取map中的key,遍历输出,Set<Integer> set = map.keySet()
2、获取map里的数据,输出key跟value
(1)使用map中entrySet方法,将map对象转化为Set集合
(2)取得Set集合对象之后,就可以利用iterator()方法取得Iterator对象
(3)使用Iterator迭代找到每一个Map.Entry对象,并进行key和value的分离
在map中保存的是很多的Map.Entry对象,而每一对象都保存着key和value值,只要能迭代Map.Entry就可以
获取相应的key和value
*/
public class Demo {
public static void main(String[]agrs)
{
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1,"hello");
map.put(2,"world");
map.put(3,"Big Bang");
System.out.println(map);//{1=hello, 2=world, 3=Big Bang}输出全部的简化方法
//Set<Integer> set = map.keySet();//获取map中的所有key
Set<Map.Entry<Integer,String>> set = map.entrySet();//将map中每一个Entry<Integer,String>对象保存到set集合中
Iterator<Map.Entry<Integer,String>> iter = set.iterator();
while(iter.hasNext()) {
Map.Entry<Integer,String> me = iter.next();
System.out.println(me.getKey()+" "+me.getValue());
}
}
}
3、 一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,删除其中所有值为"abc"的字符串元素,请用代码实现。
4、 ArrayList<Integer> list = new ArrayList<Integer>(); 在这个泛型为Integer的ArrayList中存放一个String类型的对象。
5、 定义一个文件输入流,调用read(byte[] b)方法将exercise.txt文件中的所有内容打印出来(byte数组的大小限制为5)。
6、 定义一个标准的JavaBean,名叫Person,包含属性name、age。使用反射的方式创建一个实例、调用构造函数初始化name、age,使用反射方式调用setName方法对名称进行设置,不使用setAge方法直接使用反射方式对age赋值。
7、 分析以下程序运行结果,说明原理。(没有分析结果不得分)
public class ThreadTest {
public static void main(String args[]) {
MyThread t = new MyThread();
t.run();
t.start();
System.out.println("A");
}
}
class MyThread extends Thread {
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
}
System.out.println("B");
}
}
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、 编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。这个程序要考虑输入的字符串不能转换成一个十 进制整数的情况,并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。提示:十进制数转二进制数的方式是用这个数除以2,余数就是二 进制数的最低位,接着再用得到的商作为被除数去除以2,这次得到的余数就是次低位,如此循环,直到被除数为0为止。其实,只要明白了打印出一个十进制数的 每一位的方式(不断除以10,得到的余数就分别是个位,十位,百位),就很容易理解十进制数转二进制数的这种方式。
10、 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路)
---------NO15------------
第2题:编写程序计算12+22+32+....+1002的和。
第4题: Collection和Collections有什么关系?List和Set有什么异同点?Map有哪些常用类,各有什么特点?
第8题:声明类Person,包含2个成员变量:name、age。定义函数sayHello(),调用时输出:我叫***,今年***岁了。
第9题:定义一个静态方法,该方法可以接收一个List<Integer>,方法内对List进行排序
---------NO16------------
1、判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
5、 定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数。
6、 编程打印所有的3位质数,质数特点:只能被1和其本身整除
9、 编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,程序计算这一天是星期几,并且计算出是一年中的第几天。
10、 编写函数: 从一个字符串中按 [字节数] 截取一部分,但不能截取出半个中文(GBK码表),例如:从“HM程序员”中截取2个字节是“HM”,截取3个字节也要是"HM",截取4个则是“HM程”,而不要出现半个中文.
--------------NO17------------------
1、 假如我们在开发一个系统时需要对员工进行建模,员工包含 3 个属性:姓名、工号以及工资。经理也是员工,除了含有员工的属性外,另为还有一个奖金属性。请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。
2、 方法中的内部类能不能访问方法中的局部变量,为什么?
3、 请说明Java中字符'\'的含义,有什么作用?
6、 存在一个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属性不设置,
7、自定义字符输入流的包装类,通过这个包装类对底层字符输入流进行包装,让程序通过这个包装类读取某个文本文件(例如,一个java源文件)时,能够在读取的每行前面都加上有行号和冒号。
8、 已知一个类,定义如下:
package cn.itcast.heima;
public class DemoClass {
public void run()
{
System.out.println("welcome to heima!");
}
}
(1) 写一个Properties格式的配置文件,配置类的完整名称。
(2) 写一个程序,读取这个Properties配置文件,获得类的完整名称并加载这个类,用反射 的方式运行run方法。
9、在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,如果存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),否则,返回-1。要搜索的字符数组和字符都以参数形式传递传递给该方法,如果传入的数组为null,应抛出IllegalArgumentException异常。在类的main方法中以各种可能出现的情况测试验证该方法编写得是否正确,例如,字符不存在,字符存在,传入的数组为null等。
打印 ******
*****
****
***
**
2: 两个集合{“a”,“b”,“c”,“d”,“e”}和{“d”,“e”,“f”,“g”,“h”},把这两个集合去除重复项合并成一个。
3:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。