还剩6页未读,继续阅读
文本内容:
达内科技有限公司3G教学研发部
8.以下关于设计模式正确的是ABA单例模式在程序中只允许存在一个实例B在java中,i/o流使用了装饰器模式C在Android中常见的适配器类有BaseAdapter,SimpleAdapterD单例模式一般会设置构造方法是私有的.应用FileInputStream类,编写应用程序,从磁盘上读取一个Java程序,并将源程序代码显示在屏幕上(被读取的文件路径为E:/myjava/Hello.java)//ProgrammeNameFISDemo.javaimportjava.io.*;publicclassFISDemo{publicstaticvoidmainStringargs[]{byte[]buf=newbyte
[2056];try{FileInputStreamfileIn=newFileInputStreame:/myjava/Hello.java;intbytes=fileIn.readbuf02056;Stringstr=newStringbuf0bytes;System.out.printlnstr;}catchExceptione{e.printStackTrace;}}
7、编写一个Java程序将当100101102103104105个数以数组的形式写入到Dest.txt文件中,并以相反的顺序读出显示在屏幕上(p190例7-2)//programmenameIODemo.javaimportjava.io.*;publicclassIODemo{publicstaticvoidmainStringargs[]{intdata[]={100101102103104105};intt;try{DataOutputStreamout=newDataOutputStreamnewFileOutputStream“dest.txt”;forinti=0;idata.length;i++out.WriteIntdata[i];out.close;DataInputStreamin=newDataInputStreamnewFileInputStream“dest.txt”;forinti=data.length-1;i=0;i--{t=in.readIntdata[i];System.out.print“”+t;}System.out.println;in.close;}catchIOExceptione{System.out.printlne.getMessage;}}}【程序50】 题目有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,把原有的数据和计算出的平均分数存放在磁盘文件stud中importjava.io.*;importjava.util.*;publicclasslianxi50{publicstaticvoidmainString[]args{ Scannerss=newScannerSystem.in; String[][]a=newString
[5]
[6]; forinti=1;i6;i++{ System.out.print请输入第+i+个学生的学号; a[i-1]
[0]=ss.nextLine; System.out.print请输入第+i+个学生的姓名; a[i-1]
[1]=ss.nextLine; forintj=1;j4;j++{ System.out.print请输入该学生的第+j+个成绩; a[i-1][j+1]=ss.nextLine; }System.out.println\n; }//以下计算平均分floatavg;intsum;forinti=0;i5;i++{sum=0; forintj=2;j5;j++{ sum=sum+Integer.parseInta[i][j]; } avg=floatsum/3; a[i]
[5]=String.valueOfavg;}//以下写磁盘文件Strings1;try{ Filef=newFileC:\\stud; iff.exists{ System.out.println文件存在; }else{ System.out.println文件不存在,正在创建文件; f.createNewFile;//不存在则创建 }BufferedWriteroutput=newBufferedWriternewFileWriterf;forinti=0;i5;i++{forintj=0;j6;j++{ s1=a[i][j]+\r\n; output.writes1; }}output.close;System.out.println数据已写入c盘文件stud中!; }catchExceptione{ e.printStackTrace; }}}简述你对java反射机制的理解JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性
28、char型变量中能不能存贮一个中文汉字为什么能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的
31、java中会存在内存泄漏吗,请简单描述会;存在无用但可达的对象,这些对象不能被GC回收,导致耗费内存资源
33、静态变量和实例变量的区别?静态变量也称为类变量,归全类共有,它不依赖于某个对象,可通过类名直接访问;而实例变量必须依存于某一实例,只能通过对象才能访问到它
32、abstract的method是否可同时是static是否可同时是native,是否可同时是synchronized都不能
34、是否可以从一个static方法内部发出对非static方法的调用?不可以如果其中包含对象的method,不能保证对象初始化
35、写clone方法时,通常都有一行代码,是什么?Clone有缺省行为super.clone,他负责产生正确大小的空间,并逐位复制
36、GC是什么为什么要有GCGC是垃圾收集的意思(GabageCollection)内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法Java程序员不用担心内存管理,因为垃圾收集器会自动进行管理要请求垃圾收集,可以调用下面的方法之一System.gc或Runtime.getRuntime.gc
37、垃圾回收的优点和原理并考虑2种回收机制Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收
38、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况通常,GC采用有向图的方式记录和管理堆heap中的所有对象通过这种方式确定哪些对象是可达的,哪些对象是不可达的当GC确定一些对象为不可达时,GC就有责任回收这些内存空间可以程序员可以手动执行System.gc,通知GC运行,但是Java语言规范并不保证GC一定会执行Strings=newString“xyz”;创建了几个StringObject两个对象,一个是xyx一个是指向xyx的引用对象s
40、接口是否可继承接口抽象类是否可实现implements接口抽象类是否可继承实体类concreteclass接口可以继承接口抽象类可以实现implements接口,抽象类可继承实体类,但前提是实体类必须有明确的构造函数
1、编码转换怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串?示例代码如下:Strings1=你好;Strings2=newStrings
1.getBytesGB2312ISO-8859-1;
61、多线程有几种实现方法都是什么同步有几种实现方法都是什么多线程有两种实现方法,分别是继承Thread类与实现Runnable接口,同步的实现方面有两种,分别是synchronizedwait与notify
62、启动一个线程是用run还是start启动一个线程是调用start方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行这并不意味着线程就会立即运行run方法可以产生必须退出的标志来停止一个线程
63、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法不能,一个对象的一个synchronized方法只能由一个线程访问
64、线程的基本概念、线程的基本状态以及状态之间的关系线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身Java中的线程有四种状态分别是运行、就绪、挂起、结束
65、sleep 和 wait 有什么区别 sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复调用sleep不会释放对象锁wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态
97、文件和目录(I/O)操作如何列出某个目录下的所有文件如何列出某个目录下的所有子目录判断一个文件或目录是否存在如何读写文件
118、启动一个线程是用run还是start启动一个线程是调用start方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行这并不意味着线程就会立即运行run方法可以产生必须退出的标志来停止一个线程
119、线程的基本概念、线程的基本状态以及状态之间的关系线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身Java中的线程有四种状态分别是运行、就绪、挂起、结束
120、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法stop和suspend方法为何不推荐使用?有两种实现方法,分别是继承Thread类与实现Runnable接口用synchronized关键字修饰同步方法反对使用stop,是因为它不安全它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们结果很难检查出真正的问题所在suspend方法容易发生死锁调用suspend的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定此时,其他任何线程都不能访问锁定的资源,除非被挂起的线程恢复运行对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死锁所以不应该使用suspend,而应在自己的Thread类中置入一个标志,指出线程应该活动还是挂起若标志指出线程应该挂起,便用wait命其进入等待状态若标志指出线程应当恢复,则用一个notify重新启动线程简述IO流中的字符流与字节流之间的差别并列举出常用的字符流与字节流字符流与字节流转换的桥梁是什么5分io流中的字节流,就是传输数据的时候,一个一个字节的传输,字符流,就是以一个字符来传输InputStrem和OutputStream,,,InputStreamReaderOutputStreamWriterDataOutputStreamByteArrayInputStreamFileInputStreamPipedInputStreamStringBufferInputStreamSequenceInputStream------------------FilterInputStreamBufferedInputStreamDataInputStreamPushbackInputStreamCharArrayReaderInputStreamReaderStringReaderLineNumberReader字节流和字符流之间的桥梁或者说是转换是 InputStreamReader和OutputStreamWriter 从字节流转换成字符流实际上就是Byte[]转换为String下列属于SAX解析xml文件的优点的是文件的优点的是文件的优点的是文件的优点的是b将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能(dom解析优点)B、不用事先调入整个文档,占用资源少(sax解析优点)C、整个文档调入内存,浪费时间和空间(dom解析缺点)D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会(sax解析缺点)消失不需要像dom解析那样在内存中建立一个dom对象,占用内存,sax解析是逐行解析的,每次读入内存的只是一行xml,所以速度快,效率高点不过sax一般是处理固定格式的xml。