JAVA面试题集7.pdf

上传人:奔*** 文档编号:89656774 上传时间:2023-05-08 格式:PDF 页数:71 大小:6.58MB
返回 下载 相关 举报
JAVA面试题集7.pdf_第1页
第1页 / 共71页
JAVA面试题集7.pdf_第2页
第2页 / 共71页
点击查看更多>>
资源描述

《JAVA面试题集7.pdf》由会员分享,可在线阅读,更多相关《JAVA面试题集7.pdf(71页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、说明:该面试题集共5 4 页,目前仅供即将毕业的学员参考使用,不能作为标准化试题,上述试题收集渠道来源较为广泛,难度上无法控制,有些题是针对五年以上开发人员的,我对试题的答案无法作出正确地保证,试题答案供大家参考使用。学员们应该尽量举一反三,主动思考。我接触的招聘企业现在普遍反映学员们自己主动学习和自学能力以及对基础知识的掌握比较弱,希望这些试题能够帮助大家加深理解和记忆,该试题只供达内的学员参考,请勿外传!最后预祝同学们报工顺利!达内广州中心大客户运营经理贾元峥JAVA面试题集基础知识:1 .C+或 Java中的异常处理机制的简单原理和应用。当 JAVA程序违反了 JAVA的语义规则时,JA

2、VA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2 种情况。一种是JAVA类库内置的语义检查。例如数组卜.标越界,会引发IndexOutOfBoundsException;访 问 null的对象时会引发 NullPointerExceptiono另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.Iang.Thowable的子类。2.Java的接口和C+的虚类的相同和不同处。由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。

3、与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是publicstatic,所有方法默认情况下是public.一个类可以实现多个接口。3.垃圾回收的优点和原理。并考虑2 种回收机制。Java语言中一个显著的特点就是引入了垃圾回收机制,使 C+程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回

4、收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。4.请说出你所知道的线程同步的方法。wait。:使一个线程处于等待状态,并且释放所持有的对象的lockosleep。:使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉 InterruptedException 异常。notify。:唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤

5、醒哪个线程,而且不是按优先级。Allnotity。:唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。5.请讲一讲析构函数和虚函数的用法和作用。6.Error与Exception有什么区别?Error表示系统级的错误和程序不必处理的异常,Exception表示需要捕捉或者需要程序进行处理的异常。7.在java中一个类被声明为final类型,表示了什么意思?表示该类不能被继承,是顶级类。8.描述一下你最常用的编程风格。9.heap和stack仃什么区别。栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素10.

6、如果系统要使用超大整数(超 过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算)。public class BiglntQ(int ArrOne=new ArrOne1000;String intString=;public int Arr(String s)(intString=s;for(int i=0;i 0);/throws an Assertionerror if a long,string都不能作用于swticho4 2,编程题:写一个Singleton出来。Singleton模式主要作用是保证在Java应用程序中,一个类Class

7、只有一个实例存在。一 般Singleton模式通常有几种种形式:第一种形式:定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getlnstance方法获取对它的引用,继而调用其中的方法。public class Singleton private Singleton()在自己内部定义自己一个实例,是不是很奇怪?注意这是private只供内部调用private static Singleton instance=new Singleton();这里提供了一个供外部访问本class的静态方法,可以直接访问publ

8、ic static Singleton getlnstance()return instance;)第二种形式:public class Singleton private static Singleton instance=null;public static synchronized Singleton getlnstance()这个方法比上面有所改进,不用每次都进行生成对象,只是第一次使用时生成实例,提高了效率!if(instance=null)instance=new Singleton();return instance;)其他形式:定义一个类,它的构造函数为private的,所有方

9、法为static的。一般认为第一种形式要更加安全些Hashtable 和 HashMapHashtable 继承自 Dictionary 类,而 HashMap 是 Java1.2 引进的 Mapinterface的一个实现HashMap允许将null作为一个entry的key或 者value,而Hashtable不允许还 有 就 是,HashMap把Hashtable的contains方 法 去 掉 了,改成contains value和containsKey。因为contains方法容易让人引起误解。最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在

10、多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。43.描述一下JVM加 载class文件的原理机制?44.试举例说明一个典型的垃圾回收算法?45.请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来.46.请写一个java程序实现线程连接池功能?47.给定个C语言函数,要求实现在java类中进行调用。48、编一段代码,实现在控制台输入一组数字后,排序后在控制台输出;49、列出某文件夹下的所有文件;50、调用系统命令

11、实现删除文件的操作;51、实现从文件中一次读出一个字符的操作;52、列出一些控制流程的方法;53、多线程有哪些状态?54、编写了一个服务器端的程序实现在客户端输入字符然后在控制台上显示,直到输入“END为止,让你写出客户端的程序;55 作用域public,phvate,protected,以及不写时的区别答:区别如下:作 用 域 当 前 类 同 一 package子 孙 类 其 他 packagepublic Y 4 4 4protected 4 4 4 xfriendly A/4 X Xprivate x x x不写时默认为friendly56 ArrayList 和 Vector 的区别,

12、HashMap 和 Hashtable 的区别答:就 ArrayList与 Vector主要从二方面来说.一.同步性:Vector是线程安全的,也就是说是同步的,而 ArrayList是线程序不安全的,不是同步的二.数据增长:当需要增长时,Vector默认增长为原来一培,而 ArrayList却是原来的一半就 HashMap与 HashTable主要从三方面来说。一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是 Java 1.2引进的Map接口的一个实现二.同步性:Hashtable是线程安全的,也就是说是同步的,而 HashMap是线程序不安全的,不是同

13、步的三.值:只 有 HashMap可以让你将空值作为一个表的条目的key或 value57、char型变量中能不能存贮一个中文汉字?为什么?答:是能够定义成为一个中文的,因为java中 以 unicode编码,一 个 char占 16个字节,所以放一个中文是没问题的58、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口同步的实现方面有两种,分别是synchronized,wait与 notify59、垃圾回收机制,如何优化程序?希望大家补上,谢谢60、float 型 float f=3.4 是否正确?答:

14、不正确。精度不准确,应该用强制类型转换,如下所示:floatf=(float)3.461、介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)?答:Collection FrameWork 如下:Collection卜 List|卜 LinkedList|-ArrayList|LVector|LStackLSetMap|-H ashtable卜 HashMapLWeakHashMapCollection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection的 元 素(Elements)Map提 供 key到 value

