Java 综述
在华为云工作时,发现 Java 语言是一个不可或缺的技能,遂进行学习和整理。
本文总结自翁恺老师的课程《Java 应用技术》以及廖雪峰的 Java 教程,文字和图片侵删。
Introduction
Java 由 SUN 公司 James Gosling 首创,原名 Oak,最初是针对嵌入式引用。随着互联网的崛起,SUN 公司改造了 Oak,并在 1995 年以 Java 的名称发布。SUN 公司后被 Oracle 收购。
Java是将代码编译成一种“字节码”(类似于抽象的CPU指令),并针对不同平台编写虚拟机,负责加载字节码并执行。对于 java 开发者来说,就实现了“一次编写,到处运行”的效果。源文件 *.java 经过编译得到了字节码文件 *.class 后,就可以在虚拟机上运行。javac 就是编译命令,而 java 是执行命令。
Basic Grammar
Java 总体分为基本类型和引用类型。引用类型有一种取值叫做 null。
Java 中 使用 == 会判段是否指向同一个内存地址,A.equals(B) 才是判断内容是否逻辑上相等。
字符(Character)和字符串( ...
如何优雅地使用 Git
Git 是程序员代码管理的基本工具。
在以前的科研学习中,我陆陆续续地学了些 Git 的皮毛,但是一直用不顺手。
于是决定抽空研究下 Git 的原理和操作,提高未来的工作效率。
学习资源
廖雪峰的中文 git 教程
推荐英文书籍:Pro Git (Second Edition)
创建,修改,删除和移动
git init:将一个普通文件夹变为接受 git 管理的文件夹。
文件状态分为未跟踪(untracked)和已跟踪(tracked),后者包含未修改、已修改、已暂存三种状态。
.gitignore 里保存了所有需要忽略的文件。
支持标准的 glob 模式:* 匹配 0 或多个字符,?匹配单个字符,a-b 匹配 a-b 之间任何的单个字符。
空行或 # 开头的行会被忽略。用 ** 匹配嵌套目录(0 或多层)。
git status:查看当前工作目录的文件状态。
按顺序显示已暂存列表、已修改未暂存列表和未跟踪列表。
如果文件 A 暂存后又进行了修改,这两个版本会分别出现在已暂存和已修改列表里。
git status -s/--short:显示更简洁的信息。
git add & ...
三亚游记
计划和女朋友来一次牛逼的毕业旅行,但是一直没想好目的地。五月初我心血来潮想去三亚,励颖居然同意了(她不会游泳,对海边常有些抗拒)。那就来一场说走就走的旅行吧!
旅行准备
我们都是第一次去海南,我就采用了 景点为主、酒店为辅 的旅游策略。自己 DIY 路线虽然累,却比无脑报旅游团有趣多了。在休息天和机票价格的限制下,我们把时间定在了 5.8−5.145.8-5.145.8−5.14,其中头尾两天主要是赶路。
酒店选择对三亚来说格外重要。经过搜索,三亚主要有四个湾区:三亚湾、大东海、亚龙湾、海棠湾。开发时间按顺序递增,消费水平按顺序递增;前三项的水质递增,而海棠湾主要是高端酒店群。因为海棠湾是给躺酒店的人准备的(因为海棠湾贵 ),我们决定在亚龙湾和三亚湾住宿。前者的高水质用来下海,后者可以感受热闹的气氛。
虽然是淡季,三亚的酒店并没有我想象中的那么便宜。海景房 是酒店里最热门的 Topic,但是其昂贵的价格让我望而却步。本着“又想体验,又不乱花钱”的原则,我们打算在旅游的第一天入住亚龙湾五星级酒店的海景房,这天里好好享受不安排别的活动。在喜来登、希尔顿、红树林、万豪的海景房里纠结了好久 ...
Vehicle-Routing-Problem
DIMACS 是美国罗格斯大学和普林斯顿大学共同发起的离散数学和理论计算机科学中心,每隔若干年会指定一个话题,举办一场理论与实际结合的大赛,以推动相关领域的蓬勃发展。例如,上一届 DIMACS 竞赛在 2013-2014 年举办,内容是斯坦纳树。本届 DIMACS 竞赛正好在 2020-2021 年举办,内容是 车辆路径问题。
车辆路径问题(Vehicle Routing Problem,以下简称 VRP)由 George 和 John 于 1959 年提出,是一个经典的组合优化问题。VRP 还具有很强的实践价值,是现代物流系统优化的关键内容。
2020.12∼2021.52020.12 \sim 2021.52020.12∼2021.5 我在华为实习,主要研究了 CVRP 和 VRPTW 的启发式解法。
【等待更新 DIMACS 最新进展】
VRP 问题简介
VRP 主要有以下几种类型/变种:
Capacitated Vehicle Routing Problem:给定一个货仓和 n−1n-1n−1 个用户位置,设计若干条从起点出发并回到起点的 route,使得每个用户恰好被访问 ...
如何优雅地在 Linux 下工作
用惯了傻瓜式的 Windows 环境,在 Linux 服务器上跑任务总是磕磕绊绊的。
于是我就开了这篇博客,整理一些经典的操作,例如 Linux 命令行等。
服务器常用操作
pip 换源:pip install -i <url> <package_name>
https://pypi.tuna.tsinghua.edu.cn/simple
http://mirrors.aliyun.com/pypi/simple/
Jupyter Notebook 的跨 ssh 连接
服务器:jupyter notebook –no-browser –port=8890
本地:ssh -N -f -L localhost:8888:localhost:8890 usr_name@server_ip
nohup
tmux
深度学习相关
查看 cuda 版本:cat /usr/local/cuda/version.txt
指定显卡训练:CUDA_VISIBLE_DEVICES=1,2 python ...
pytorch 安装网站
查看 ...
2021华为软件精英挑战赛总结
CodeCraft 2021 如期而至。本届软挑以云资源调度为背景,历时一个半月(2021.03.10∼2021.04.242021.03.10 \sim 2021.04.242021.03.10∼2021.04.24)。
软挑总共分为三大阶段:初赛,复赛和决赛。
全国共分八个赛区,初赛和复赛在赛区内部 PK,N→32→4N \rightarrow 32 \rightarrow 4N→32→4。决赛时全国的 323232 支队伍线下 PK。
每个阶段开始时,会有十天左右的练习赛,每天可以提交 100100100 次。此时,官方会给出这个阶段的赛题,开放线上测试平台,并提供所有线上的数据(可以尽情地过拟合,也可以尽情地藏分)。练习赛结束一段时间后就是正式赛(初赛是线上 333 天,复赛是线下 333 小时,决赛是线下 3.53.53.5 小时)。正式赛会有小部分的需求更新,线上测试数据也会替换成未知的,最多只能提交 303030 次。
在今年的赛题中,初赛和复赛是复杂模型的纯优化问题,可以直接统计每支队伍的分数并择优晋级;决赛套上了一个双人博弈,练习赛时采用天梯积分制,总决赛则采用双败 ...
冒险动漫推荐
该博客记录了我看过的冒险、剧情类的日本动漫(动画+电影)。
我为每部动漫都配上图片(均来自网络,侵删)和简要评价(可能略有剧透)。
目录
普通世界+超自然设定的剧情展开:
命运石之门:时间旅行/剧情/爱情
死亡笔记:剧情/犯罪/推理
JOJO的奇妙冒险:冒险/战斗/剧情
某科学的超电磁炮:科幻/剧情/校园
异度侵入:剧情/推理
博多豚骨拉面:剧情/犯罪/友情
魔法禁书目录:奇幻/剧情
魔幻架空世界的全人类战斗
进击的巨人:剧情/战斗
鬼灭之刃:剧情/冒险/战斗
咒术回战:剧情/冒险/战斗
天狼 Sirius the Jaeger:冒险/战斗/剧情
darling in the franxx:科幻/剧情/战斗/情感
罪恶王冠:科幻/剧情/战斗/情感
Fate Stay Night:剧情/战斗/爱情
在无限可能的异世界冒险:
刀剑神域:冒险/爱情/剧情
Overlord:冒险/剧情
六花的勇者:冒险/剧情/推理
宝石之国:剧情/战斗/人性
Re:从零开始的异世界生活:奇幻/剧情/爱情
命运石之门
时间旅行/剧情/爱情
内容介绍
“这一切都是命运石之门的选择!”
男主冈部是一 ...
日常动漫推荐
该博客记录了我看过的日常、温情类的日本动漫(动画+电影)。
我为每部动漫都配上图片(均来自网络,侵删)和简要评价(可能略有剧透)。
目录
Clannad:爱情/成长/人生
ReLIFE:成长/友情/爱情
工作细胞:日常/卖萌/医学科普
干物妹!小埋:日常/校园
月色真美:恋爱/校园
白色相簿:恋爱/校园
欢迎来到实力主义至上的教室:校园/推理/烧脑
Clannad
爱情/成长/人生
内容介绍
冈崎朋也凭借篮球特长进入高中;然而,他在和父亲的一次打架中右肩受伤,从此不能把右手举过肩,自然也得痛苦地放弃篮球梦。后来,他整天和基友阳平厮混在一起,没有梦想、常常翘课、喜欢打架,是一名不折不扣的“不良少年”。
古河渚是一名善解人意、从不为自己着想的女生。然而,她自小就体弱多病——因为长时间的疾病,高三时她甚至连毕业的出勤天数要求不都没有达到,不得不留级。作为留级生她,根本就交不到知心朋友,只能把这份痛苦默默藏在心底。
就在这樱花飞散的坡道上,他们两个邂逅了,从此彼此人生轨迹发生了天翻地覆的变化。
简评
我的读后感链接
Clannad 是我挚爱的神作!总共分为两部:
第一部讲的是冈 ...
线性代数复习
线性代数 广泛应用在计算机专业的各个领域。由于是大一学的课,现在对矩阵的反应已经大不如前。
本文章旨在温故线性代数,总结经典定理和证明,提供给自己和读者一个快速复健的平台。
线性空间
设 VVV 是一个非空集合,FFF 是一个域,在 VVV 和 F×VF \times VF×V 上定义 加法 和 数乘 两种运算。
⟨V:+⟩\langle V:+\rangle⟨V:+⟩ 是一个交换群(加法群),我们把其单位元记作 0\mathbf{0}0。
对于 ∀α,β∈V\forall \alpha,\beta \in V∀α,β∈V, ∀λ,μ∈F\forall \lambda,\mu \in F∀λ,μ∈F 以及域 FFF 的乘法单位元 1\mathbf{1}1,有:
1α=α\mathbf{1}\alpha=\alpha1α=α
λ(μα)=(λμ)α\lambda(\mu\alpha)=(\lambda\mu)\alphaλ(μα)=(λμ)α
(λ+μ)α=λα+μβ(\lambda+\mu)\alpha=\lambda\alpha+\mu\beta(λ+μ)α=λα+μβ
λ(α ...
趣题摘记-算法题精选-1
这一系列文章记录了我遇到过的一些 趣题。
文章内容
简介
奇思妙想
数学和计算机领域,通过小小思考后能豁然开朗的趣题。
概率和期望
数学和计算机领域,与概率和期望相关的趣题。
算法题精选-1
OI/ICPC 向的算法题,去其琐碎、留其精髓,望博君一笑。
算法题精选-2
OI/ICPC 向的算法题,相比上一期题意更简洁,出处往往不可考。
CEOI 2006 ANTENNA
题意:给出平面上的 nnn 个点,求一个最小圆使其能覆盖至少 kkk 个点。n≤500n \le 500n≤500。
题解:二分答案。依次枚举每一个点作为圆周上的点,此时合法的圆心位置是一个圆,别的点如果落在圆里则对应一段圆弧,排序后求交即可。复杂度是 O(N2logNlogans)O(N^2\log N\log ans)O(N2logNlogans),Claris 博客 里也用了这种做法。
交换顺序,先枚举点再二分。每次先 check 当前的 ansansans 是否合法,如合法再继续二分。当我们打乱所有点后,期望只有 O(logN)O(\log N)O(logN) 个点使答案 ...