java 面试题

笔试题

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的三次方。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值