![去哪网面试题整理_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/24/a9b68bf0-790f-4a17-8b43-05ddbb8ef7fd/a9b68bf0-790f-4a17-8b43-05ddbb8ef7fd1.gif)
![去哪网面试题整理_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/24/a9b68bf0-790f-4a17-8b43-05ddbb8ef7fd/a9b68bf0-790f-4a17-8b43-05ddbb8ef7fd2.gif)
![去哪网面试题整理_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/24/a9b68bf0-790f-4a17-8b43-05ddbb8ef7fd/a9b68bf0-790f-4a17-8b43-05ddbb8ef7fd3.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、纤纤2014/3/416:15:00请实现以下功能,给定一个List,删除这个List中以a”开头的字符publicvoiddeleteListWithA(Listlist)for(inti=0;ilist.size();i+)Stringcode=list.get(i);if(code.startsWith(a)list.remove(i);/这一个部分是关键,考的就是你又没有考虑到此时把i移除之后的,list的大小会发生变化,/原来在i+1位置数据编程了I位置的数据i-;ok1. 请只使用FilelnputStream和FileOutputStream的情况下实现copy(Filesrc,
2、Filedest)功能,然后使用BufferedInputStream和BufferedOutputStream实现上面功能,解释下时间效率上的差异mportjava.io.*;publicclassTestIOstreampublicstaticvoidmain(Stringargs)throwsIOExceptionFilefile=newFile(args0);/*取得命令行的文件名*/Filefile1=newFile(args1);/*取得命令行的文件名*/FileInputStreamfileInputStream=newFileInputStream(file);/*建立文件输入
3、流*/FileOutputStreamfileOutputStream=newFileOutputStream(file1);bytestrr=newbyte1024;准备开始复制文件);while(true)if(filelnputStream.available()1024)/*取得剩余文件数看是否小于1024*/intran=-1;while(ran=filelnputStream.read()!=-1)/*次读取一个字节*/fileOutputStream.write(ran);/*直接写入文件*/break;elsefileInputStream.read(strr);/*读取102
4、4个字节放入到strr数组中*/fileOutputStream.write(strr);/*将1024个字节直接写入文件中*/fileInputStream.close();/*关闭流*/fileOutputStream.close();文件复制成功!”);/上面是使用fileinputstreampublicclassCopypublicstaticvoidmain(Stringargs)throwsIOExceptionif(args.length!=2)System.out.println(Usage:javacopysourceFiletargetFileSystem.exit(0)
5、;FilesourceFile=newFile(args0);if(!sourceFile.exists()System.out.println(Sourcefile+args0+notexist);System.exit(0);FiletargetFile=newFile(args1);if(targetFile.exists()System.out.println(TargetFile+args1+alreadyexists);System.exit(0);BufferedlnputStreaminput=newBufferedlnputStream(newFilelnputStream(
6、sourceFile);BufferedOutputStreamoutput=newBufferedOutputStream(newFileOutputStream(targetFile);intr;intnumberOfBytesCopied=0;while(r=input.read()!=-1)output.write(byte)r);numberOfBytesCopied+;input.close();output.close();System.out.println(numberOfBytesCopied+bytescopied);BufferedinputStream的效率要高一些,
7、因为bufferedinputStream是非阻塞的,利用缓冲区,每次都会多读取一些数据,减少访问IO的次数,所以,这就是字节流和字节缓冲流的区别对文件的操作如果定义了一个类MyString,形式如下publicclassMyStringprivateStringstring;publicMyString(Stringstring)this.string=string;publicStringgetString()returnthis.string;,请问这个类是否可以用于作为HashMap的key,为什么?这个应该是可以的一,因为hashMap的key是Object类型的,但是这个时候我们必
8、须重写下该MyString的hashCode和equals方法”因为hashMap的key是唯一的,所以我们每次使用的使用的时候都会去比较新放入的key值在hashMap当中存在与否,所以就需要重新写一个equals的方法,在Object类当中euqals方法和=是一样的(如果没有重写的话)当然了,放入值得时候是先看hashCode值是否相同,在hashcode相同的时候再去比较equals的方法str)这个方法是如何实现的,如果某个场景下大量使用这个split方法是否有更高效的替代方案?Split的是实现是调用了matcher类的split的方法,”在正则表达式当中有特殊的意义然后我们再在“
9、”的里面查找到str的,然后作为分隔符。Split效率比subString和StringTokenizer要差,StringTokenizer最适合大量数据的情况选择使用StringTokenizer如果有一个boolean(或者long)变量,只有一个线程写入值,另外一个线程读取值,请问这种场景是否是线程安全的,为什么?B正在不安全,因为有可能发生这种情况,一个线程A读数据的同时,另一个线程修改数据,这样就会出现数据库中读取脏数据。5. 写个例子证明SimpleDateFormat不是线程安全的让多个线程来操作一个同时来操作一个数据面对SimpleDateFormat的解决方法时使用Thre
10、adLocal,并且如何获得平台相关的行分隔符、路径分隔符?import;publicclassSeparatorUtils/getpathseparatoroncurrentplatform* returnpathseparator*/publicstaticStringgetPathSeparator()returnPROPERTIES.getProperty(path.separator);systempropertiestogetseparators*/staticfinalPropertiesPROPERTIES=newProperties(System.getProperties(
11、);* getlineseparatoroncurrentplatformreturnlineseparator*/publicstaticStringgetLineSeparator()returnPROPERTIES.getProperty(line.separator);classSeparatorUtilTestpublicstaticvoidmain(Stringargs)Lineseparatoris:+SeparatorUtils.getLineSeparator();Pathseparatoris:+SeparatorUtils.getPathSeparator();平台是指操
12、作系统平台,在各个不同平台下面下行分隔符和路径分隔符是不一样的8假如有两个List,一个是ArrayList,一个是LinkedList,都有100万个元素,请问操作10万次尾部删除操作,哪个效率更高,删除最中间的元素,谁的效率高,写程序实验下,说明为什么?-如果删除尾部的话,arrayList更高,arrayList的特点是如果删除元素的位置越靠后,那么消耗的时间越少,而linkedList每次删除都要修改下前驱节点和后继节点但是,如果删除中间的话,arrayList就麻烦了,他得移动之后的50万条数据的。而linkedList只是需要修改一下前驱和后继而已。9. TreeMap的key是排
13、序的,有时可以用来来排序,那么它和Collections.sort有什么区别,TreeMap默认是按照key值得大小来升序排序的10. 新建一个maven项目,在resource目录下新增文件a.txt,假设a.txt文件的内容是按行分割,行内按逗号分割,第一个字段是key,字符串类型,第二字段是value,数字类型的写一个类Example,在它的main函数中实现以下功能读取文件,将所有key相同的value相加按照value从大到小,打印所有key和value,格式是key:value可以随意使用各种库,但不处理各种格式异常请评估上面工作所需时间实际写完上述程序,看看用了多少时间分别使用s
14、ynchronized,signal/notifyAII以及BlockingQueue来实现生产者、消费者模型,说明下这三种实现的差别,总结下三种技术的应用场景11. 查看下AtomicInteger/AtomicLong/AtomicReferenee的源码,说明下这些类的设计思路是什么,这种思路的优势在哪里,可以用于什么场景下,可以推广到哪些场景?院子类,实现了线程安全什么是markerinterface,在JDK代码中有哪些是markerinterface,作用是什么,为什么这么设计?找不到什么是不可变对象,JDK中有哪些不可变对象的实现,如果自己实现一个不可变对象,需要注意哪些?12.
15、 什么是序列化和反序列化,自定义一个类,其中属性包含一个非不可变类的引用,一个静态变量,然后试试序列化和反序列化如何实现?试试使用json数据格式来实现(使用jackson来做)。13. 什么是观察者模式,在JDK中有哪些具体的应用,除了这些场景外,你能想到有哪些场景下适用?14. 什么是代理模式,JDK中的代理是如何实现,有哪些应用场景,除了JDK代理之外,还有哪些代理实现方式,原理是什么,如何区分在哪些场景下使用哪种实现?15. 有哪些常见的单向加密、双向加密算法,原理是什么,性能如何,哪些场景会使用到?16. 什么是重构,有哪些常见的重构的方式,快捷键都是什么,重构下之前的代码举例说明什
16、么是jvm,作用是什么,它是如何管理内存的,常见的gc策略有哪些?17. JDK/bin/目录下有很多可执行文件,列一个表格,说明下每个可执行文件的作用,以及你能想象到应用场景,举一个具体的例子javac:Java编译器,将Java源代码换成字节代java:Java解释器,直接从类文件执行Java应用程序代码即pletviewer(小程序浏览器):一种执行HTML文件上的Java小程序类的Java浏览器javadoc:根据Java源代码及其说明语句生成的HTML文档jdb:Java调试器,可以逐行地执行程序、设置断点和检查变量javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义jar:多用途的存档及
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院保洁服务合同范本
- 房屋租借定金收条的范本
- 运输公司产权转让合同范本
- 贸易公司合作协议书范本
- 项目策划服务协议书范本
- 电商直播模式下的仓储配送研究与实践
- 南京市2024~2025学年度第一学期期末学情调研生物试卷
- 江西省上饶市2023-2024学年高一上学期期末教学质量测试生物试题(解析版)
- 江苏省百校大联考2024-2025学年高一上学期12月阶段测试生物试卷(解析版)
- 吉林省普通高中G6教考联盟2023-2024学年高一1月期末考试生物试题(解析版)
- 储能设备项目采购供应质量管理方案
- 邯郸市垃圾填埋场封场方案
- 2020闽教版信息技术四年级(下册)全册教案
- 美国房地产市场特征、框架与周期演变
- introduction to pipeline pilot在处理数据中的一些应用
- 光伏发电工程施工组织设计施工工程光伏发电工程光伏发电施工组织设计
- 民政局离婚协议书模板(4篇)
- 导数应用举例
- 第三讲文献的形成与流布1
- 《电力勘测设计管理制度》修编大纲
- ISO14001风险和机遇评估分析报告
评论
0/150
提交评论