• 【Java面试复习经典】传智播客Java就业班入学测试题及答案解析(2014年版)


    【Java面试复习经典】传智播客Java就业班入学测试题及答案解析(2014年版)

      共50道题,每道题2分,总分100分,80分为合格。

      注意,题目有多选,也有单选。请认真作答。

    =============================================================================
    【Java面试复习经典】传智播客Java就业班入学测试题及答案解析(2014年版)
    
        共50道题,每道题2分,总分100分,80分为合格。
    
        注意,题目有多选,也有单选。请认真作答。
    
    对应试者的忠告:
    
        传智播客从办学一来,一直在IT培训领域保持着良好的口碑,之所以能做到这么好的口碑,主要得益于过硬的教学质量以及学员的高就业率。
    
        本测试题的目的在于帮助学员检测自己的java基础,因为公司要保证教学质量,光有名师授课是远远不够的,还需要学员们都具备一个基本的java基础.
    
        试想一下,如果学员入学前我们不进行测试,那么必然会导致学生的技术水平参差不齐,再好的老师也无法把这样的班教好。
    
        希望参加测试的学员能本着对自己负责的态度,独立完成这套测试题。
    
        如果您试图通过找人帮忙做题等其他途径来完成这套测试题,我们劝您千万别这样做,因为这样是害了自己。
    
        即使通过测试,顺利进入就业班的学习,同样是跟不上老师的进度,不会有一个好的结果。
    
        如果您觉得完成这套测试题非常有难度,那也没有关系,因为我们针对基础不好的学员专门开设了java基础与加强班,您可以通过短时间的培训,打下一个坚实的基础,再继续参加我们就业班的培训。
    
    【Java面试复习经典】
    -----------------------------------------------------------------------------
    1. 在JAVA中,下列哪些说法是正确的(AC)
    
        A. java源文件的扩展名为.java
        B. 写好的java源程序可以直接运行
        C. 编写的源程序必须先编译后才能运行
        D. 程序员可以读懂扩展名为.class的文件
        
        java程序需要经历如下几个步骤才能够被运行:
            1.建立java源文件,为了让编译器识别是java文件所有扩展名为.java。
            2.编写java代码,你在里面写文言文我也不反对,但是严格意义上来讲,不单单名称要符合java源文件规范,里面代码也应该是符合java语法的。
            3.编译器编译源文件:编译器javac通过编译.java文件产生可被java执行的.class文件。
            4.java执行.class文件。
    -----------------------------------------------------------------------------
    2. 下列标识符哪个是合法的(BD)**
    
        A. class
        B. $abc
        C. 1234
        D. _name
    
        标识符(掌握)
      (1)就是给类、接口、方法、变量等起名字的字符序列。
      (2)组成规则:
        A:可由英文大小写字母组成;
        B:可由数字组成;
        C:可由$和_组成;
        D:可由中文组成,但是不建议用中文!
      (3)注意事项:
        A:不能以数字开头;
        B:不能是java中的关键字;
        C:java语言严格区分大小写。
    -----------------------------------------------------------------------------
    3. 下面哪些赋值语句是正确的?(ABD)**
    
        A. long test = 012;   // 可以,八进制表示
        B. float f = -412;     // 正确
        C. int other = (int) true;     // 布尔类型不能转换为数值类型
        D. double d = 0x12345678;      // 可以,十六进制表示,在double范围内
        E. byte b = 128;      // 超出byte范围 -128~127
    -----------------------------------------------------------------------------
    4. 在Java中,下列语句不能通过编译的有(BD)
    
        A. String s = “join” + 3;
        B. int a = “join” + 3;
        C. int a = ‘a’ + 5;
        D. float f = 5 + 5.5;        // 小数java默认为double类型,无法从大变小,对于数据类型,一句话:可以鸡犬升天,不能委曲求全。
    -----------------------------------------------------------------------------
    5. 设 a = 3,则表达式 (--a)<<a的结果是(B)
    
        A. 16
        B. 8
        C. 24
        D. 12
    -----------------------------------------------------------------------------
    6. 下列代码运行的结果是(C)
    
        public static void main(String[] args) {
            int x = 4;
            int y = 5;
            if (x++ > 4 & ++y > 5) {
                x++;
            }
            System.out.println("x=" + x + ",y=" + y);
        }
    
        A. x=4,y=5
        B. x=4,y=6
        C. x=5,y=6
        D. x=6,y=6
    -----------------------------------------------------------------------------
    7. 尝试运行下面的代码会发生什么?(B)**
    
        public class Test {
            public static void main(String[] args) {
                boolean m = true;
                if (m = false) {
                    System.out.println("true");
                } else {
                    System.out.println("false");
                }
            }
        }
    
        A. 输出字符串”true”
        B. 输出字符串”false”    
        C. 编译时错误
        D. 运行时错误
        
        我们要明白if(){}语句中条件句中到底装的是什么,它里面判断的无非就是真假,true或者false,
        这里m作为一个boolean变量,在if中将它重新赋值为false,所以相当于if(false),故执行else中的代码。
    -----------------------------------------------------------------------------
    8. 编译并运行以下代码将发生什么?(E)**
    
        public static void main(String args[]) {
            char digit = 'a';
            for (int i = 0; i < 10; i++) {
                switch (digit) {
                    case 'x':
                    {
                        int j = 0;
                        System.out.println(j);
                    }
                    default:
                    {
                        int j = 100;
                        System.out.println(j);
                    }
                }
            }
            int i = j;
            System.out.println(i);
        }
        
        A. 输出11次100
        B. 输出10次100,然后抛出运行期异常
        C. 编译错误,因为变量i不能在main() 方法中被声明2次
        D. 编译错误,因为变量j不能在main() 方法中被声明2次
        E. 以上都不对        
        
        j是局部变量,在switch外是没法访问到的,编译出错提示找不到j变量
    -----------------------------------------------------------------------------
    9.    class Demo {
            public static int fun(int c) {
                return c += 2;
            }
            public static void main(String[] args) {
                int temp = fun(2);
                System.out.println(temp);
            }
        }
        
        A. 2
        B. 4
        C. 6
        D. 8
        
        B
    -----------------------------------------------------------------------------
    10. 下面哪些函数是public void aMethod() {...} 的重载函数?(BD)
    
        A. void aMethod( ) {...}
        B. public int aMethod(int a, float b) {...}
        C. public void aMethod() {...}
        D. public float aMethod(int m) {...}
    -----------------------------------------------------------------------------
    11. 在java中,关于数组描述正确的是(BD)
    
        A. 数组中的索引下标从1开始
        B. 存储在数组当中的数据都属于同一数据类型
        C. 通过数组名.length()能获得数组的长度        // 数组名.length    length是数组的一个属性
        D. 数组的最大索引下标是数组的长度减1
    -----------------------------------------------------------------------------
    12. 下面程序的输出结果是什么(D)
    
        int[] arr = new int[10];
        System.out.println(arr[0]);
    
        A. 编译不通过
        B. 运行时出错
        C. 输出null
        D. 输出0
        
        数组顾名思义是数据排成组,它就是用来存储数据的,
        当我们定义好它时,它就已经被明确装的是何种类型的数据,
        而当我们没有初始化里面元素的时候,java会默认会按照你指定元素的类型来在角标上初始化相应的默认值。
        想一想String类型的数组如果没有初始化,那它的结果是什么呢? 答:是null。因为String是一个类类型,是引用数据类型。
    -----------------------------------------------------------------------------
    13. 下面哪个语句正确地声明一个整型的二维数组(CD)**
    
        A. int a[][] = new int[][];
        B. int b[10][10] = new int[][];
        C. int c[][] = new int[10][10];
        D. int []d[] = new int[10][10];
        
        数组定义格式问题:
        int arr[][]=new arr[2][3] or int arr[][]=new arr[2][];
        左边部分[]在arr两侧均可。
    -----------------------------------------------------------------------------
    14. 以下代码输出是(D)
    
        class Demo {
            public static void main(String[] args) {
                int i = 0;
                int sum = 0;
                while (i <= 10) {
                    i++;
                    if (i % 2 != 0)
                        continue;
                    sum += i;
                }
                System.out.println(sum);
            }
        }
    
        A. 55
        B. 45
        C. 35
        D. 30
        
        0 + 2 + 4 + 6 + 8 + 10
    -----------------------------------------------------------------------------
    15. 和下面代码能完成相同的选项是(B)
    
        class Demo {
            public static void main(String[] args) {
                int i = 1;
                int sum = 0;
                while (i <= 100) {
                    if (i % 2 == 0) {
                        sum = sum + i;
                    }
                    i++;
                }
                System.out.println(sum);
            }
        }
    
        A. for (int x = 1; x <= 100; x++) { sum = sum + x; }
        B. for (int x = 0; x <= 100; x+=2) { sum = sum + x; }
        C. for (int x = 1; x <= 100; x+=2) { sum = sum + x; }
        D. 上述全对
    -----------------------------------------------------------------------------
    16. 下列有关类、对象和实例的叙述,正确的是哪一项?(D)
    
        A. 类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别
        B. 对象是类的抽象,类是对象的具体化,实例是对象的另一个名称
        C. 类是对象的抽象,对象是类的具体化,实例是类的另一个名称
        D. 类是对象的抽象,对象是类的具体化,实例是对象的另一个名称
    -----------------------------------------------------------------------------
    17. 下面关于java中包的说法正确的是(ACD)
    
        A. 在java中可以使用import语句导入包
        B. 在java中可以使用package语句导入包
        C. 位于同一个包中的类,不需要导包就可以直接访问
        D. 不同的包中可以出现类名相同的类
    -----------------------------------------------------------------------------
    18. 下列有关抽象类的叙述正确的是哪项?(C)**
    
        A. 抽象类中一定含有抽象方法
        B. 抽象类既能被实例化也能被继承
        C. 抽象类的声明必须包含abstract关键字
        D. 抽象类中不能有构造方法
    -----------------------------------------------------------------------------
    19. 下列有关接口的叙述错误的是哪项?(D)**
    
        A. 接口中只能包含抽象方法和常量
        B. 一个类可以实现多个接口
        C. 类实现接口时必须实现其中的方法
        D. 接口不能被继承
    -----------------------------------------------------------------------------
    20. 运行以下代码片段,输出结果是?(D)
    
        class X {
            Y b = new Y();
    
            X() {
                System.out.print("X");
            }
        }
    
        class Y {
            Y() {
                System.out.print("Y");
            }
        }
    
        public class Z extends X {
            Y y = new Y();
    
            Z() {
                System.out.print("Z");
            }
    
            public static void main(String[] args) {
                new Z();
            }
        }
    
        A. Z
        B. YZ
        C. XYZ
        D. YXYZ
        
        A:成员变量的问题
            int x = 10; //成员变量x是基本类型
            Student s = new Student(); //成员变量s是引用类型
        B:一个类的初始化过程
            先进行成员变量的初始化:
                默认初始化
                显示初始化
                构造方法初始化
        C:子父类的初始化(分层初始化)
            先进行父类初始化,然后进行子类初始化。
                
            结果:
                YXYZ
        
            问题:
                虽然子类中的构造方法默认有一个 super();
                但初始化的时候,不是按照那个顺序进行的。
                而是按照分层初始化进行的。
                super(); 它仅仅表示要先初始化父类数据,再初始化子类数据。
    -----------------------------------------------------------------------------
    21. 下列关于类的继承的描述,正确的有(BD)
    
        A. 一个类可以同时继承多个父类
        B. 一个类可以具有多个子类
        C. 子类会自动拥有父类所有的方法        //自动拥有父类所有的非私有方法
        D. 一个类继承另一个类需要使用extends关键字
    -----------------------------------------------------------------------------
    22. 下列选项中关于java中this关键字的说法错误的有(BD)
    
        A. this关键字是一个对象的引用        // this可以代表当前类
        B. this关键字可以用于引用当前类以外其他类型的对象        // this只代表本类对象
        C. this可用于构造函数中,调用类本身重载的构造函数,但是必须写在首行
        D. this可用于静态方法中            // this是对象的引用,静态方法没有对象,没有爹啊 所以不能在静态方法中引用this(静态方法不能与this同时使用)
    -----------------------------------------------------------------------------
    23. 下列关于构造函数的说法正确的是(AB)
    
        A. 方法名必须与类名相同
        B. 使用new关键字创建对象时,java虚拟机会自动调用构造函数    //调用默认空参的构造函数,如果类中定义了带参的,那么需要在new的时候提供参数
        C. 我们在定义一个类时,必须要声明至少一个构造函数
        D. 构造函数中不能使用return语句    // 构造函数返回值是对象,但是java规定不可以显式返回该对象
    -----------------------------------------------------------------------------
    24. 编译并运行以下代码将发生什么?(D)
    
        class MyClass {
            int x;
    
            MyClass(int i) {
                x = i;
            }
    
            public static void main(String args[]) {
                MyClass m1 = new MyClass(100);
                MyClass m2 = new MyClass(100);
                if (m1.equals(m2)) {    // 继承Object类,比较的是对象的地址值
                    System.out.println("Both are equal");
                } else {
                    System.out.println("Both are not equal");
                }
            }
        }
    
        A. 代码编译时报出错误提示信息“equals() 方法未定义”
        B. 编译通过,抛出运行期异常
        C. 输出Both are equal
        D. 输出Both are not equal
    -----------------------------------------------------------------------------
    25. 运行以下的main()方法,结果是?(AC)**
    
        public static void main(String[] args) {
            String myString;
            int x = 100;
            if (x < 100) 
                myString = "x is less than 100";
            if (x > 100) 
                myString = "x is greater than 100";
            System.out.println(myString.length());
        }
    
        A. 编译时报出错误提示信息“变量myString没有被初始化”
        B. 编译通过
        C. 编译未能通过。但如果变量myString在第8行前的代码中被初始化,代码可以编译通过,运行时可以输出字符串myString的长度
        D. 以上都不对
    -----------------------------------------------------------------------------
    26. 有如下代码,请问哪些是正确的?(ACD)**
    
        class ClassA {}
        class ClassB extends ClassA {}
        class ClassC extends ClassA {}
        以及
        ClassA p0 = new ClassA();
        ClassB p1 = new ClassB();
        ClassC p2 = new ClassC();
        ClassA p3 = new ClassB();
        ClassA p4 = new ClassC();
    
        A.p0 = p1; // 赋值操作,把子类的地址用父类来接收,没问题
        B.p1 = p2; // 赋值操作,把子类的地址用其他子类类来接收,有问题
        C.p1 = (ClassB)p3; // 赋值操作,把父类的地址强转为子类的地址再用父类来接收,没问题
        D.p2 = (ClassC)p4; // 赋值操作,把父类的地址强转为子类的地址再用父类来接收,没问题
    -----------------------------------------------------------------------------
    27. 关于继承, 以下说法正确的是:(ACD)
    
        A.Java中只支持单继承, 一个类只能继承一个类, 但是可以有多个子类
        B.一个类如果没有自己写的无参构造方法, 那么子类将无法继承
        C.子类可以当父类用, 父类不可以当子类用
        D.子类重写父类方法时访问权限不能更低
    -----------------------------------------------------------------------------
    28. 编译并运行以下代码的输出结果是?(C)
    
        String s1 = new String("amit"); // 字符串常量池
        System.out.println(s1.replace('m', 'r')); // replace方法返回一个字符串,这个字符串当然是新的了,不会影响原来的s1
        System.out.println(s1);
        String s3 = "arit";
        String s4 = "arit";
        String s2 = s1.replace('m', 'r');
        System.out.println(s2 == s3);
        System.out.println(s3 == s4);
    
        A.         
        arit
        amit
        false
        true
    
        B. 
        arit
        arit
        false
        true
    
        C. 
        amit
        amit
        false
        true
    
        D. 
        arit
        amit
        true
        true
    -----------------------------------------------------------------------------
    29. 下列哪些代码可以顺利通过编译和运行?(ABD)**
    
        A.Integer i = new Integer('A');
        B.Integer i = new Integer("7");        // 把字符串转为int类型,注意这个字符串必须是由数字字符组成。
        C.Character c = new Character("A");
        D.Boolean b = new Boolean(null);       // 在Boolean的构造函数中,除了"true"和"false"之外的字符串虽然不会造成编译错误,但是会返回false。
        E.Integer i = new Integer("0x10");
        
        因为这个Boolean的构造函数是根据输入的值判断的是true还是false或者输入的值是"true"或"false";
        如果输入的值是Boolean类型true,则返回true,否则返回false。
        如果输入的值是String类型的"true"或"false",
        那么这个构造函数会判断输入的是否为 "" 为空,也是返回false,
        不为空则进行长度判断,长度如果不满足true的长度,那么也是返回false,否则返回true;
        如果长度满足条件则进行对该字符串的每个字符进行编码转换,然后继续判断每个字符是否满足条件,也是返回Boolean类型。
        如果满足条件则将进行无视大小写的判断返回的也是Boolean类型的。
        原理就是这样。
    
        所以说,你这个实例化对象Boolean传入的"null"不满足Boolean类型的true,也没满足字符串的"true",所以返回的是false。
    -----------------------------------------------------------------------------
    30. 在Java中,如果要在字符串类型对象s="java"中,得到字符 'v' 出现的位置,可使用下面的那个方法?(C)
    
        A. s.matches('v');
        B. s.charAt('v');      // 返回指定索引处的 char 值
        C. s.indexOf('v');     // 返回指定字符在此字符串中第一次出现处的索引
        D. s.substring('v');
    -----------------------------------------------------------------------------
    31. 下列关于ArrayList、Vector和LinkedList集合的说法正确是有(ACD)
    
        A. ArrayList集合底层是数组实现,该集合线程不安全
        B. Vector 集合元素的存放是无序的
        C. LinkedList集合底层是链表结构,适合做元素的增删操作
        D. 这三个集合都是List接口的实现类
    -----------------------------------------------------------------------------
    32. 下面程序的输出结果是什么(D)
    
        Set set= new HashSet();
        set.add("aaa");
        set.add("bbb");
        set.add("aaa");
        System.out.println(set.size());
    
        A. 编译不通过
        B. 运行时出错
        C. 输出3
        D. 输出2     
        
        一看到set想到set的特点是元素不可重复 无序 选D 编译时会有警告提示,使用泛型指定类型即可。
    -----------------------------------------------------------------------------
    33. 下列哪些方法是ArrayList和LinkedList集合中都定义的(ACD)**
    
        A. add(Object o)
        B. removeFirst()        // LinkedList所特有的方法
        C. remove(Object o)
        D. add(int index, Object o)
    -----------------------------------------------------------------------------
    34. 下列哪些集合属于Collection体系的子类(BD)**
    
        A. TreeMap
        B. ArrayList
        C. Hashtable
        D. HashSet
    -----------------------------------------------------------------------------
    35. 下面有关Java异常处理的说法错误的是(A)
    
        A. 一个try块只能有一条catch语句
        B. 一个try块中可以不使用catch语句
        C. catch块不能单独使用,必须始终与try块在一起
        D. finally块不能单独使用,必须始终与try块在一起
    -----------------------------------------------------------------------------
    36. 下列关键字能和try语句一起使用的是(CD)
    
        A. final
        B. finalize
        C. finally
        D. catch
    -----------------------------------------------------------------------------
    37. 下面程序的运行结果是(D)
    
        FileOutputStream fos = new FileOutputStream(“c:\demo.txt”);
        fos.write(“abc”);     // fos.write(“abc”.getBytes());
        fos.close();
    
        A.在C盘创建文件demo.txt,但文件是空的
        B.在C盘创建文件demo.txt,并写入数据abc
        C.将C盘已有的文件demo.txt中追加写入abc
        D.编译失败
    -----------------------------------------------------------------------------
    38. 下列关于Java中文件输入输出的说法正确的是(AC)
    
        A. 在Java中,文件的输入输出功能是通过流来实现的
        B. 如果要把数据写入到一个文件中,需要创建一个输入流对象
        C. 字符流在某些方面比如汉字的处理,比字节流更方便
        D. 可以通过Reader r = new Reader("c:\pet.txt")创建一个输入流对象
    -----------------------------------------------------------------------------
    39. 请看如下代码:
    
        BufferedReader br = new BufferedReader(new FileReader("c:\a.txt"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("d:\b.txt"));
        String line = null;
        while ((line = br.readLine()) != null) {
            bw.write(line);
            bw.newLine();
            bw.flush();
        }
        bw.close();
        br.close();
    
        它表达的意思是?(A)
        A. 把c盘目录下的a.txt文件内容复制到d盘目录下的b.txt
        B. 把d盘目录下的b.txt文件内容复制到c盘目录下的a.txt
        C. 读取c盘目录下a.txt文件,输出在控制台
        D. 把控制台的内容写入到d盘目录下的b.txt文件中
    -----------------------------------------------------------------------------
    40. 关于泛型的说法正确的是(ABC)
    
        A.泛型是JDK1.5出现的新特性
        B.泛型是一种安全机制
        C.使用泛型避免了强制类型转换
        D.使用泛型必须进行强制类型转换
    -----------------------------------------------------------------------------
    41. 关于方法的递归算法,说法正确的是(ABD)
    
        A.递归就是方法自己调用自己
        B.递归的次数不能过大,否则会导致栈内存溢出
        C.使用递归算法,方法必须有返回值
        D.构造方法不可以使用递归算法
    -----------------------------------------------------------------------------
    42. 下列哪个关键字可以用于实现同步?(C)
    
        A. native
        B. static
        C. synchronized
        D. abstract
    -----------------------------------------------------------------------------
    43. 下列哪些方法可以让线程中断?(AD)
    
        A. sleep
        B. start
        C. notify
        D. wait
    -----------------------------------------------------------------------------
    44. 启动线程调用哪个方法?(B)
    
        A. run()
        B. start()
        C. play()
        D. go()
    -----------------------------------------------------------------------------
    45. 在 awt 中,下列哪个组件可以实现带标题的窗口(C)
    
        A. Menu
        B. Button
        C. Frame
        D. TextField
    -----------------------------------------------------------------------------
    46. 编写Button组件的事件处理类时,需要实现哪个接口?(B)**
    
        A. ItemListener
        B. ActionListener
        C. ButtonListener
        D. WindowListener
    -----------------------------------------------------------------------------
    47. 下面哪项不是TCP的特点?(B)
    
        A.面向连接
        B.数据不可靠
        C.传输速度慢
        D.对数据大小无限制
        
        解析:
        最大的坏处就是PPPoE导致MTU变小了,以太网的MTU是1500,再减去PPP的包头包尾的开销(8Bytes),就变成1492。
    
        UDP 包的大小就应该是 1492 - IP头(20) - UDP头(8) = 1464(BYTES)
        TCP 包的大小就应该是 1492 - IP头(20) - TCP头(20) = 1452(BYTES)
    
        目前大多数的路由设备的MTU都为1500
        我对上面的理解是:如果我们定义的TCP和UDP包小于1452,1464,那么我们的包在IP层就不用分包了,这样传输过程中就避免了在IP层组包发生的错误。
        如果使用UDP协议,如果IP层组包发生错误,那么包就会被丢弃,UDP不保证可靠传输。
        但是TCP发生组包错误时,该包会被重传,保证可靠传输。
        所以,我们在用Socket编程时,包的大小设定不一定非要小于1400,UDP协议要求包小于64K,TCP没有限定。
    -----------------------------------------------------------------------------
    48. TCP协议的服务器的Socket对象是下面哪一个类?(C)
    
        A.Socket
        B.InputStream
        C.ServerSocket
        D.OutputStream
    -----------------------------------------------------------------------------
    49. 正则表达式中可以表示所有的单词字符信息的是下面哪个规则(BD)
    
        A. W
        B. w
        C. [a-zA-Z]
        D. [a-zA-Z_0-9]
    -----------------------------------------------------------------------------
    50. 获取Class类型的对象的三种方式是(ABD)
    
        A. Object类的getClass()方法
        B. class静态属性(数据类型的静态属性class)(任意数据类型都具备一个class静态属性)
        C. 自己创建Class对象
        D. Class类的forName()静态方法
        
        解析:
        // 1. 根据给定的类名来获得:用于类加载
        String classname = "cn.itcast.reflect.Person"; // 来自配置文件
        Class clazz = Class.forName(classname); // 此对象代表Person.class
    
        // 2. 如果拿到了对象,不知道是什么类型:用于获得对象的类型
        Object obj = new Person();
        Class clazz1 = obj.getClass(); // 获得对象具体的类型
    
        // 3. 如果是明确地获得某个类的Class对象:主要用于传参
        Class clazz2 = Person.class; 
    =============================================================================
  • 相关阅读:
    NetBeans 时事通讯(刊号 # 147 May 18, 2011)
    NetBeans 时事通讯(刊号 # 146 May 13, 2011)
    准备入职支付宝
    NetBeans 时事通讯(刊号 # 145 May 05, 2011)
    GAE 博客——B3log Solo 0.2.6 正式版发布了!
    用C语言实现一个简单的HTTP客户端(HTTP Client)
    Grack Ruby/Rack Git SmartHTTP Server Handler
    Cpy
    pyhttp 用Python演示Web服务器/客户端对HTTP协议的解析
    用C语法来写Python代码
  • 原文地址:https://www.cnblogs.com/chenmingjun/p/8811193.html
Copyright © 2020-2023  润新知