write()
,将字符或者字节写入输出流中。
IOUtils.write(“沉默王二”, response.getOutputStream(), “UTF-8”);
toInputStream()
,将指定的字符转成输入流。
String content=req.getParameter(“content”);
InputStream inputStream=IOUtils.toInputStream(content,“utf-8”);
readLines()
,从输入流中一行一行地读取,并按照指定的字符编码返回字符串列表。
List lines = IOUtils.readLines(new InputStreamReader(new FileInputStream(file), “utf-8”));
copyLarge()
,从输入流中复制内容到输出流,超过 2GB。
private File downloadFile(HttpResponse response) {
File dir = new File(“downloadedFiles”);
if (!dir.exists()) {
dir.mkdir();
}
File outputFile = new File(“downloadedFiles/temp” + RandomStringUtils.randomAlphanumeric(3));
try {
IOUtils.copyLarge(response.getEntity().getContent(), new FileOutputStream(outputFile));
return outputFile;
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
request.releaseConnection();
}
}
readFully()
,把输入流中的内容读入到字节数组中。
byte[] intArray = new byte[Bytes.SIZEOF_INT];
IOUtils.readFully(in, intArray);
2)FileUtils
org.apache.commons.io.FileUtils
,操作文件或者目录的工具类,下面是其常用的方法。
deleteDirectory()
,删除目录。
FileUtils.deleteDirectory(file);
readFileToString()
,把文件的内容读入到字符串中。
String fileAsString = FileUtils.readFileToString(reportFile);
deleteQuietly()
,删除文件,但不抛出异常。
FileUtils.deleteQuietly(outputFile);
copyFile()
,把文件复制到一个新的位置。
FileUtils.copyFile(source, dest);
writeStringToFile()
,把字符串写入到文件。
FileUtils.writeStringToFile(templateFile, generatedText, Charset.forName(“UTF-8”));
forceMkdir()
,强制创建目录,包括任何必需但不存在的父目录。
File uploadDirectory = new File(this.uploadPath);
if (!uploadDirectory.exists()) {
FileUtils.forceMkdir(uploadDirectory);
}
write()
,把字符或者字节写入到文件。
FileUtils.write(new File(“C:\Users\cmower\test.txt”), “沉默王二”, “utf-8”);
listFiles()
,列出指定目录下的所有文件。
public void processResultsDirectory(String dirName) {
File root = new File(dirName);
try {
Collection files = FileUtils.listFiles(root,
new RegexFileFilter(jmeterJTLFileName),
DirectoryFileFilter.DIRECTORY);
for (Iterator iterator = files.iterator(); iterator.hasNext()😉 {
File file = (File) iterator.next();
parse(file);
}
} catch (Exception e) {
e.printStackTrace();
}
}
copyDirectory()
,将目录下的所有子目录及文件复制到新的目录。
FileUtils.copyDirectory(source, dest);
forceDelete()
,强制删除文件或者目录及其所有子目录和文件。
FileUtils.forceDelete(tmpFile);
3)StringUtils
org.apache.commons.lang3.StringUtils
,操作字符串的工具类,并且是 null 安全的,下面是其常用的方法。
isBlank()
,检查字符是否为空字符串"",或者 null,或者空格。
if (StringUtils.isBlank(name))
{
throw new IllegalArgumentException(“姓名不能为空”);
}
检查结果如下所示。
StringUtils.isBlank(null) = true
StringUtils.isBlank(“”) = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank(“沉默王二”) = false
StringUtils.isBlank(" 沉默王二 ") = false
-
isNotBlank()
,与isBlank()
检查的结果相反。 -
isEmpty()
,检查字符是否为空字符串"",或者 null;和isBlank()
不同,不包括空格的检查。
if (StringUtils.isEmpty(name)) {
throw new IllegalArgumentException(“姓名不能为 null 或者空字符串”);
}
检查结果如下所示。
StringUtils.isEmpty(null) = true
StringUtils.isEmpty(“”) = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty(“沉默王二”) = false
StringUtils.isEmpty(" 沉默王二 ") = false
-
isNotEmpty()
,与isEmpty()
检查的结果相反。 -
join()
,将多个元素连接成一个字符串。
StringUtils.join(null) = null
StringUtils.join([]) = “”
StringUtils.join([null]) = “”
StringUtils.join([“沉默”, “王二”]) = “沉默王二”
StringUtils.join([null, “”, “一枚有趣的程序员”]) = “一枚有趣的程序员”
equals()
,比较两个字符序列是否相等。
StringUtils.equals(null, null) = true
StringUtils.equals(null, “沉默王二”) = false
StringUtils.equals(“沉默王二”, null) = false
StringUtils.equals(“沉默王二”, “沉默王二”) = true
StringUtils.equals(“cmower”, “CMOWER”) = false
split()
,把字符串拆分为数组,拆分符为空白字符。
StringUtils.split(null) = null
StringUtils.split(“”) = []
StringUtils.split(“沉默王二 沉默王三”) = [“沉默王二”, “沉默王三”]
StringUtils.split(“沉默王二 沉默王三”) = [“沉默王二”, “沉默王三”]
StringUtils.split(" 沉默王二 ") = [“沉默王二”]
replace()
,替换另一个字符串中所有出现的字符串。
StringUtils.replace(null, *, *) = null
StringUtils.replace(“”, *, *) = “”
StringUtils.replace(“any”, null, *) = “any”
StringUtils.replace(“any”, *, null) = “any”
StringUtils.replace(“any”, “”, *) = “any”
StringUtils.replace(“沉默王二”, “二”, null) = “沉默王二”
StringUtils.replace(“沉默王二”, “二”, “”) = “沉默王”
StringUtils.replace(“沉默王二”, “二”, “三”) = “沉默王三”
4)FilenameUtils
org.apache.commons.io.FilenameUtils
,操作文件名或者路径的工具类,下面是其常用的方法。
getExtension()
,获取文件的扩展名。
FilenameUtils.getExtension(“牛逼.txt”); --> “txt”
FilenameUtils.getExtension(“a/b/牛逼.jpg”); --> “jpg”
FilenameUtils.getExtension(“a/牛逼.txt/c”); --> “”
FilenameUtils.getExtension(“a/b/c”); --> “”
getBaseName()
,获取单纯的文件名或者路径名,文件时去掉路径和扩展名;路径时去掉父级路径。
FilenameUtils.getBaseName(“a/b/牛逼.txt”); --> “牛逼”
FilenameUtils.getBaseName(“牛逼.txt”); --> “牛逼”
FilenameUtils.getBaseName(“a/b/c”); --> c
FilenameUtils.getBaseName(“a/b/c/”); --> “”
getName()
,如果是文件时,获取文件名和后缀,去掉路径;如果是路径时,去掉父级路径。
FilenameUtils.getName(“a/b/牛逼.txt”); --> “牛逼.txt”
FilenameUtils.getName(“牛逼.txt”); --> “牛逼.txt”
FilenameUtils.getName(“a/b/c”); --> c
FilenameUtils.getName(“a/b/c/”); --> “”
concat()
,将路径和文件名连接在一起。
FilenameUtils.concat(“/foo/”, “bar”); --> /foo/bar
FilenameUtils.concat(“/foo”, “bar”); --> /foo/bar
FilenameUtils.concat(“/foo”, “/bar”); --> /bar
FilenameUtils.concat(“/foo”, “C:/bar”); --> C:/bar
FilenameUtils.concat(“/foo”, “C:bar”); --> C:bar (*)
FilenameUtils.concat(“/foo/a/”, “…/bar”); --> foo/bar
FilenameUtils.concat(“/foo/”, " …/…/bar"); --> null
FilenameUtils.concat(“/foo/”, “/bar”); --> /bar
FilenameUtils.concat("/foo/… ", “/bar”); --> /bar
FilenameUtils.concat(“/foo”, " bar/c.txt"); --> /foo/bar/c.txt
FilenameUtils.concat(“/foo/c.txt”, “bar”); --> /foo/c.txt/bar (!)
wildcardMatch()
,检查文件名是否匹配指定的格式。
wildcardMatch(“c.txt”, “*.txt”) --> true
wildcardMatch(“c.txt”, “*.jpg”) --> false
wildcardMatch(“a/b/c.txt”, “a/b/*”) --> true
wildcardMatch(“c.txt”, “*.???”) --> true
wildcardMatch(“c.txt”, “*.???”) --> false
separatorsToUnix()
,将所有分隔符转换为正斜杠的 Unix 分隔符。
FilenameUtils.separatorsToUnix(“my/unix/filename”);
getFullPath()
,获取文件的完整路径。
getFullPath(“C:\a\b\c.txt” --> C:\a\b\
getFullPath(“~/a/b/c.txt” --> ~/a/b/
getFullPath(“a.txt” --> “”
5)ArrayUtils
org.apache.commons.lang3.ArrayUtils
,操作数组的工具类,下面是其常用的方法。
contains()
,检查数组中是否包含某个值
public static boolean containsAll(Object[] one, Object[] two) {
for (Object b : two) {
if (!ArrayUtils.contains(one, b)) {
return false;
}
}
return true;
}
addAll()
,将所有元素添加到一个数组中。
ArrayUtils.addAll(null, null) = null
ArrayUtils.addAll(array1, null) = cloned copy of array1
ArrayUtils.addAll(null, array2) = cloned copy of array2
ArrayUtils.addAll([], []) = []
ArrayUtils.addAll([null], [null]) = [null, null]
ArrayUtils.addAll([“a”, “b”, “c”], [“1”, “2”, “3”]) = [“a”, “b”, “c”, “1”, “2”, “3”]
clone()
,浅拷贝一个数组。
public QualityGateTask[] getQueue() {
return (QualityGateTask[]) ArrayUtils.clone(queue);
}
isEmpty()
,检查数组是否为 null 或者没有元素。
if (ArrayUtils.isEmpty(objectIds)) {
throw new IllegalArgumentException(“对象的ID不能为空”);
}
add()
,在数组中添加一个新的元素,原数组不变。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
总结
我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。
面试题多多少少对于你接下来所要做的事肯定有点帮助,但我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!
套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
[外链图片转存中…(img-GClpmtLU-1712003978505)]
[外链图片转存中…(img-aNEwWcZy-1712003978506)]
[外链图片转存中…(img-9c2MJr3r-1712003978506)]
[外链图片转存中…(img-fAYFdCKO-1712003978507)]
[外链图片转存中…(img-lMKtPl9a-1712003978508)]
[外链图片转存中…(img-VkGvc3yP-1712003978508)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-XflxUbJA-1712003978509)]
总结
我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。
面试题多多少少对于你接下来所要做的事肯定有点帮助,但我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!
[外链图片转存中…(img-Smyz0DAq-1712003978509)]