15、的映射62、Java中异常处理机制,事件机制?63、抽象类与接口?答:抽象类与接口都用于抽象,但是抽象类(JAVA中)可以有自己的部分实现,而接口则完全是一个标识(同时有多重继承的功能)。编程题:1.现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset答 案(1)public static String splitStringByComma(String source)if(source=null|source.trim().equals()return null;StringTokenizer commaToker=new St

16、ringTokenizer(source,);String result=new StringcommaToker.countTokens();int i=0;while(commaToker.hasMoreTokens()resulti=commaToker.nextToken();i+;)return result;)循环遍历String数组lnteger.parselnt(String s)变成 int 类型组 成 in t数组Arrays.sort(int a),a 数组升序降序可以从尾部开始输出2.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(1011)-(一千零一拾一元整)输

17、出。3、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?答:父类:package test;public class FatherClasspublic FatherClass()(System.out.println(FatherClass Create);)子类:package test;import test.FatherClass;public class ChildClass extends FatherClasspublic ChildClassO(System.out.printlnfChildClass Create);public static void mai

18、n(String args)FatherClass fc=new FatherClass();ChildClass cc=new ChildClass();)输出结果:C:java test.ChildClassFatherClass CreateFatherClass CreateChildClass Create4、内部类的实现方式?答:示例代码如下:package test;public class OuterClassprivate class InterClasspublic lnterClass()System.out.println(lnterClass Create);)pub

19、lic OuterClass()(InterClass ic=new lnterClass();System.out.println(OuterClass Create);)public static void main(String args)(OuterClass oc=new OuterClass();输出结果:C:java test/OuterClassInterClass CreateOuterClass Create再一个例题:public class OuterClass private double d1=1.0;/insert code here)You need to in

