前言

前段时间在看算法这块的东西,看的我是头昏脑胀。所以这几天又捡起了 《深入理解Java虚拟机》 这本书,这次主要看的是书中的 第三部分,我一直崇尚知识是在不断的总结和不断地学习相互交叉,这样才能学以致用,用而有据。

概念

字节码

字节码指的是 Java 中的 .java 文件经过编译( javac )后生成的固定格式文件 .class 文件以供 JVM 使用。
之所以被称为字节码文件是因为字节码文件是由十六进制值组成,JVM 以两个十六进制值为一组,即一个字节进行读取。同时 JVM 也针对不同操作系统和平台进行优化,这也就是 Java 号称 一次编译,到处运行 的根本原因。

由此又可以引出一个问题,由于 JVM 规范的存在,那么只要我们最终可以生成符合 JVM 规范的字节码文件那就可以在 JVM 上运行了,这也就产生了其他运行在 JVM 上的语言(如 Scale、Kotlin、Groovy ),可以通过其他语言可以扩展 Java 所没有的特性和语法糖。

Read more »

前言

最近总是在断断续续的看动态规划相关的算法题,总感觉对于动态规划这个东西需要仔细琢磨一下,在本子上写写画画才能计算出 边界条件状态转移方程,而这其中最难的就是状态转移方程。
所以今天这篇文章的核心也就是 基础状态转移方程状态转移方程的优化

动态规划简介

动态规划就是把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解。同时动态规划是自底向上求解,通过循环来从最基础已知的答案逐步求解到想要的答案。

Read more »

前言

最近这两天在看牛客网上链表这块的算法题,一番苦战总结下来就是那些个套路,只要熟知一些常见的套路,碰见链表一类的算法题都会有个大概的思路。
全文包含的套路如下:

不过还有一些小细节就需要你自己在做题的过程中发现了,这里只是一些比较常见的套路,希望对你有所帮助。

Read more »

前言

最近在看算法这块的东西,算法这东西就是需要时不时的拿起来看一看,这样才会有思考,时常更新自己的知识库。

这篇文章主要包含两种解法:

  • 前序遍历
  • 后序遍历

至于为什么中序遍历不能,看到最后你就明白了。

Read more »

不相邻最大子序列和

题目描述

给你一个 n ,和一个长度为 n 的数组,在不同时选位置相邻的两个数的基础上,求该序列的最大子序列和(挑选出的子序列可以为空)。

示例

  1. 示例1
    输入
    1
    3,[1,2,3]
    返回值
    1
    4
    说明
    1
    有 [], [1], [2], [3], [1,3] 4 种选取方式其中 [1,3] 选取最优,答案为 4 。 
Read more »

Git 基础全流程

git clone : 克隆远程仓库到本地。
git status : 查看当前版本状态(本地已修改的内容和暂存区的内容)
git add </file> : 添加已修改文件到暂存区
git commit -m “test” : 添加本次提交注释
git push origin bracnh : 提交本地branch 分支推送到远端。

Read more »

前言

之前在给朋友的项目进行 PR 的时候每次都提示我要输入用户名和密码,但是觉得很奇怪啊,但也没怎么上心,后来好几次都这样,我就很难受了,然后就是 Google 大法真好。😀

Read more »

前言

前几天经历了一次面试,原本的打算是检查自己的水平,好家伙,这一次面试直接给我干自闭了。😭😭😭

内容如题目所述: 单例模式 ,如果你目前对于自己的 Java 有一点自信的话,那我建议你看看!

Joshua Bloch 大神说过的一句话: 实现单例模式的最佳方法是使用枚举

Read more »

简介

在系统中修改已有数据时,需要先读取,然后进行修改保存,此时很容易遇到并发问题。
由于修改和保存都不是原子操作,在并发场景下,部分对数据的操作可能会丢失。
所以在单服务器系统我们常用本地锁来避免并发带来的问题,然而,当服务采用集群方式部署时,本地锁无法在多个服务器之间生效,这时候保证数据的一致性就需要分布式锁来实现。

Read more »

简介

AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。

语法

1
2
3
awk [选项参数] 'script' var=value file(s)

awk [选项参数] -f scriptfile var=value file(s)
Read more »