Java标准库数据结构的基本用法
目前我的算法教程基本上都是用 Java 语言写的代码,主要有以下几个原因:
1、Java 是强类型语言。因为我们就是要学习运用各种数据结构写算法嘛,所以清楚地知道每个变量是什么类型非常重要,方便你 debug,也方便 IDE 进行语法检查。如果是 Python 这样的动态语言,每个变量的类型不明显,可能有碍大家的理解。
2、Java 这种语言中规中矩,没有什么语法糖,即便之前没学过 Java 语言,单看代码也能理解逻辑。所以如果你有其他比较熟悉的语言,完全可以根据我的解法代码用自己的语言实现。
对于一些不怎么熟悉 Java 的小伙伴,初学时肯定会有一点吃力。不过不用担心,下面我会讲讲学习我的算法教程所需的 Java 基本用法,以便不了解 Java 的小伙也能伴顺畅地学习我的文章。
首先,Java 的基本语法可以参考这个网站的教程,我就不重复造轮子了:
https://www.runoob.com/java/java-tutorial.html
我圈出的这一部分是 Java 的基本用法,当然这个网站也有其他的 Java 基础知识,你有空也可以快速浏览一下:
下面我介绍一下我在教程中会用 ...
Lambda表达式
匿名内部类的格式:123new 父类或接口() { 重写的方法; }
在匿名内部类中,有很多内容都是冗余的。比如在使用匿名内部类实现多线程的代码中。
因为 Thread 构造方法中需要传递 Runnable 接口类型的参数,所以我们不得不 new Runnable。
因为要重写 Runnable 中的 run 方法,所以不得不写了public void run。
整个匿名内部类中最关键的东西是方法,方法中最关键的有前中后三点。
前:参数。
中:方法体
后:返回值
最好的情况是只关注匿名内部类中最核心的这些内容(方法参数,方法体,返回值)如果使用Lambda表达式,可以只关注最核心的内容,Lambda 表达式是匿名内部类的简化写法。
Lambda 属于函数式编程思想。
面向对象思想:怎么做。
函数式编程思想:做什么。
1234567891011121314public class Demo01Inner { public static void main(String[] args) { //使 ...
npm指令
NPM 的全称是 Node Package Manager,是随同 NodeJS 一起安装的包管理和分发工具,它可以很方便的让前端开发者下载、安装、上传以及管理已经安装的包。
1. npm 安装配置(可选)123456789现在安装的新版本的nodejs可以直接使用默认配置的即可,不须再配置任何内容。 1. 在nodejs安装的根目录下新建 node_cache 和 node_global 两个文件夹。 2. 分别使用以下命令设置全局的安装包目录: npm config set prefix "D:\Program Files\nodejs\node_global" npm config set cache "D:\Program Files\nodejs\node_cache" 3. 配置环境变量: 打开计算机的环境变量,找到系统变量,新增一项 NODE_PATH,值为安装目录下的nodejs, D:\Program Files\nodejs\node_global\node_modules1234567
2. 查看 ...
Java的STL
Collection集合常用功能
123456789101112131415161718192021222324252627282930 public static void main(String[] args){ Collection<String> coll=new ArrayList<>(); //向集合中添加元素 coll.add("hello"); coll.add("zhong"); coll.add("guo"); System.out.println(coll); //删除集合中的某个元素 boolean r=coll.remove("hello"); System.out.println(coll); //清空集合 coll.clear(); System.ou ...
Typora语法
Typora 语法
1.字体编辑1.1标题adwa
dsefse
12345# 一级标题 快捷键Ctrl + 1......###### 六级标题 快捷键Ctrl + 6
1.2字体大小1快捷键:Ctrl + 数字 或 Ctrl + 加减号
1.3字体加粗12快捷键: Ctrl + b例如: **加粗内容**
例如:天空之城
1.4斜体12快捷键: Ctrl + i例如: *斜体*
例如: 天空之城
1.5删除线12快捷键: alt + shift + 5例如: ~~删除的内容~~
例如:天空之城
1.6下划线1快捷键: Ctrl + u
例如: 天空之城
1.7文本居中1操作: <center>居中内容</center>
天空之城
1.8标题居中1操作: <h1 align = "center">标题居中的方法</h1>
标题居中的方法
1.8脚注12操作: 这里有一个脚注[^脚注] [^脚注]:填写脚注内容
例如: 有一个Typora语法讲解网址[1]
1.9上标12操作 ...
一文搞懂SSH、SSL和HTTPS
前言打开自己的网页却显示的是另一个奇奇怪怪的页面?自己的网页中多了很多奇怪的弹窗?不知道小伙伴们有没有遇到过这类问题。想必大家都知道这是因为网页被劫持了,那么需要配证书,使用HTTPS,那么什么又是HTTPS呢?作为一个前端工程师,在日常工作中需要接触大量的网络请求,而弄明白一些网络相关的知识是必须的。今天就来介绍一下SSH、SSL和HTTPS。
HTTP的缺陷HTTP协议是运行在TCP之上的一个应用层的协议,它是web应用的基础。HTTP协议本质上是客户端发送请求到服务端,从服务端获取各种数据回来的一个过程。
而HTTP协议是有缺陷的。因为它本身不具备加密功能,是明文运输各种数据的且不验证报文的完整性,在网络请求的过程中,会经过很多网络路由器转发你的请求,在每一个设备处都有可能会被窃听数据以及篡改数据。而且HTTP协议不验证通信双方的身份,有可能会遭遇伪装。
如果把HTTP协议的通信过程比作寄送快递的过程,A给B发一份快递,这份快递会经过很多快递员之手(网络路由器)。每个快递员都可以打开这个快递看里面到底有什么(明文运输),可以拿走或者放入一些奇怪的东西(不验证报文的完整性)。甚至 ...
AcWing算法模板
快速排序算法模板 —— 模板题 AcWing 785. 快速排序123456789101112void quick_sort(int q[], int l, int r){ if (l >= r) return; int i = l - 1, j = r + 1, x = q[l + r >> 1]; while (i < j) { do i ++ ; while (q[i] < x); do j -- ; while (q[j] > x); if (i < j) swap(q[i], q[j]); } quick_sort(q, l, j), quick_sort(q, j + 1, r);}
归并排序算法模板 —— 模板题 AcWing 787. 归并排序1234567891011121314void merge_sort(int q[], int l, int r){ if (l >= r) r ...
互联网杂谈
互联网的黑暗角落:你所不知道的那部分4chan近日,网络社区4chan引起了科学家的兴趣。说起4chan,很多人的第一反应可能会是fall_ark翻译的笑话集。但事实上,4chan的名声更多来自让人笑不出的事情。现在,科学家们正试图在这被称为“互联网黑暗角落”的社区,寻找关于网络暴力和虚假新闻的蛛丝马迹。4chan为什么臭名昭著,又如何与互联网上的恶性行为产生联系?这篇文章将为你梳理清楚。
4chan是什么?谈到4chan,就不可避免地谈起它的“模板”,2chan。2001年,日本最知名的网络社区2ch(2-channel,二频道)面临关闭的风险。部分来自2ch的用户创立了2chan(双叶频道)作为临时避难所。后来,2chan发展为以ACG、御宅族文化相关讨论为核心的贴图论坛。
2003年,一名网名叫做moot的纽约男孩仿照2chan的模式建立了面向英语使用者的社区4chan。这一论坛的建立初衷与2chan类似,也是为了给热衷于日本ACG文化的人们开辟一个窗口。/b/版(随机版)是4chan创建的首个贴图版,秉承“没有规则”的发表方针。这个版面也是4chan最受欢迎的版面。
4chan ...
MarkDown的快捷操作
欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
全新的界面设计 ,将会带来全新的写作体验;
在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
全新的 KaTeX数学公式 语法;
增加了支持甘特图的mermaid语法^1 功能;
增加了 多屏幕编辑 Markdown文章功能;
增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
增加了 检查列表 功能。
功能快捷键撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command ...

