A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 cc19930915 于 2016-5-10 16:52 编辑

说几句额外话花:笔试面试我刚刚经历过了,笔试并没有什么,无非就是多练,敲多了自然会。面试,面试的编程题和笔试的编程题都差不多,因为总共也就二十七天的内容,题目再变,无非也就是那些类的操作。至于面试的知识点部分的话,就需要自己多用点心,看看笔记什么的。从最基础到反射随机问。。如果想要进就业班,就做两件事,练,看。多练代码,多看知识点。




讲真,很多人到基础视频的笔记里面copy一些知识点出来,然后到论坛上发一个帖子有意思吗?


赚金币的方式很多,为什么一定要通过这种方式呢?

还有,有些ID一个问题一个帖,连续发七八个帖子。。有些随便资料一查都能够查到的东西还要发个帖子。。

与其这样子水,不如搞点有意义的东西

接下来我会发一些题目,六十题左右

我在报名系统做的十题笔试题我都在六十道里面见过。。所以有需要的看看,也练练

题目资源也是来自本论坛,但是我忘记是哪个帖子了,只有题目没有代码,所以我补充了代码再发出来,一般都是自己敲的,个别题参考的

欢迎你们把一些题发到这个帖子,集齐起来。当然,最好附上实现代码。


27 个回复

正序浏览
看一看。。。。。。。。
回复 使用道具 举报
辛苦了,敲得这么厉害
回复 使用道具 举报
Test22--代码实现c盘某个文件夹复制到D盘中,加上代码,加上注释,加上思路。

如果有更好的解决方式,你可以发出来提供参考

ps:代码比较简单,稍微看一下就明白了,就不加思路了  麻烦

  1. public class Test22 {

  2.         /**
  3.          * @param args
  4.          * @throws IOException
  5.          */
  6.         public static void main(String[] args) throws IOException {
  7.                 File srcfile = new File("F:\\javase");
  8.                 File destfile = new File("F:\\新建文件夹");
  9.                 findFile(srcfile,destfile);
  10.         }

  11.         private static void findFile(File srcfile, File destfile) throws IOException {
  12.                 File[] files = srcfile.listFiles();
  13.                 for (File file : files) {
  14.                         if(file.isFile()){
  15.                                 File newfile = new File(destfile,file.getName());
  16.                                 copyFile(file,newfile);
  17.                         }else{
  18.                                 File newfile = new File(destfile,file.getName());
  19.                                 newfile.mkdir();
  20.                                 findFile(file, newfile);
  21.                         }
  22.                 }
  23.         }

  24.         private static void copyFile(File srcfile, File destfile) throws IOException {
  25.                 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcfile));
  26.                 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destfile));
  27.                 byte[] arr = new byte[1024 * 8];
  28.                 int len = 0;
  29.                 while((len = bis.read(arr)) != -1){
  30.                         bos.write(arr, 0, len);
  31.                 }
  32.                 bis.close();
  33.                 bos.close();
  34.         }
  35.        
  36. }
复制代码

回复 使用道具 举报
本帖最后由 cc19930915 于 2016-5-11 18:29 编辑

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

如果有更好的解决方式,你可以发出来提供参考

  1. public class Test21 {

  2.         public static void main(String[] args) throws Exception {
  3.                 Arr a = new Arr();
  4.                 Thread t1 = new Thread(a);
  5.                 Thread t2 = new Thread(a);
  6.                 t1.setName("线程一");
  7.                 t2.setName("线程二");
  8.                 t1.start();
  9.                 t2.start();
  10.                 t1.join();
  11.                 t2.join();
  12.                 for (String string : a.arr) {
  13.                         System.out.println(string);
  14.                 }
  15.         }        
  16. }
  17. class Arr implements Runnable{
  18.         String[] arr = new String[6];
  19.         int index = 0;
  20.         @Override
  21.         public void run() {
  22.                 for (int i = 0; i < 3; i++) {               
  23.                         try {
  24.                                 Thread.sleep(new Random().nextInt(100));
  25.                                 add();
  26.                         } catch (InterruptedException e) {
  27.                                 
  28.                                 e.printStackTrace();
  29.                         }
  30.                 }
  31.         }
  32.         public synchronized void add(){
  33.                         arr[index] = Thread.currentThread().getName() + index;
  34.                         index++;        
  35.         }
  36. }
