🍬 博主介绍
👨🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
目录
0x4 题目-3368 · 使用 Lambda 表达式实现字符串排序
0x1 前言
练习Java代码平台这里还是给师傅们推荐炼码https://www.lintcode.com/这个平台不错,有知识点学习以及代码学习。题目位置如下:https://www.lintcode.com/problem/3368/。
第一天带师傅们学习Java的主要特征以及JDK的下载,以及3368题目的解题思路(代码有很多写法,不一定是官网的答案),主要是练习我们的思路!!!
0x2 Java主要特征
Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling 和同事们共同研发,并在 1995 年正式推出。
后来 Sun 公司被 Oracle (甲骨文)公司收购,Java 也随之成为 Oracle 公司的产品。
Java 分为三个体系:
- JavaSE (J2SE) (Java2 Platform Standard Edition,Java 平台标准版)。
- JavaEE (J2EE) (Java 2 Platform,Enterprise Edition,Java 平台企业版)。
- JavaME (J2ME) (Java 2 Platform Micro Edition,Java 平台微型版)。
2005 年 6 月,JavaOne 大会召开,SUN 公司公开 Java SE 6。此时,Java 的各种版本已经更名,以取消其中的数字 "2":J2EE 更名为 Java EE,J2SE 更名为 Java SE,J2ME 更名为 Java ME。
1.1、主要特征
- Java 语言是简单的。
- Java 语言是面向对象的。
- Java 语言是分布式的。
- Java 语言是健壮的。
- Java 语言是安全的。
- Java 语言是体系结构中立的。
- Java 语言是可移植的。
- Java 语言是解释型的。
- Java 是高性能的。
- Java 语言是多线程的。
- Java 语言是动态的。
0x3 JDK 下载
1.1、JDK、JRE、JVM的区别
- JDK : Java Development ToolKit (Java 开发工具包)。 JDK 是整个 Java 的核心,包括了 Java 运行环境(Java Runtime Environment),一些 Java 工具(javac/java/jdb 等)和 Java 基础的类库(即Java API 包括
rt.jar
)。 - JRE:Java Runtime Environment (Java 运行时环境)。也就是我们说的 Java 平台,所有的 Java 程序都要在 JRE 下才能运行。包括 JVM 和 Java 核心类库和支持文件。
- JVM:Java Virtual Mechinal (Java 虚拟机)。JVM 是 JRE 的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的
下图很好的表明了JDK,JRE,JVM三者间的关系 (JDK 8):
1.2、JDK 下载
首先我们需要下载 Java 开发工具包 JDK,进入 官网 下载,找到我们需要的 JDK 版本(以 JDK 1.8
来进行演示)。
点击 JDK Download 进入下载页面,选择合适的 Windows/Linux
版本进行下载。
然后勾选 I reviewed and accept the Oracle Technology Network License Agreement for Oracle Java SE
,点击下载。最后会提示您进行登录,登录成功后就可以下载了。
下载完成后就可以开始安装了,双击下载 exe 文件。
安装完 JDK 之后会弹出一个安装 JRE 的提示,可以选择不安装。
0x4 题目-3368 · 使用 Lambda 表达式实现字符串排序
描述
在 Solution
类中有一个 sortByLength
方法,它可以接收 Main
类输入流传输的字符串数组 strArr
,通过调用该方法可以实现对字符串的排序,排序的条件是根据数组中每个字符串的长度进行从小到大排序,相同长度的字符串,根据对应的下标进行排序(即保持字符串在原数组的相对次序)。 请你使用 Lambda
表达式,尝试通过使用 Arrays
类的 sort
方法来实现排序,并在 sortByLength
方法中将结果进行输出。
import java.util.*;
public class Solution {
public void sortByLength(String[] strArr) {
// --- Write your code here ---
}
}
题目分析
1、sortByLength
方法可能是指根据字符串长度进行排序的一个方法
2、排序的条件是根据数组中每个字符串的长度进行从小到大排序:使用lambda表达式,
Arrays.sort(strArr, (a, b) -> {
}
解答
import java.util.Arrays;
public class Solution {
public void sortByLength(String[] strArr) {
//使用 Arrays.sort 方法对 strArr 进行排序,传入一个比较器
//比较器采用lambda 表达式 (str1,str2) -> str1.length() - str2.length()
//lambda 表达式的作用是比较两个字符串的长度,从小到大排序
Arrays.sort(strArr, (str1,str2) -> str1.length() - str2.length());
//使用Arrays.sort 方法将排序后的字符串数组转换成字符串,然后打印
System.out.println(Arrays.toString(strArr));
}
}