- 攻防世界-MISC-Excaliflag
unable code
CTF网络安全ctfmisc
知识点1.stegsolve切换色道步骤用stegsolve打开,切换色道,发现flag。flag:3DS{Gr4b_Only_th1s_B1ts}
- 攻防世界-MISC-Erik-Baleog-and-Olaf
unable code
CTF网络安全ctfmisc
知识点1.stegsolve切换图片查看模式2.二维码修复步骤一下载附件解压,发现没有后缀,在010打开,发现png字样,改后缀为png,打开发信啊没发现什么有用的信息。步骤二:根据图片名字stego100猜测用stegsolve,用stegsolve打开,切换图片,发现有二维码,找到最清楚的一张,截图后,用ps修复,扫码拿到flag。flag{#justdiffit}
- 攻防世界--unseping(反序列化)
珉珉珉
攻防世界web入门php开发语言
method=$method;//赋值$this->args=$args;}function__destruct(){//析构函数,当对象的引用都被删除或对象都没被引用时执行if(in_array($this->method,array("ping"))){//判断method是否为pingcall_user_func_array(array($this,$this->method),$this-
- REVERSE学习笔记(攻防世界xxxorrr)
hmbbcsm
学习笔记
攻防世界xxxorrr首先我们把文件拖入ida中,点击进入main函数其中,unsigned是无符号的意思,fgets是C语言标准库中的一个函数,用于从指定的输入流(如文件或标准输入)中读取一行字符串我们先点击进入s1,发现s1是一个字符串,我们在点击sub_916发现它是一个函数,分析代码后发现,我们需要让s1和s2相等这样就可以得到flag;而在我们尝试后发现并不能得到flag。我们猜测s1或
- 【网络安全 | CTF】攻防世界 very_easy_sql 解题详析(gopher协议+ssrf漏洞sql注入+盲注脚本)
秋说
CTF新手入门实战教程web安全sqlgopher协议CTF
姿势登录处直接注入会提示youarenotaninneruser,sowecannotletyouhaveidentify~查看源代码发现use.php,访问后猜测该题为基于ssrf漏洞的sql注入:先在登录处抓包判断注入参数:不难判断注入点为cookie因此我们可构造含有gopher协议的盲注脚本,通过对use.php界面发送请求来获取flag。具体实现的方法是通过构造不同的poc来进行注入攻击
- CTF 靶场笔记 —— 攻防世界(XCTF)· 过关思路合集
Blue17 :: Hack3rX
网络安全—靶场笔记合集笔记web安全网络安全在线靶场
攻防世界攻防世界是集实训、竞赛、办赛、社区于一体的在线网安能力提升平台,致力于为广大网络安全爱好者提供赛题资源与竞赛服务,营造专业、有趣的网络安全学习环境,助力网安人才成长成才。https://adworld.xctf.org.cn/home/index0x01:Misc0x0101:XCTF-MiscLevel01攻防世界-Misc-Level1-心仪的公司——流量分析-搜索型攻防世界-Misc
- 攻防世界-happyctf
2503_90412967
网络安全
进入主函数,可以看到一堆乱七八糟的东西,这个时候要找输入,确定密钥,再寻找出口(例如error,goodflag等等),然后我们就可以找条件语句和循环了,然后我们就可以找到while循环里面的那个函数,里面进行了异或操作接着我们就可以写脚本了flag如图
- 攻防世界Web_php_unserialize(writeup)
金昔往矣
php网络安全
题目题目:Web_php_unserialize题号:NO.GFSJ0710解题思路:浅看代码,这题需要我们以GET的方式提交一个变量var去利用php反序列化漏洞攻击,但题目设置了对序列化对象字符串的过滤以及对非index.php文件的重定向,我们需要突破这两点。对于序列化对象的过滤其会过滤大小写的o:4,可以使用o:+4来绕过,而对于__wakeup函数而言,它会在对象进行反序列化时被调用,但
- 二进制安卓清单 binary AndroidManifest - XCTF apk 逆向-2
dilvx
androidxml
XCTF的apk逆向-2题目wp,这是一道反编译对抗题。题目背景AndroidManifest.xml在开发时是文本xml,在编译时会被aapt编译打包成为binaryxml。具体的格式可以参考稀土掘金MindMac做的类图(2014),下面的博客分别是wp和字段解析。攻防世界XCTF【Mobile】APK逆向-2题解正常下载附件,解压后,拖到JADX-gui中去反编译一下,然-掘金Android
- 攻防世界web新手第四题easyphp
安全小王子
前端android
6000000&&strlen($a)2022){if(is_array(@$c["n"])&&count($c["n"])==2&&is_array($c["n"][0])){$d=array_search("DGGJ",$c["n"]);$d===false?die("no..."):NULL;foreach($c["n"]as$key=>$val){$val==="DGGJ"?die("no
- 攻防世界-web- easyphp
32进制
ctfweb攻防世界CTFphp开发语言
#攻防世界-web-easyphp依次构造a、b、c的值!";break;}$i++;}//$c=array("m",2022,array("n","DGGJ","DGGJ"));//echojson_encode($c);//$c=json_encode($c);//shic={"m":"12345a","n":[[0,1,2],0]}$c=array("m",2022,array("n","D
- 攻防世界Web赛题记录
Bit0_
经验分享web安全网络安全
Cat题目:https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=1&id=4658&page=2Writeup:攻防世界-web-Cat(XCTF4th-WHCTF-2017)_Sea_Sand息禅-CSDN博客攻防世界|CAT-laolao-博客园[CTF题目总结-web篇]攻防世界:Cat_T2hunz1-CSDN博客
- 1.攻防世界 baby_web
doubt。
前端web安全网络安全网络安全
题目描述这里有提示,初始页面进入题目页面如下很简洁的页面只有一行HELLOWORLDctrl+u查看了源码也没有信息用burpsuite抓包,并发送到重放器根据提示(初始页面)修改访问index.php文件index.phpindex.php是一种常见的网页脚本文件index.php是PHP脚本语言编写的文件,通常作为网站的默认首页或重要的入口页面。PHP是一种广泛应用于Web开发的服务器端脚本语
- 攻防世界 web新手题 weak auth详解
程序员老罗江工版
攻防世界信息安全
攻防世界webweak_auth奶妈详解本人小白,刚刚步入ctf的世界,借这个平台写点东西来提升自己水平,咳咳有啥缺陷还请大佬指正。哈哈哈,我甚至连博客编辑都没搞明白。废话不多就上题吧。当然,首先看到题目可以知道本体与弱密码相关。啊哈哈哈哈!这题估计也为了教育教育我们网络安全意识吧,毕竟弱密码在生活中还是非常常见的。为了省事设个弱密码,或者是和我们生活相关的容易被猜到的密码。比如123456,66
- 11,攻防世界weak_auth
rzydal
网络安全学习笔记
进入场景输入用户名admin,密码password显示密码错误换个用户名,加一些特殊字符,就是这个页面了抓包吧发送到重放器后就提醒我们爆破了用户名只能是admin,在password处爆破即可得到flag
- web基础-攻防世界
重庆森林不在重庆
网络网络安全web安全前端
get-post一、WP(题目本质:考察get与post传参方法)用GET给后端传参的方法是:在?后跟变量名字,不同的变量之间用&隔开。例如,在url后添加/?a=1即可发送get请求。利用hackbar进行POST传参:复制get的url(点击loadURL),选择Postdata,填入b=2,点击Execute即可发送POST请求。二、原理参考作者的另一篇文章:HTTP的工作原理-CSDN博客
- 攻防世界 WEB WEB_PHP_UNSERIALIZE
显哥无敌
攻防世界web安全
首先需要讲明的一件事是,PHP序列化的时候对publicprotectedprivate变量的处理方式是不同的具体看这篇文章,https://blog.csdn.net/Xxy605/article/details/117336343,注意,这里的\00表示是不可见字符,并不是单纯的\00,相当于url里面的%00所以需要自己写代码让编译器帮我们做序列化这题源码没什么难度file=$file;}f
- 攻防世界web进阶_Web_php_unserialize
Cxxxik
php
攻防世界web进阶_Web_php_unserialize解题思路打开之后是一段代码审计file=$file;//构造函数把里面的参数变成传进来的参数}function__destruct(){echo@highlight_file($this->file,true);}function__wakeup(){//如果反序列化会执行if($this->file!='index.php'){//the
- 攻防世界 simple_php
yashunan
phpandroid开发语言
1234)//如果$b大于1234,将输出$flag2{echo$flag2;}?>代码审计总结:a==0且a为真,b不是数字且b>1234这些条件同时满足才会返回flagPHP中,==会自动转换类型然后进行比较,当一个字符串和一个数字进行比较时,PHP会尝试将这个字符串转换为一个数字。如下图这个例子中,字符串"2025a"会被转换为数字2025,因为在遇到非数字字符"a"时,转换就会停止。如果
- 【攻防世界 simple_php】writeup
Jhd_02
php开发语言
题目描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。题目场景:http://61.147.171.105:52527代码:<?phpshow_source(__FILE__);include("config.php");$a=@$_GET['a'</
- 2025.2.1——七、Web_php_unserialize 代码审计
然然阿然然
“破晓”计划第一阶段训练php网络安全学习安全网络
题目来源:攻防世界Web_php_unserialize目录一、打开靶机,整理信息二、解题思路step1:代码审计step2:绕过漏洞1.绕过__wakeup()2.绕过正则step3:脚本运行三、小结一、打开靶机,整理信息熟悉的代码审计,根据题目名称,还涉及到反序列化知识点二、解题思路step1:代码审计file=$file;//将传入的file参数赋值给当前对象的$file属性}functio
- 攻防世界(simple_php、baby_web详解)
l2ohvef
web
一、simple_php1.审计代码如果a==0,输出flag1;如果b是数字,退出;如果b>1234,输出flag2;flag=flag1+flag2;只要输入符合条件的值即可获得flag二、baby_web1.题目:想想初始页面是哪个2.打开burp,拦截抓包,查看返回信息,找到flag
- 攻防世界--RE--11.csaw2013reversing2--wp
Du1in9
一.题目二.解题过程1.运行附件,flag乱码2.拖入exeinfope发现无壳32位,拖入ida,进入main函数,f5查看代码分析可知,如果动态调试则进入判断运行,否则显示flag乱码3.拖入OllyDBG,f8单步运行来到关键部分,发现弹出第一个窗口前会跳到006610EF,弹出第二个窗口前会跳到006610CD4.修改代码,让他不跳过从而弹出两次flag窗口5.单步运行,第一个窗口空白,第
- 【web | CTF】攻防世界 Web_php_unserialize
星盾网安
CTF-Webphp开发语言
天命:这条反序列化题目也是比较特别,里面的漏洞知识点,在现在的php都被修复了天命:而且这次反序列化的字符串数量跟其他题目不一样file=$file;}//销毁时候触发,相当于是打印flag文件出来function__destruct(){echo@highlight_file($this->file,true);}//这个方法不会触发,估计是旧版本的php,满足某些情况所以没有触发//纯碎用来吓
- 【攻防世界】Web_php_unserialize
Miracle&
webweb安全网络安全
1.信息收集:从题目:知道反序列化;2.源码审计:file=$file;}function__destruct(){//析构函数在对象被销毁时自动调用,用于执行一些清理操作或释放资源。echo@highlight_file($this->file,true);}function__wakeup(){//在反序列化对象时自动调用if($this->file!='index.php'){//these
- Web_php_unserialize(攻防世界)
ha0cker
php开发语言web安全
1.打开环境,审计代码。file=$file;}function__destruct(){echo@highlight_file($this->file,true);}function__wakeup(){if($this->file!='index.php'){//thesecretisinthefl4g.php$this->file='index.php';}}}if(isset($_GET[
- 攻防世界-Web_php_unserialize
roast mouse
php网络安全
攻防世界-Web_php_unserialize分析php代码file=$file;}//析构函数function__destruct(){//打开指定文件,并高亮文件中内容,第二个为return参数,为true,函数将返回高亮显示的代码字符串,而不是直接输出到浏览器。echo@highlight_file($this->file,true);}//wakeup魔法函数,在反序列化之前调用。fun
- 【网络安全 | CTF】攻防世界 Web_php_unserialize 解题详析
秋说
CTFCTF网络安全web安全
文章目录代码审计解题思路wakeup绕过preg_match绕过base64绕过GET传参方法二代码审计这段代码首先定义了一个名为Demo的类,包含了一个私有变量$file和三个魔术方法__construct()、__destruct()和__wakeup()。其中:__construce()方法用于初始化$file变量__destruce方法用于输出文件内容__wakeup()方法检查当前对象的
- 攻防世界 Web_php_unserialize
Cyan1u
#攻防世界php
Web_php_unserializePHP反序列化看看代码file=$file;}function__destruct(){echo@highlight_file($this->file,true);}function__wakeup(){if($this->file!='index.php'){//thesecretisinthefl4g.php$this->file='index.php';
- PHP反序列化刷题
奫M
php开发语言
1.攻防世界unserialize3classxctf{public$flag='111';publicfunction__wakeup(){exit('badrequests');}?code=pocO:4:"xctf":1:{s:4:"flag";s:3:"111";}让输出报错:O:4:"xctf":2:{s:4:"flag";s:3:"111";}2.攻防世界Web_php_unseria
- mysql主从数据同步
林鹤霄
mysql主从数据同步
配置mysql5.5主从服务器(转)
教程开始:一、安装MySQL
说明:在两台MySQL服务器192.168.21.169和192.168.21.168上分别进行如下操作,安装MySQL 5.5.22
二、配置MySQL主服务器(192.168.21.169)mysql -uroot -p &nb
- oracle学习笔记
caoyong
oracle
1、ORACLE的安装
a>、ORACLE的版本
8i,9i : i是internet
10g,11g : grid (网格)
12c : cloud (云计算)
b>、10g不支持win7
&
- 数据库,SQL零基础入门
天子之骄
sql数据库入门基本术语
数据库,SQL零基础入门
做网站肯定离不开数据库,本人之前没怎么具体接触SQL,这几天起早贪黑得各种入门,恶补脑洞。一些具体的知识点,可以让小白不再迷茫的术语,拿来与大家分享。
数据库,永久数据的一个或多个大型结构化集合,通常与更新和查询数据的软件相关
- pom.xml
一炮送你回车库
pom.xml
1、一级元素dependencies是可以被子项目继承的
2、一级元素dependencyManagement是定义该项目群里jar包版本号的,通常和一级元素properties一起使用,既然有继承,也肯定有一级元素modules来定义子元素
3、父项目里的一级元素<modules>
<module>lcas-admin-war</module>
<
- sql查地区省市县
3213213333332132
sqlmysql
-- db_yhm_city
SELECT * FROM db_yhm_city WHERE class_parent_id = 1 -- 海南 class_id = 9 港、奥、台 class_id = 33、34、35
SELECT * FROM db_yhm_city WHERE class_parent_id =169
SELECT d1.cla
- 关于监听器那些让人头疼的事
宝剑锋梅花香
画图板监听器鼠标监听器
本人初学JAVA,对于界面开发我只能说有点蛋疼,用JAVA来做界面的话确实需要一定的耐心(不使用插件,就算使用插件的话也没好多少)既然Java提供了界面开发,老师又要求做,只能硬着头皮上啦。但是监听器还真是个难懂的地方,我是上了几次课才略微搞懂了些。
- JAVA的遍历MAP
darkranger
map
Java Map遍历方式的选择
1. 阐述
对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多。理由是:entrySet方法一次拿到所有key和value的集合;而keySet拿到的只是key的集合,针对每个key,都要去Map中额外查找一次value,从而降低了总体效率。那么实际情况如何呢?
为了解遍历性能的真实差距,包括在遍历ke
- POJ 2312 Battle City 优先多列+bfs
aijuans
搜索
来源:http://poj.org/problem?id=2312
题意:题目背景就是小时候玩的坦克大战,求从起点到终点最少需要多少步。已知S和R是不能走得,E是空的,可以走,B是砖,只有打掉后才可以通过。
思路:很容易看出来这是一道广搜的题目,但是因为走E和走B所需要的时间不一样,因此不能用普通的队列存点。因为对于走B来说,要先打掉砖才能通过,所以我们可以理解为走B需要两步,而走E是指需要1
- Hibernate与Jpa的关系,终于弄懂
avords
javaHibernate数据库jpa
我知道Jpa是一种规范,而Hibernate是它的一种实现。除了Hibernate,还有EclipseLink(曾经的toplink),OpenJPA等可供选择,所以使用Jpa的一个好处是,可以更换实现而不必改动太多代码。
在play中定义Model时,使用的是jpa的annotations,比如javax.persistence.Entity, Table, Column, OneToMany
- 酸爽的console.log
bee1314
console
在前端的开发中,console.log那是开发必备啊,简直直观。通过写小函数,组合大功能。更容易测试。但是在打版本时,就要删除console.log,打完版本进入开发状态又要添加,真不够爽。重复劳动太多。所以可以做些简单地封装,方便开发和上线。
/**
* log.js hufeng
* The safe wrapper for `console.xxx` functions
*
- 哈佛教授:穷人和过于忙碌的人有一个共同思维特质
bijian1013
时间管理励志人生穷人过于忙碌
一个跨学科团队今年完成了一项对资源稀缺状况下人的思维方式的研究,结论是:穷人和过于忙碌的人有一个共同思维特质,即注意力被稀缺资源过分占据,引起认知和判断力的全面下降。这项研究是心理学、行为经济学和政策研究学者协作的典范。
这个研究源于穆来纳森对自己拖延症的憎恨。他7岁从印度移民美国,很快就如鱼得水,哈佛毕业
- other operate
征客丶
OSosx
一、Mac Finder 设置排序方式,预览栏 在显示-》查看显示选项中
二、有时预览显示时,卡死在那,有可能是一些临时文件夹被删除了,如:/private/tmp[有待验证]
--------------------------------------------------------------------
若有其他凝问或文中有错误,请及时向我指出,
我好及时改正,同时也让我们一
- 【Scala五】分析Spark源代码总结的Scala语法三
bit1129
scala
1. If语句作为表达式
val properties = if (jobIdToActiveJob.contains(jobId)) {
jobIdToActiveJob(stage.jobId).properties
} else {
// this stage will be assigned to "default" po
- ZooKeeper 入门
BlueSkator
中间件zk
ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统地对ZK的应用场景进行一个分门归类的介绍。
值得注意的是,ZK并非天生就是为这些应用场景设计的,都是后来众多开发者根据其框架的特性,利
- MySQL取得当前时间的函数是什么 格式化日期的函数是什么
BreakingBad
mysqlDate
取得当前时间用 now() 就行。
在数据库中格式化时间 用DATE_FORMA T(date, format) .
根据格式串format 格式化日期或日期和时间值date,返回结果串。
可用DATE_FORMAT( ) 来格式化DATE 或DATETIME 值,以便得到所希望的格式。根据format字符串格式化date值:
%S, %s 两位数字形式的秒( 00,01,
- 读《研磨设计模式》-代码笔记-组合模式
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.List;
abstract class Component {
public abstract void printStruct(Str
- 4_JAVA+Oracle面试题(有答案)
chenke
oracle
基础测试题
卷面上不能出现任何的涂写文字,所有的答案要求写在答题纸上,考卷不得带走。
选择题
1、 What will happen when you attempt to compile and run the following code? (3)
public class Static {
static {
int x = 5; // 在static内有效
}
st
- 新一代工作流系统设计目标
comsci
工作算法脚本
用户只需要给工作流系统制定若干个需求,流程系统根据需求,并结合事先输入的组织机构和权限结构,调用若干算法,在流程展示版面上面显示出系统自动生成的流程图,然后由用户根据实际情况对该流程图进行微调,直到满意为止,流程在运行过程中,系统和用户可以根据情况对流程进行实时的调整,包括拓扑结构的调整,权限的调整,内置脚本的调整。。。。。
在这个设计中,最难的地方是系统根据什么来生成流
- oracle 行链接与行迁移
daizj
oracle行迁移
表里的一行对于一个数据块太大的情况有二种(一行在一个数据块里放不下)
第一种情况:
INSERT的时候,INSERT时候行的大小就超一个块的大小。Oracle把这行的数据存储在一连串的数据块里(Oracle Stores the data for the row in a chain of data blocks),这种情况称为行链接(Row Chain),一般不可避免(除非使用更大的数据
- [JShop]开源电子商务系统jshop的系统缓存实现
dinguangx
jshop电子商务
前言
jeeshop中通过SystemManager管理了大量的缓存数据,来提升系统的性能,但这些缓存数据全部都是存放于内存中的,无法满足特定场景的数据更新(如集群环境)。JShop对jeeshop的缓存机制进行了扩展,提供CacheProvider来辅助SystemManager管理这些缓存数据,通过CacheProvider,可以把缓存存放在内存,ehcache,redis,memcache
- 初三全学年难记忆单词
dcj3sjt126com
englishword
several 儿子;若干
shelf 架子
knowledge 知识;学问
librarian 图书管理员
abroad 到国外,在国外
surf 冲浪
wave 浪;波浪
twice 两次;两倍
describe 描写;叙述
especially 特别;尤其
attract 吸引
prize 奖品;奖赏
competition 比赛;竞争
event 大事;事件
O
- sphinx实践
dcj3sjt126com
sphinx
安装参考地址:http://briansnelson.com/How_to_install_Sphinx_on_Centos_Server
yum install sphinx
如果失败的话使用下面的方式安装
wget http://sphinxsearch.com/files/sphinx-2.2.9-1.rhel6.x86_64.rpm
yum loca
- JPA之JPQL(三)
frank1234
ormjpaJPQL
1 什么是JPQL
JPQL是Java Persistence Query Language的简称,可以看成是JPA中的HQL, JPQL支持各种复杂查询。
2 检索单个对象
@Test
public void querySingleObject1() {
Query query = em.createQuery("sele
- Remove Duplicates from Sorted Array II
hcx2013
remove
Follow up for "Remove Duplicates":What if duplicates are allowed at most twice?
For example,Given sorted array nums = [1,1,1,2,2,3],
Your function should return length
- Spring4新特性——Groovy Bean定义DSL
jinnianshilongnian
spring 4
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
- CentOS安装Mysql5.5
liuxingguome
centos
CentOS下以RPM方式安装MySQL5.5
首先卸载系统自带Mysql:
yum remove mysql mysql-server mysql-libs compat-mysql51
rm -rf /var/lib/mysql
rm /etc/my.cnf
查看是否还有mysql软件:
rpm -qa|grep mysql
去http://dev.mysql.c
- 第14章 工具函数(下)
onestopweb
函数
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- POJ 1050
SaraWon
二维数组子矩阵最大和
POJ ACM第1050题的详细描述,请参照
http://acm.pku.edu.cn/JudgeOnline/problem?id=1050
题目意思:
给定包含有正负整型的二维数组,找出所有子矩阵的和的最大值。
如二维数组
0 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2
中和最大的子矩阵是
9 2
-4 1
-1 8
且最大和是15
- [5]设计模式——单例模式
tsface
java单例设计模式虚拟机
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点
安全的单例模式:
/*
* @(#)Singleton.java 2014-8-1
*
* Copyright 2014 XXXX, Inc. All rights reserved.
*/
package com.fiberhome.singleton;
- Java8全新打造,英语学习supertool
yangshangchuan
javasuperword闭包java8函数式编程
superword是一个Java实现的英文单词分析软件,主要研究英语单词音近形似转化规律、前缀后缀规律、词之间的相似性规律等等。Clean code、Fluent style、Java8 feature: Lambdas, Streams and Functional-style Programming。
升学考试、工作求职、充电提高,都少不了英语的身影,英语对我们来说实在太重要