复制代码
回复 使用道具 举报
本帖最后由 cc19930915 于 2016-5-11 17:53 编辑

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

如果有更好的解决方式,你可以发出来提供参考

  1. public class Test20 {
  2.         public static void main(String[] args) {
  3.                 Set<Integer> set = new HashSet<>();
  4.                 Random r = new Random();
  5.                 while(set.size() != 20){
  6.                         int num = r.nextInt(21);
  7.                         set.add(num);
  8.                 }
  9.                 System.out.println(set);
  10.         }

  11. }
复制代码


回复 使用道具 举报
Test19--单例模式获取设置配置信息



说实话,我没读懂这题,求大神做
回复 使用道具 举报
Test18--1.写一个Properties格式的配置文件,配置类的完整名称。写一个程序,2.读取这个Properties配置文件,获得类的完整名称并加载这个类,用反射 的方式运行run方法。

如果有更好的解决方式,你可以发出来提供参考

ps:这种题目写的比较少,个人感觉我代码肯定是可以优化的

  1. public class Test18 {
  2.         public static void main(String[] args) throws Exception {
  3.                 //创建对象
  4.                 Properties pp = new Properties();
  5.                 //获取方法名
  6.                 String method_name = getPro(pp,"Method");
  7.                 //获取类名
  8.                 String class_name = getPro(pp, "Class");
  9.                 //释放资源
  10.                 pp.clone();
  11.                 //获取字节码对象
  12.                 Class clazz = Class.forName(class_name);
  13.                 //获取方法对象
  14.                 Method method = clazz.getDeclaredMethod(method_name,null );
  15.                 //获取构造
  16.                 Constructor con = clazz.getConstructor();
  17.                 //创建实例
  18.                 Object obj = con.newInstance();
  19.                 //方法执行
  20.                 method.invoke(obj, null);
  21.         }
  22.        

  23.         /*
  24.          * 获取配置
  25.          */
  26.         private static String getPro(Properties pp,String key) throws Exception {
  27.                 pp.load(new FileReader("配置.txt"));
  28.                 String value = pp.getProperty(key);
  29.                 return value;
  30.         }


  31.         /*
  32.          * 设置配置
  33.          */
  34.         private static void setPro(Properties p,String key,String value) throws IOException {
  35.                 p.setProperty(key, value);
  36.                 p.store(new FileWriter("配置.txt"), null);
  37.         }

  38. }
复制代码
回复 使用道具 举报
本帖最后由 cc19930915 于 2016-5-11 16:48 编辑

Test17--一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,删除其中所有值为"abc"的字符串元素,请用代码实现。

如果有更好的解决方式,你可以发出来提供参考


  1. public class Test17 {
  2.         public static void main(String[] args) {
  3.                 ArrayList<String> list  = new ArrayList<>();
  4.                 list.add("abc");
  5.                 list.add("bc");
  6.                 list.add("bec");
  7.                 list.add("bfsc");
  8.                 list.add("bec");
  9.                 list.add("brewc");
  10.                 list.add("abc");
  11.                 /*for (int i = 0; i < list.size(); i++) {
  12.                         if("abc".equals(list.get(i))){
  13.                                 list.remove(i);
  14.                         }
  15.                 }*/
  16.                 ListIterator<String> it = list.listIterator();
  17.                 while(it.hasNext()){
  18.                         if("abc".equals(it.next())){
  19.                                 it.remove();
  20.                         }
  21.                 }
  22.                 System.out.println(list);
  23.         }

  24. }
复制代码
回复 使用道具 举报
Test16--编写程序,循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。

如果有更好的解决方式,你可以发出来提供参考

ps:直接用TreeSet就可以了其实,因为有排序,然后长度不固定。但是为了回顾一下冒泡和选择,所以。。

  1. public class Test16 {
  2.         public static void main(String[] args) {
  3.                 Scanner sc = new Scanner(System.in);
  4.                 ArrayList<String> list = new ArrayList<>();
  5.                 while(true){
  6.                         String line = sc.nextLine();
  7.                         if("end".equals(line)){
  8.                                 break;
  9.                         }
  10.                         list.add(line);
  11.                 }
  12.                 for (int i = 0; i < list.size() - 1; i++) {
  13.                         for (int j = i + 1; j < list.size(); j++) {
  14.                                 if(list.get(i).compareTo(list.get(j)) < 0){
  15.                                         swap(list,i,j);
  16.                                 }
  17.                         }
  18.                 }
  19.                 System.out.println(list);
  20.         }

  21.         private static void swap(ArrayList<String> list, int i, int j) {
  22.                 String temp = list.get(i);
  23.                 list.set(i, list.get(j));
  24.                 list.set(j, temp);
  25.         }

  26. }