20、sert an inner class declaration at line 3.Which two inner classdeclarations arevalid?(Choose two.)A.class lnnerOnepublic static double methoda()return d1;)B.public class lnnerOnestatic double methoda()return d1;C.private class lnnerOnedouble methoda()return d1;)D.static class lnnerOneprotected doubl

21、e methoda()return d1;)E.abstract class lnnerOnepublic abstract double methoda();)说明如下:一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。故 A、B错二.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;return d 1 出错。故 D 错三.非静态内部类的非静态成员可以访问外部类的非静态变量。故 C 正确四.答案为C、E5、Ja va 的通信编程,编程题(或问答),用 JAVA SOCKET编程,读服务器几个字符,再写入本地显示?答:Server端程序:package

22、 test;.*;import java.io.*;public class Server(private ServerSocket ss;private Socket socket;private BufferedReader in;private PrintWriter out;public Server()(tryss=new ServerSocket(10000);while(true)socket=ss.accept();String RemotelP=socket.getlnetAddress().getHostAddress();String RemotePort=:+socke

23、t.getLocalPort();System.out.println(A client come in!IP:+RemotelP+RemotePort);in=new BufferedReader(newlnputStreamReader(socket.getlnputStream();String line=in.readLine();System.out.println(Cleint send is+line);out=new PrintWriter(socket.getOutputStream(),true);out.println(Your Message Received!);ou

24、t.close();in.close();socket.close();catch(lOException e)out.println(wrong);)public static void main(String args)(new ServerQ;);Client端程序:package test;import java.io.*;.*;public class ClientSocket socket;BufferedReader in;PrintWriter out;public Client()(try(System.out.println(Try to Connect to 127.0.

25、0.1:10000);socket=new Socket(127.0.0.1,10000);System.out.printlnfThe Server Connected!);System.out.println(Please enter some Character:);BufferedReader line=new BufferedReader(newInputStreamReader(System.in);out=new PrintWriter(socket.getOutputStream(),true);out.println(line.readLine();in=new Buffer

26、edReader(new lnputStreamReader(socket.getlnputStream();System.out.println(in.readLine();out.close();in.close();socket.close();catch(IOException e)(out.println(Wrong);)public static void main(String args)(new Client(););6、用 JAVA实现一种排序,JAVA类实现序列化的方法(二种)?如在COLLECTION框架中,实现比较要实现什么样的接口?答:用插入法进行排序代码如下pack

27、age test;import java.util.*;class InsertSort(ArrayList al;public lnsertSort(int numjnt mod)al=new ArrayList(num);Random rand=new Random();System.out.printlnfThe ArrayList Sort Before:);for(int i=0;inum;i+)al.add(new lnteger(Math.abs(rand.nextlnt()%mod+1);System.out.println(al+i+=+al.get(i);public vo

28、id Sortlt()Integer templnt;int MaxSize=1;for(int i=1;i=(lnteger)al.get(MaxSize-1).intValue()(al.add(MaxSize,templnt);MaxSize+;System.out.println(al.toString();else for(int j=O;j=templnt.intValue()al.add(j,templnt);MaxSize+;System.out.println(al.toString();break;)System.out.println(The ArrayList Sort

29、 After:);for(int i=O;ial.size();i+)System.out.println(al+i+=+al.get(i);)public static void main(String args)InsertSort is=new lnsertSort(10,100);is.Sortlt();)JAVA类实现序例化的方法是实现java.io.Serializable接口Collection框架中实现比较要实现Comparable接 U 和 Comparator接 I7、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半

30、个,如“我 A B C-4,应该截为“我AB,缺“我 ABC汉 DEF”,6,应该输出为“我 ABC”而不是“我 ABC+汉的半个”。答:代码如下:package test;class Splitstring(String SplitStr;int SplitByte;public SplitString(String str,int bytes)SplitStr=str;SplitByte=bytes;System.out.println(The String isT+SplitStr+r;SplitBytes=+SplitByte);)public void Splitlt()(int l

31、oopCount;loopCount=(SplitStr.length()%SplitByte=0)?(SplitStr,length()/SplitByte):(SplitStr.length()/SplitByte+1);System.out.printlnfWill Split into+loopCount);for(int i=1;i=loopCount;i+)(if(i=loopCount)System.out.println(SplitStr.substring(i-1)*SplitByte,SplitStr.length();else System.out.println(Spl

32、itStr.substring(i-1)*SplitByte,(i*SplitByte);)public static void main(String args)(Splitstring ss=new SplitString(test 中 dd 文 dsaf 中男大 3443n 中国 43 中国人0ewldfls=103,4);ss.Splitlt();)8、JAVA多线程编程。用 JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减-,输出。9、STRING 与 STRINGBUFFER 的区别。答:STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你

33、对字符串中的内容经常进行操作,特别是内容要修改时,那 么 使 用StringBuffer,如果最后需要S tring,那么使用StringBuffer的 toString。方法Jsp 方面1、jsp 有哪些内置对象?作用分别是什么?答:JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):request用户端请求,此请求会包含来自GET/POST请求的参数response网页传回用户端的回应pageContext网页的属性是在这里管理session与请求有关的会话期application servlet正在执行的内容o u t用来传送回应的输出config servlet的构架部件

34、page JSP网页本身exception针对错误网页,未捕捉的例外2、jsp有哪些动作?作用分别是什么?答:JSP共有以下6种基本动作jsp:include:在页面被请求的时候引入一个文件。jsp:useBean:寻找或者实例化一个JavaBean。jsp:setProperty:设置 JavaBean 的属性。jsp:getProperty:输出某个 JavaBean 的属性。jspforward:把请求转到一个新的页面。jsp:plugin:根据浏览器类型为Java插件生成OBJECT或 EMBED标记3、JSP中动态INCLUDE与静态INCLUDE的区别?答:动态INCLUDE用js

35、p:include动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数静态INCLUDE用 include伪码实现,定不会检查所含文件的变化,适用于包含静态页面4、两种跳转方式分别是什么?有什么区别?答:有两种,分别为:前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还会回来,相当于函数调用。并且可以带参数.后者完全转向新页面,不会再回来。相当于got。语句。Servlet 方面1、说一说Servlet的生命周期?答:servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.s

36、ervlet.Servlet接口的init.service和 destroy方法表达。2、Servlet版本间(忘了问的是哪两个版本了)的不同?希望大家补上,谢谢3、JAVA SERVLET API 中 forward。与 redirect。的区别?答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽 量 使 用 forward。方法,并且,这样也有助于隐臧实际的链接。在有些情况下,比如,需要跳转到一个其它服务

37、器上的资源,则必须使用sendRedirect()方法。4、Servlet的基本架构public class ServletName extends HttpServlet public void doPost(HttpServletRequest request,HttpServletResponseresponse)throwsServletException,lOException public void doGet(HttpServletRequest request,HttpServletResponse response)throwsServletException,lOExcep

38、tion Jdbc、Jdo 方面1、可能会让你写一段Jdbc连Oracle的程序,并实现数据查询.(据说百分百会问)答:程序如下:package hello.ant;import java.sql.*;public class jdbc(String dbUrl=jdbc:oracle:thin:127.0.0.1:1521:orcl;String thellser=admin;String thePw=manager;Connection c=null;Statement conn;ResultSet rs=null;public jdbc()try(Class.forName(oracle

39、.jdbc.driver.OracleDriver).newlnstance();c=DriverManager.getConnection(dbUrl,theUser,thePw);conn=c.createStatement();catch(Exception e)e.printStackTrace();)public boolean executellpdate(String sql)(try(conn.executed pdate(sql);return true;)catch(SQLException e)e.printStackTrace();return false;public

40、 ResultSet executeQuery(String sql)(rs=null;try(rs=conn.executeQuery(sql);)catch(SQLException e)e.printStackTrace();)return rs;public void close()tryconn.close();c.close();)catch(Exception e)(e.printStackTrace();)public static void main(String args)(ResultSet rs;jdbc conn=new jdbc();rs=conn.executeQ

41、uery(select*from test);try(while(rs.next()System.out.println(rs.getString(id);System.out.println(rs.getString(name);)catch(Exception e)e.printStackTrace();)2、Class.forName的作用?为什么要用?答:调用该访问返回一个以字符串指定类名的类的对象。3、Jd。是什么?答:JDO 是 Java对象持久化的新的规范,为 java data object的简称,也是一个用于存取某种数据仓库中的对象的标准化APL JD O 提供了透明的对象存

42、储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC A P I的使用)。这些繁琐的例行工作已经转移到JDO 产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,J D O 很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、X M L以及对象数据库(ODBMS)等等,使得应用可移植性更强。4、在ORACLE大数据量下的分页解决方法。一般用截取ID方法,还有是三层嵌套方法。答:一种分页方法=intPageCount)nextPage=intPageCount;up

43、Page=currentPage-1;if(upPage=1)upPage=1;rs.close();sql=select*from tables;rs=DBLink.executeQuery(sql);i=0;while(i输出内容输出翻页连接合计:v%=currentPage%/va href=List.jsp?page=1M一 页 v/aahref=List.jsp?page=上一页%for(int j=1;ja href=list.jsp?page=a href=List.jsp?page=下 一 页 ahref=List.jsp?page=最后页Xml方面1、xm l有哪些解析技术?

44、区别是什么?答:有 DOM,SAX,STAX 等DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DO M 的树结构所造成的,这种结构占用的内存较多,而 且 DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XM L文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XM L的顺序访问STAX Streaming API for XML(StAX)2、你在项目中用到了 xm l技术的哪些方面?如

45、何实现的?答:用到了数据存贮,信息配置两方面。在做数据交换平台时,将不能数据源的数据组装成X M L文件,然 后 将 X M L文件压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再同XM L文件中还原相关信息进行处理。在做软件配置时,利 用 XM L可以很方便的进行,软件的各种配置参数都存贮在X M L文件中。3、用 jdom 解 析 xm l文件时如何解决中文问题?如何解析?答:看如下代码,用编码方式加以解决package test;import java.io.*;public class DOMTestprivate String inFile=c:people.xml;priv

46、ate String out File=c:people.xml;public static void main(String args)new DOMTest();public DOMTest()javax.xml.parsers.DocumentBuilder builder=javax.xml.parsers.DocumentBuilderFactory.newlnstance().newDocumentBuilder();org.w3c.dom.Document doc=builder.newDocument();org.w3c.dom.Element root=doc.createE

47、lement(老师);org.w3c.dom.Element wang=doc.createElement(王”);org.w3c.dom.Element liu=doc.createElement(刘”);wang.appendChild(doc.createTextNode(我是王老师);root.appendChild(wang);doc.appendChild(root);javax.xml.transform.Transformer transformer=javax.xml.transform.TransformerFactory.newlnstance().newTransfor

48、mer();transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING,gb2312);transformer.setOutputProperty(javax.xml.transform.OutputKeys.lNDENT,yes);transformer.transform(new javax.xml.transform.dom.DOMSource(doc),newjavax.xml.transform.stream.StreamResult(outFile);)catch(Exception e)System.

49、out.println(e.getMessage();4、编程用JAVA解析XML的方式.答:用SAX方式解析XML,XML文件如下:vname 王小明 v/name college 信息学院/college6258113vnotes男,1955年生,博士,95年调入海南大学事件回调类SAXHandler.javaimport java.io.*;import java.util.Hashtable;import org.xml.sax.*;public class SAXHandler extends HandlerBaseprivate Hashtable table=new Hashta

50、ble();private String currentElement=null;private String currentvalue=null;public void setTable(Hashtable table)this.table=table;public Hashtable getTable()return table;)public void startElement(String tag,AttributeList attrs)throws SAXExceptioncurrentElement=tag;)public void characters(char ch,int s

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