复制代码
回复 使用道具 举报
Test15--把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出,
            例如:a:  21 次 b:  15 次 c: 15 次  把:  7 次...


如果有更好的解决方式,你可以发出来提供参考

  1. public class Test15 {
  2.         public static void main(String[] args) throws IOException {
  3.                 TreeMap<String, Integer> map = new TreeMap<>();
  4.                 BufferedReader fr = new BufferedReader(new FileReader("a.txt"));
  5.                 int x = 0;
  6.                 String line;
  7.                 while((line = fr.readLine())!= null){
  8.                         char[] arr = line.toCharArray();
  9.                         for (char d : arr) {
  10.                                 count(map, d + "");
  11.                         }
  12.                        
  13.                 }
  14.                 System.out.println(map);
  15.         }

  16.         private static void count(TreeMap<String, Integer> map, String x) {
  17.                 if(map.containsKey(x)){
  18.                         map.put(x +"", map.get(x) + 1);
  19.                 }else{
  20.                         map.put(x +"", 1);
  21.                 }
  22.         }
  23. }
复制代码
回复 使用道具 举报
Test14--编写一个类,增加一个实例方法用于打印一条字符串。并使用反射手段创建该类的对象, 并调用该对象中的方法

如果有更好的解决方式,你可以发出来提供参考

  1. public class Test14 {
  2.         public static void main(String[] args) throws NoSuchMethodException, Exception {
  3.                 Class cla = Demo.class;
  4.                 Method method = cla.getMethod("printStr");
  5.                 method.invoke(cla.getConstructor().newInstance());
  6.         }

  7. }
复制代码
  1. public class Demo {
  2.         String str = "你好";
  3.         public void printStr(){
  4.                 System.out.println("你好");
  5.         }
  6. }
复制代码
回复 使用道具 举报
本帖最后由 cc19930915 于 2016-5-11 14:15 编辑

Test13--定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法,例如:红灯获取下一个灯是绿灯,绿灯获取下一个灯是黄灯

如果有更好的解决方式,你可以发出来提供参考


  1. public class DemoLight {
  2.          public static void main(String[] args) {
  3.                 Light s = Light.RED.next();
  4.                 System.out.println(s);
  5.             }

  6.         }
  7.         enum Light{
  8.             RED{
  9.                 public Light next(){
  10.                     return GRE;
  11.                 }
  12.             },GRE{
  13.                 public Light next(){
  14.                     return YEL;
  15.                 }
  16.             },YEL{
  17.                 public Light next(){
  18.                     return RED;
  19.                 }
  20.             };
  21.             public abstract Light next();
  22.         
  23.         
  24.         }
复制代码
回复 使用道具 举报
666666大神啊!!!!!顶!!!
回复 使用道具 举报
Test12--方法中的内部类能不能访问方法中的局部变量,为什么?


ps:不知道为什么的自己百度
回复 使用道具 举报
Test11--编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。

如果有更好的解决方式,你可以发出来提供参考

  1. public class Test11 {
  2.         public static void main(String[] args) {
  3.                 HashMap<String, Integer> map = new HashMap<String, Integer>();
  4.                 map.put("张三", 13);
  5.                 map.put("李四", 14);
  6.                 /*
  7.                  * 遍历方式1: 键值对
  8.                  */
  9.                 /*Set<Map.Entry<String, Integer>> set = map.entrySet();
  10.                 Iterator<Map.Entry<String, Integer>> it = set.iterator();
  11.                 while(it.hasNext()){
  12.                         Entry<String, Integer> entry = it.next();
  13.                         String key = entry.getKey();
  14.                         int value = entry.getValue();
  15.                         System.out.println(key + "=" + value);
  16.                 }*/
  17.                 /*
  18.                  * 遍历方式2:键找值
  19.                  */
  20.                 Set<String> set = map.keySet();
  21.                 for (String string : set) {
  22.                         System.out.println(string + "=" + map.get(string));
  23.                 }
  24.         }

  25. }
复制代码


回复 使用道具 举报
本帖最后由 18735346124 于 2016-5-10 00:32 编辑
cc19930915 发表于 2016-5-9 23:12
*Test1--取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq",输出格式为:a(2)b(1)k(2)..

如 ...


import java.util.LinkedHashMap;

public class Test_1 {
          public static void main(String[] args) {
        String s = "abcdekka27qoq";
        LinkedHashMap<Character, Integer> hm = new LinkedHashMap<>(); //定义一个双列集合,键存放字符,值存放出现次数
        char[] arr = s.toCharArray();   //将字符串转换成字符数组
        for (char c : arr) {
        if (!hm.containsKey(c)) {               //如果键中不包含字符,则添加
                  hm.put(c,1);
        }else {                                 //如果包含,则将值中的数加1
               hm.put(c, hm.get(c)+1);
        }
        }
        for (Character ch : hm.keySet()) {         //遍历键的集合,
                Integer it = hm.get(ch);               //得到值
                System.out.print(ch+"("+it+")");       //输出键--值
                }
        }
}
回复 使用道具 举报
Test10--28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?

如果有更好的解决方式,你可以发出来提供参考


  1. public class Test9 {
  2.         public static void main(String[] args) {
  3.                 System.out.print(getNum(50));
  4.                
  5.         }
  6.         public static int getNum(int man){
  7.                 //空瓶子
  8.                 int empty_bottle = 0;
  9.                 //瓶数
  10.                 int bottle = 0;
  11.                 //需要的瓶数
  12.                 int need_bottle = 0;
  13.                 //如果人数大于喝掉的瓶数
  14.                 while(man >= bottle){
  15.                         bottle++;
  16.                         empty_bottle++;
  17.                         need_bottle++;
  18.                         if(empty_bottle == 3){
  19.                                 bottle++;
  20.                                 empty_bottle = 1;
  21.                                
  22.                         }
  23.                        
  24.                 }
  25.                 return need_bottle;
  26.         }

  27. }
复制代码
回复 使用道具 举报
Test9--写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印

如果有更好的解决方式,你可以发出来提供参考

  1. public class Test08 {
  2.                 public static void main(String[] args) {
  3.                         // 根据n创建一个二维数组
  4.                         int n = 4;
  5.                         int[][] arr = new int[n][n];
  6.                         // 数组添加元素
  7.                         addArr(arr);
  8.       
  9.                         // 将数组遍历出来
  10.                         for (int i = 0; i < arr.length; i++) {
  11.                 for (int j = 0; j < arr.length; j++) {
  12.                         System.out.print(arr[i][j] + "\t");
  13.                 }
  14.                 System.out.println("\n");
  15.                         }
  16.                 }

  17.                 /*
  18.                  *  二维数组赋值方法
  19.                  */
  20.                 public static void addArr(int[][] arr) {
  21.                         // 创建数组的两个索引变量
  22.                 int i = 0;
  23.                 int j = 0;
  24.                 // 通过 max 和min控制索引i,j的变化
  25.                 int max = arr.length - 1;
  26.                 int min = 0;
  27.                 // 所需要赋的值
  28.                 int num = 1;

  29.                 while (min <= max) {
  30.                 // 1、i不变j++ 向右
  31.                 while (j < max) {
  32.                         arr[i][j++] = num++;
  33.                 }
  34.                 // 2、j不变i++ 向下
  35.                 while (i < max) {
  36.                         arr[i++][j] = num++;
  37.                 }
  38.                 // 3、i不变j-- 向左
  39.                 while (j > min) {
  40.                         arr[i][j--] = num++;
  41.                 }
  42.                 // 4、j不变i-- 向上
  43.                 while (i > min) {
  44.                         arr[i--][j] = num++;
  45.                 }
  46.                 // 由于可能在n为奇数的时候无法为中心那个数赋值所以要补上这个数的赋值
  47.                 if (min == max) {
  48.                         arr[i][j] = num;
  49.                 }
  50.                 max--;
  51.                 min++;
  52.                 // 循环一圈又开始想有赋值j++
  53.                 j++;
  54.                 // 由于向上的时候最后一次赋值i多减了一次所以每次外循环都要将i补回来
  55.                         i++;
  56.                 }
  57.         }
  58. }
复制代码
回复 使用道具 举报
题库啊 能分享吗 ?  我也想试试自己做下,以前的题太乱了
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马