Haiming's Blog

临渊羡鱼,不如退而结网。

LeetCode心得

在刷题之中遇到的好问题心得

此处主要是记录一些自己觉得精彩的LeetCode题解和心得。 136.Single Number https://leetcode.com/problems/single-number/ 本题精彩之处在于要求时间复杂度O(n),而且要求不可以使用额外空间,空间复杂度为O(1)。这就断了我们使用排序或者是hashMap来解决的路。本题之中使用二进制异或的性质来完成,所有数字异或之后就是结...

递归梳理

如何设计和使用递归

递归算是一个困扰我很久的问题,之前觉得总是转不过来弯,今天试着详细的梳理一下,将这个地方搞透。 参照:https://chenqx.github.io/2014/09/29/Algorithm-Recursive-Programming/ 1. 概念 递归算法,其实质是将问题分解成规模缩小的同类问题的子问题,然后递归的调用自身来解决问题。 递归算法的特点有: 在方法里面调用自...

Build a Spring from Zero(2)

Import Exception, meet Single Responsibility Principle, create ApplicationContext and ClassPathXmlApplicationContext

1. Refactor code: import Exception and retest Last article we said that the way only use try catch is not user-friendly. So toady we put them together and build a hierarchy tree like this: To t...

Build a Spring from Zero(1)

Create class from XML file

1. IoC and AOP IoC: Inversion of Control, or Dependency Injection(DI). In my understanding, it is we put business class and configuration file into Spring container, and then it can produce a syst...

二叉树三种顺序遍历的递归和非递归算法

个人对于递归的一点总结

二叉树之中的遍历分为几种情况,前序,中序,后序。在三种顺序之中又有递归和非递归两种。下面就结合一些资料和我自己的总结,将这几种的区别讲清楚。 乍一看这三种遍历方式可能有点糊涂,实际上很好区分,在一棵二叉树之中有根节点和左右子树,左子树必须在右子树之前遍历,那么可以选择的也就是根节点的顺序了。 如果操作顺序是: 根-左-右,那么就是前序遍历 左-根-右,那么就是中序遍历 左-右-根,...

《Java特种兵》阅读笔记(4)

第四章-Java通信,交互就需要通信


《Java特种兵》阅读笔记(3)

第三章-JVM,Java程序员的OS

第三章 - JVM,Java程序员的OS 3.2 跨平台和字节码基本原理 3.2.1 javap 命令工具 public class StringTest { public static void main(String[] args) { String a = "a" + "b" + 1; String b = "ab1"; S...

学习Algorithm思想(1)

第零章、必读系列

看到 Github 的 trend 上面有个迅速攀升的 repo,一看是讲如何面对算法和如何解决算法的。刚好在家闲来无事,学习一下。 https://github.com/labuladong/fucking-algorithm 能看到真的说人话的教程真的很幸运,不要放弃这种学习透彻的机会。 学习数据结构和算法的框架思维 作者首先讲了,本 repo 的目的就是给数据结构和算法做一个框...

《Java特种兵》阅读笔记(2)

第二章-Java程序员要知道计算机工作原理

接着学习这本书。 第2章 Java 程序员要知道计算机工作原理 2.1 Java 程序员需要知道计算机工作原理吗? 这一章主要讲解CPU,内存,磁盘等等角度来看的 计算机的基本原理。也通过缓存来理解优化设计,讲解系统的 I/O 和数据库交互的关系。 2.2 CPU的那些事儿 2.2.1 从CPU联系到 Java 首先我们清楚,每个进程或者是线程发送操作请求之后,最后会由 cpu ...

《Java特种兵》阅读笔记

第一篇——Java功底篇

开干。 第一章:看看功底如何 1.1 String的例子,见证下功底 下面看看 equals() 怎么用: package JavaTeZhongBing; public class Chapter1_1 { public static void main(String[] args) { String a = "a" + "b" + 1; ...

Java ClassLoader 解析

与 ClassLoader 源码分析

本篇是小周和你读源码(1) 系列的文章。 在读 Java 源码之中的 Class 源码时(没错,这句话在Class源码开篇似曾相识),发现其中很多东西是和 ClassLoader相关的,那么还是要将 ClassLoader 之中的一些概念性问题搞清楚。下面就是学习心得: 参考:https://blog.csdn.net/briblue/article/details/54973413 ...

Class源码解析

本篇是小周和你读源码(1) 系列的文章。 本是准备先看Boolean类,但是发现其中涉及到了太多关于Class类的内容,如果不先了解 Class 类,很难进一步将其讲清,因此转而先写本文。 还是先从概述开始吧。 概述 /** * Instances of the class {@code Class} represent classes and * interfaces in a...

Go语言接着学

按照官方教程学学Go,顺带加一些自己的笔记

学学Go,顺带记录一些自己的笔记。 基础知识 Named return values Go 的返回值可以被命名。但是在语言之中引入了一种机制,使其如果没有命名也不会报错。 如果没有命名,那么直接就会按照函数之中引入的顺序来进行返回,比如下面这段代码: func split(sum int) (x, y int) { x = sum * 4 / 9 y = sum - x re...

RocketMQ初步总结和辨析

消息队列和RocketMQ入门总结

看到一篇文章之中对消息队列和RocketMQ做了初步的总结,觉得比较好,在此加上自己对于部分功能的解释在这里写一篇。 原文链接:https://juejin.im/post/5df0825b51882512420af94a 参考链接:https://www.cnblogs.com/chjxbt/p/11407890.html 消息队列简介 对于消息队列,之前有过梳理,此处只是对之前叙...

服务器临时导流本地环境

记录一点ssh的小操作

今天遇到了一个问题:由于staging上面的版本与我要开发的版本差了一版。所以我没有办法将代码merge到staging环境之中。那么怎么满足测试的需要呢?这就涉及到下面的骚操作:开个口子,将流量打到本地来。 假设服务器环境的段口为8803,我们本机上面的段口是8080。那么我们怎么打过来呢? 其实只要两步就好了: 将线上环境的nginx对应的条目改成 http://localh...

算法学习

开篇与第一章基础

要想当一个好的程序员,算法功底是必不可少的。种一棵树最好的时间是十年前,然后是现在。开搞! 我学习算法所使用的书籍是那本红皮的《算法》。 下面是一些自己总结的知识点,大部分比较零碎,就当做是个人笔记了吧。 第一章 基础 1.1 基础编程模型 1.1.10.1 二分查找 二分查找之中,我对其函数的结束条件感到十分精妙,先放代码: package Cha1Sec1; /** *...

学习corntab 定时任务

记一次项目之中定时任务的学习

由于今天要写一个定时任务的项目,今天学习一下crontab的写法。 https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html crontab用来干什么? 通过corntab,可以在固定的时间间隔上面执行指定的系统指令,或者是shell script 脚本。不只是时间间隔,也可以是某个或者某些时间点。 命令...

MySQL面试相关问题

对于互联网行业而言,MySQL是非常重要的一环。 除了我们刚刚梳理过的MySQL之中索引的部分知识之外,还有其他的一些MySQL相关的知识点需要我们去掌握。在之前的一些文章之中有过梳理,在此总结一篇我认为很好的文章,作为一个综合性的整理。 学习文章地址: http://huyan.couplecoders.tech/mysql/笔试面试/2019/07/10/MySQL面试一百问/ ...

MySQL之中索引的部分知识

包含某些MySQL的面试题目解析

在日常生活之中,MySQL的索引原理还是非常重要的,也是一个程序很多时候的瓶颈所在。本文会梳理包括MySQL 索引和其他的一些MySQL 知识,下面就开始讲。 下面是参考的博客地址: http://huyan.couplecoders.tech/mysql/读书笔记/高性能mysql/2019/06/01/Mysql索引原理及其优化/ 什么是索引 先上定义: 索引是存储引擎用于快速...

Java 之中的泛型和类型擦除

参考:https://blog.csdn.net/xiangwanpeng/article/details/77896340 https://blog.csdn.net/s10461/article/details/53941091 本文的顺序是先讲泛型,然后讲关于类型擦除的问题。 泛型 概述 首先要解决的问题:什么是泛型?为什么要使用泛型? 这是网上一段内容的引用: 泛...

Java反射简析

包括部分modifier的介绍

参考: https://juejin.im/post/598ea9116fb9a03c335a99a4 概述 Java反射机制,指的是在程序 运行 的时候,对于任意一个类, 可以知道这个类的所有属性和方法, 对于任意一个对象,可以调用这个对象的所有属性和方法。 这种动态的获取信息和动态的调用对象的方法的功能被称为Java的反射机制。 反射机制最重要的就是“运行时”,其使得我们可以使用...

小周和你读源码(1)

对于java.lang部分代码的阅读提纲

今天开始梳理以下 java 的底层源码,第一部分打算从 java.lang,这个最基本的包开始。不知道这个系列多久可以完成,但是希望自己可以一直坚持下去。 本来认为,看源码就要把一个类吃透了再吃下一个,但是后来真正阅读的过程之中发现,类和类之间相互交错,想要彻底的将一个类看透对我目前而言过难,所以决定先以广度为主,将代码的大部分功能做初步的了解。 顺带一提,之前自己看openj9的代码,...

Boolean源码解析

java.lang 源码阅读与Wrapper类的简析

本篇是小周和你读源码(1) 系列的文章。 因为是第一篇,所以先尝试使用分段解释的方法。以后可能会有改动。 总概 首先是这个类的作用: /** * The Boolean class wraps a value of the primitive type * {@code boolean} in an object. An object of type * {@code Bool...

CORS相关梳理

CORS的概念和同源政策相关的梳理,加上AJAX梳理

学起来! 阮一峰相关博文: http://www.ruanyifeng.com/blog/2016/04/same-origin-policy.html https://www.ruanyifeng.com/blog/2016/04/cors.html 同源政策概述 含义 同源政策(Same-origin policy),最开始是指A网页设置的Cookie,B网页不能打开,除非这...

对于不同域名之间浏览器Cache处理方式的小探究

记一次RabbitMQ的排查处理

今天遇到了一个很有趣的问题,是这样的: 在 develop 环境和 staging 环境上,有两套版本不同的 RabbitMQ,均需要通过跳板机进行端口映射再使用。 但是在 staging 环境上是可以用 127.0.0.1 和 localhost 登录的,在 develop 环境上面就只可以用 localhost 登录。 目标:在两个环境之下都可以使用 127.0.0.1 和 loca...

对Kubernetes的port部分的具体梳理

包括clusterIP如何使用等等

下面是对于Kubernetes 的各种port如何使用的梳理。 在k8s 之中,有三种port: port, targetPort 和 nodePort。 下面是cluster 和 service 的关系示意图: 所有的service在同一个cluster之中,互相之间可以直接通信。直接通信可以通过 <clusterIP>:<port> 或者 service...

对于Spring Feign的一些学习总结

包括一个官网负载均衡教程的自我总结

教程地址:https://www.jianshu.com/p/a0d50385e598 在工作之中对于Spring Feign 的应用比较多。Feign,作为一个声明式的 Web Service 客户端,提供了HTTP 请求的模版,只要通过简单的编写接口和插入注解,就可以定义HTTP的参数,格式地址等等信息。而Feign则会完全代理HTTP请求,我们只需要像调用方法一样调用就可以完成服务请...

SpringBoot使用RedisTemplate操作Redis

自己的一些理解和感悟

在感叹完Spring对于程序的大大简化之后,在这里总结一下Redis在Spring之中的使用技巧。Spring将Redis封装成一个RedisTemplate,所以本文之中主要总结的是如何使用这个RedisTemplate。话不多说,现在开始。 参考文章地址:https://www.cnblogs.com/superfj/p/9232482.html 本博客之中之前对于Redis的部分学...

Kubernetes官方教程个人笔记

一些自己的理解和记录

本文是对于官方教程的个人笔记和记录。主要是自己认为一些比较重要的点的总结。 在之前的文章之中提到过,我们和k8s进行沟通的唯一渠道是通过 API 的 endpoint。 kubectl 就是这样一种使用 API endpoint 来进行沟通的方法。换言之,我们在使用 kubectl 的时候,就是在使用 K8s 的 API 进行沟通。 kubectl 命令...

Kubernetes入门简明教程

与K8s的一些基本概念辨析等等

今天写完了任务的API,之后对于后端的要求是学习一下K8s,本篇文章的意义是对于自己学习过程的某些记录。正文开始。 文章地址:https://www.toocruel.net/kubernetes-ru-men-jian-ming-jiao-cheng/ Kubernetes 概述 K8s是一个底层资源和容器之间的一个抽象层。我自己的理解,这里指的是一个统一管理,统一布置的中间管控层。...

Docker Compose File explaination

Simple analyse on examples from official website

How to depoly docker image to server, based on constructed CI/CD pipeline? This article is about the specific steps and details on it. 1. Example Code There are several versions of Conpose file: ...

关于Redis,MyBatis和Spring之中问题的一点梳理

包括SpringBean,以及Lua脚本的一些杂谈

最近在极限做项目的过程之中真的学到了很多……当然压力也真的很大,总是担心自己会成为团队的瓶颈,所以只能更逼自己去make it. 今天分配我的第一阶段的任务已经结束了,正好趁这个周五,马上要从北京回到坡县的晚上,在马上要去理发的间隙,静下心来好好梳理一下最近的收获和心得. 话不多说,开搞! 1. 关于 Redis 部分的总结 在新项目的过程之中,Redis的部分是我第一次遇到。 之前的,...

关于API设计和Spring的一点记录

总结一下最近踩到的坑

做中学的确是最快学习的方式……开冲 1. 对API设计的一些经验总结 下面是针对应用内部,即前端对后端的API的设计之中总结的一点经验。 命名:前端对后端的API不应叫做 Internal API,Internal API 是内部的一些功能,是不对用户开放的,比如黑名单设置等等。前端对后端的API应直接叫做 API 在API的设计之中,命名和URL设计的原则要让人一眼知道其作...

MyInfo 使用方法

对于MyInfo 的 API 调用做一点小结

MyInfo API Data 数据分为两种:政府确认数据和用户个人提供数据。 政府确认数据,是从政府的信息源拿到的,不可以以电子形式更改。个人提供数据是User自己在MyInfo APP 之中提供的,可以以电子形式更改。 FAQ MyInfo 不支持IP白名单,但是可以白名单下面的Fully Qualified Domain Names: test.ap...

学习Go语言

阅读《The way to Go》

趁着在间隙的时间,把Go入个门。虽说语言只是工具,但是学学也是比不学要好。 阅读环境在:https://github.com/unknwon/the-way-to-go_ZH_CN/blob/master/eBook/directory.md 作者的中文译本是经过官方授权的,不必担心版权问题。 话不多说。实战。 前言 本书由这样几部分组成: Go语言起源和开发环境 Go语言核...

《阿里巴巴Java开发手册》总结与理解

和个人的一些感悟

经各位大佬推荐,想要把 Java 弄明白一点,就看一下《阿里巴巴 Java 开发手册》,那就开始呗。 看了看发现 《码出高效》 这本书更适合,那就改成看这本书了…… 第一章 计算机基础 以下的基础问题: 位移运算可以快速的实现乘除运算,那位移的时候要注意什么? 浮点数的存储与计算为什么总会产生微小的误差? 乱码产生的根源是什么? 代码执行的时候,CPU 是如何配合内...

数据库设计和一些业务注意的要点

包括数据库索引设计

数据库在任何的业务之中都非常重要,尤其是对于互联网企业的业务,大部分都是“数据密集型”,说白了,不同于游戏等“计算密集型”业务,其主要就是将数据传输和搬运给需要的人,那么这种场合下面,数据库的设计就更重要了。 本文之中,我对于数据库的索引,结构和一些其他需要注意的细节方面做一些简要的梳理。下文的很多情况是针对于互联网公司的,高并发访问、低频写入、高频读取、产生大量日志、单个业务逻辑简单、分...

学习Shell

Shell简析和基本操作介绍

已经想不出该在这里说什么了,开工…… 参考:http://www.runoob.com/linux/linux-shell.html 1. Shell 简介和 Shell 环境 Shell 既是一种命令语言,又是一种程序设计语言。 Shell 提供了一个应用程序,其提供了一个界面,用户通过这个界面进行访问操作系统内核 的操作。 1.1 Shell 环境 本教程之中所说的 Shel...

MyBatis 入门

对于XML和annotation的SQL语句做一些梳理和总结

高产似母猪之中的母猪…… MyBatis 因为其支持定制化 SQL,存储过程等等,而且避免了几乎所有的JDBC 代码和手动设置参数,以及获取结果集等等这些操作,深受广大被折磨的程序员的欢迎. 由于环境配置已经存在,那么我就直接略过环境配置的环节,直接上干货啦! 1. XML 映射文件 官方说明是:由于MyBatis 的映射语句的强大,其映射器的XML 文件变得相对简单,相对于同功能的...

学习 Groovy

包括Groovy基本知识和闭包(clousure)相关

Groovy 是一门基于 JVM 的动态语言,既可以面向对象编程,又可以用作纯粹的脚本语言。在学习 Java 语法的情况下会很容易学习,下面就是 Groovy 和 Java 语法的不同之处的学习。 学习教程:https://www.kancloud.cn/kancloud/learnxinyminutes/58931 Groovy基础 1. 与Java的异同 Groovy可以作为 J...

高性能,高可用网站架构研究

对高性能网站的一点梳理

看到一篇文章,手把手教你构建一个高性能、高可用的大型分布式网站,其中将 大型分布式网站 的架构做了一个梳理,那就自己看着学习一下。 1. 大型网站的特点与架构目标 下面是一般的大型网站的特点: 用户多,分布广泛 大流量,高并发 海量数据,服务 高可用 安全环境恶劣,易受网络攻击 功能较多,迭代较快,发布比较频繁 从小到大,采取渐进发展的发展方式 大型网站架...

Linux基础知识

在后端开发过程之中需要知道的 Linux 基础知识

要做一个合格的后端开发,只会一点 Java 是远远不够的。Linux 作为一种历史”长远“的操作系统,若想将每个细节都说清楚属实太难,本篇文章之中,将一些基础的 Linux 概念和使用方法进行一定的梳理,感谢下面的参考资料: 后端程序员必备的Linux基础知识 1. 从认识操作系统开始 ……这里就不多讲了,再多讲就像科普了…… 1.1 操作系统简介 下面是作者的四点操作系统介绍: ...

Spring AOP 之中的JDK 和 CGLib 动态代理哪个效率更高

对不同用法的一点比较研究

无意之间看到了一篇文章,里面对于Spring AOP 之中 JDK 和 CGLib 二者动态代理哪个效率更高做了测试,于是在自己博客之中记一下笔记,算是兴趣的一点探究。 一、基本概念 首先,针对Spring 的两个特点:AOP和ROC之中的AOP,底层实现有两种方式:一种是 JDK 动态代理,一种是 CGLib 的方式。 自从 Java 1.3 开始,Java 提供了动态代理技术,允许...

Java相关知识点梳理(二)

容器相关

忙里偷闲,扎实基础才是正经事。 8说了,开冲! 18. Java 容器都有哪些? Java 容器分为 Collection 和 Map 两大类,其下又有很多子类,如下所示: Collection List ArrayList LinkedList Vecto...

对MQ的一些梳理

总结一个MQ的GitChat

在看了一个GitChat之后,在自己的blog里面做一下notes和写一下自己的想法。 推荐”石杉的架构笔记“,也是这篇文章的出处。 1. 概述 消息中间件(Message Queue,简称 MQ)是我们平时经常用到的一个东西,但是对于业务而言,可能我们平时更多的是在于会实现生产信息,消费信息。但是深入思考之后可能发现下面的几个问题我们从未认真思考过: 为何要使用MQ 使用...

Java相关知识点梳理(一)

Java基础,包括Java环境,Java基本类型,抽象类与接口等等

忙里偷闲,扎实基础才是正经事。 8说了,开冲! 1. JDK和JRE有什么区别 这个知识点我想只要搞Java的都知道…… JDK:Java Development Kit的简称,Java开发工具包,提供了Java的开发环境和运行环境(JRE) JRE: Java Runtime Environment 的简称,Java 运行环境 JDK之中其实包含了JRE还有javac,...

Redis浅析

对Redis的概念和用法的简析,以及分布式数据库和缓存双写一致性分析

参考资料: 为什么我们做分布式使用 Redis ? - 程序之心 丁仪的文章 - 知乎 https://zhuanlan.zhihu.com/p/50392209 http://www.runoob.com/redis/redis-tutorial.html 1. 为什么要使用redis 在项目之中使用redis,主要的考虑角度是性能和并发。 性能 由于在数据库之中查询数据是一项特别耗费资...

Salesforce Trailhead

Walk through the 18 hours tutorial

Here is the note for Salesforce Basics tutorial on Trailhead. Get Started with the Salesforce Platform What does Salesforce Platform offer? Develop custom data models and applications for des...

Learn Django

Do a Demo on offical guide

Follow the tutorial of official website and do a Demo on Github Django at a glance Here are summaries of what Django is better. Design the model The ORM(Object-relational mapper) can make user ...

学习Python

《learn python the hard way》

Yes. Learn Python the hard way. So this blog is a studying note for me to record things I think important or difficult :) And also a place for me to write down my own thinking. Let’s Go! Codes:...

后端面试之中的部分知识点梳理

OS,网络以及数据库等等的大杂烩

针对一些问题做一下梳理。 1. 操作系统和网络 1.1 进程和线程有什么区别? 进程(process) 和线程(thread) 之间的区别为: 一个程序下至少有一个进程,一个进程下至少有一个线程。 一个 process 也可以有多个 thread 来加快程序的执行速度 1.2 进程(process) 之间有哪些通信方式? 参考:https://www.jianshu.com/p...

Shopee 后端一面准备与一道负载均衡的后端面试题

使用HashMap达到O(1)复杂度

分享一道后端的负载均衡面试题和我自己的做法。使用 java 实现。 根据 nodes 写一个 SLB(负载均衡),按 weight 来做粗略划分,注意 nodes 并不是固定的,给出的代码为了说明才固定了 3 个值。nodes 结构如下: nodes = [ { 'id': 1, 'weight': 100, # 32 core 'coun...

浅谈MySql之中的引擎

包含MySql之中的索引以及B+树的实现

作为一款被广泛使用的数据库,MySql在很多的地方都有使用。今天在这里主要是针对其中的数据库引擎,包括不同引擎的锁的力度,还有MySql之中的索引技术进行一点简要的分析和总结。 下面是参考文章链接: https://blog.csdn.net/zgrgfr/article/details/74455547 https://zhuanlan.zhihu.com/p/42106761 一...

浅谈Java之中的HashMap

基于JDK 1.8的源码解析

Hashmap不管是在我们日常的编程过程之中经常用于降低复杂度,在面试之中也经常被考察。 我在最近的学习过程之中也看到了一些很好的资料,包括源码解析或者宏观层面的讲解。在这里写下来自己的一些心得体会。 附上资料地址: https://blog.csdn.net/login_sonata/article/details/76598675 https://blog.csdn.net/v1...

Angular编程风格总结

Angular官方风格指南

浩明老哥说编程风格指南非常重要,那就咱也整一个! 在官方的风格指南里面,所有的做法都附上了原因,不论是好的还是坏的。编程风格,更像是一种程序员之间约定俗成的规定,统一的约定可以极大程度的减小阅读他人代码时候所带来的困难。 1.单一功能原则 在面向对象编程领域中,单一功能原则(Single responsibility principle)规定每个类都应该有一个单一的功能,并且该功能应该...

JavaScript基础学习(2)

从第十一节-this 开始

11-this 解析器在调用函数每次都会向函数内部传递进一个隐含的参数,这个隐含的参数就是this,this指向的是一个对象,这个对象我们称为函数执行的 上下文对象。 根据函数的调用方式的不同,this会指向不同的对象:【重要】 1.以函数的形式调用时,this永远都是window。比如fun();相当于window.fun(); 2.以方法的形式调用时,this是调用方法的...

JavaScript基础学习(1)

以GitHub上一个项目为基础

作为一个前端,要是不会 JavaScript ,那就是个笑话。 不说了,开冲 https://github.com/qianguyihao/Web/wiki 01-JS简介 JavaScript 的组成 JavaScript 分为三个部分: ECMAScript: JavaScript 的语法标准。 DOM:文档对象模型,操作网页上的元素,例如让盒子移动,变色,轮播图 ...

学习Angular官方SuperHero tutorial

附带在做项目的过程之中遇到的问题和解决方法

开始学习 Angular 。下面是对于官方教程之中自认为难点或者重点的梳理。 在文章的最后是在项目之中所遇到的问题和解决方法,持续更新~ 快速上手 Components are the fundamental building blocks of Angular applications.所以在 Angular 之中,承担功能的基本单位就是 Components。 使用 Ang...

《Spring Boot 42讲》学习笔记(4)

构建RESTful API服务

第2-8课:Spring Boot 构建一个 RESTful Web 服务 RESTful 的核心概念是“资源”,从 RESTful 的角度来看,网络之中,无论一段文本,图片,歌曲,服务等等都对应一个特定的URI,并且用URI进行表示,访问这个URI就可以得到这个资源。 资源可以有多种表现形式,也就是资源的“表述(Representation)。 此处教程所举的例子是一张图片,既可以是...

基本算法和数据结构

对自己在学习基础算法和数据结构之中的一些个人问题的记录

在给自己弥补算法和数据结构基础时候,作为小白经常有一些问题,或者是质疑算法,或者是质疑数据结构的设计,但是最后总是被自己打脸……开一个post,将这些“奇思妙想”记录下来,也防止自己以后再犯一样的错误。 1. 循环队列 循环队列,使用两个指针进行判断,一个是front队首,指向的就是队列之中的第一个元素,一个是tail队尾,指向的是队列之中的最后一个元素的后一位。这就导致了,如果只想使用一个...

《Spring Boot 42讲》学习笔记(3)

模板引擎Thymeleaf使用

第2-3课:模板引擎Thymeleaf基础使用 1. 什么是模板引擎? 模板引擎,是为了用户界面和业务数据(内容)分离而成的,其可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。 模板引擎的实现有“置换引擎”(将模板内容之中的特定标记替换,但效率底下),“解释型”模板引擎和“编译型”模板引擎等。 2. Thymeleaf介绍与其特点 具体介绍网上很多,个人理...

浅谈MVC,MVP和MVVM

对重点和差异点做一些分析

在寻找Angular教程的过程之中,发现网上有声音认为Angular是MVVM,突然觉得自己对于这些架构的区别还不够明晰,因此在这里系统的学习和总结一下,MVC,MVP,MVVM三者之间的区别和重点。 1 . MVC MVC,也就是 Model, View, Controller 三层。 谈谈MVC模式,下面是对于M,V,C的具体介绍: 1)最上面的一层,是直接面向最终用户的”...

《Spring Boot 42讲》学习笔记(2)

构建基本项目与Spring之中annotation的浅析

第2-1课:Spring Boot对基础Web开发的支持(上) Spring Boot对于Web的开发的支持很全面,包括开发,测试和部署都有支持。Spring-boot-starter-wew是spring Boot对于Web开发提供支持的组件,其主要包括RESTful,参数校验,使用Tomcat作为内嵌容器。下面是介绍: JSON的支持 JSON(JavaScript Object ...

《Spring Boot 42讲》学习笔记(1)

从Hello world开始……

第 1-1 课:Spring Boot产生的背景及其设计理念 Spring是Rod Johnson在不满当时的Java EE和EJB过于臃肿,不是所有的项目都需要这种大型框架的情况下自行开发的。在其interface21一炮走红之后,一对一的J2EE设计和开发开始流行起来。2003年,其和同伴在这个基础上开发了一个全新的框架,命名为Spring。随后Spring的发展进入了快车道。 到底...

Docker初探

初步学习Docker及相关知识

1. 什么是Docker Docker的英文定义是:Docker is a computer program that performs operating-system-level virtualization. 在阅读了资料之后,我认为Docker最开始的版本是一个使用了Linux Kernel的特性,例如cgroups和namespaces,来进行资源虚拟和封装的软件。其提供一个额外...

浅析JavaScript之中的let和const

在ES6之中,新增了let和const的变量形式,在阅读了阮一峰老师的ES6教程之后,做一点基础的分析和总结。 先上一张表格: 声明方式 变量提升 暂时性死区 重复声明 初始值 作用域 var 允许 不存在 允许 ...

使用Node.js和express实现https传输

迁移已有项目至HTTPS

折腾了一阵,实现了将已有项目迁至HTTPS。下面是主要步骤。 1. 环境: Win 10 Node.js : v8.9.4 Npm : 6.9.0 2. 准备工作 由于是将已有项目迁移至HTTPS, 因此本文不涉及初始化和创建项目,默认在已有项目的入口,本文是对 index.js 来进行操作。 2.1 安装express npm install express 2.2...

JWT相关

Studying JWT

After reading a toturial of Mr.Ruan, just make some notes to memory. 1. What is JWT ? JWT is a way for users to save information in client side, so that in server side, we don’t need to save sessi...

《网络是怎样连接的》书摘与笔记(一)

网络是怎样连接的

今天开始看《网络是怎样连接的》,有所感想的地方,记录在此,以备复习。 1. 浏览器生成消息——探索浏览器内部 热身问答 浏览器等网络应用程序并不具备网络控制功能,而是委托操作系统来控制。 本章内容 生成HTTP请求信息 向DNS服务器查询Web服务器的IP地址 DNS服务器的接力查询 委托协议栈(操作系统之中)发送消息 1.1 生成HTTP请求消息 1.1....

学习AngularJS:PhoneCat 与3月27日日常记录

官方Tutorial的一点总结和体会,版本1.3.16

教程地址在这,此处放的是1.3.16版本 1. 初始化环境的准备 1.1 npm install有什么作用? npm install这个命令读取了angular-phonecat的package.json文件(因此有很多时候提示package.json文件缺失报错),并且把以下的工具下载到node_modules目录之中。 Bower-客户端代码包管理器 Http-Serv...

梳理TCP,HTTP,HTTPS,HTTP/2

对一些面试之中可能考察的知识点做一点复习

本文对于Web岗面试之中关于网络的各种问题进行了一点整理,欢迎大家讨论。 1. TCP 1.1 TCP的三次握手 转载至TCP 三次握手四次挥手 在我看来,TCP的各种机制设计都是因为网络报文传输的不确定性(延迟了, 丢包了,网线断了 etc),因此看似繁琐的报文重复传输和字段的重复包括(每一个都有ACK)是牺牲了部分的传输效率来保证其是一个可靠的文件传输协议。在看的时候处处感叹,真...

Daily record (Angular.js)

To study Angular.js

0. 今日工作遇到问题 mongoDB要在mongoDB的Bin文件夹下面开,而不是在所要开启的项目文件夹下面开启 在Angular.js之中一定要注意好所在函数的作用域,不然会有问题,今日因为忽视了作用域,直接导致debugger死活进不去。以后要注意。 1. 梳理一下基本的Angular.js传值步骤 如何在Angular.js之中做到同步传值?按照之前所说,A...

Angular study

To study Angular

1. What is Angular Angular is a framework for people to do the data-binding and changes on website of UI more easily. AngularJS is the 1st edition of Angular. The difference between AngularJS and...

VSM 与每日记录

Studying Git

Today’s record: In Angular, the basic logic is that one component/one thing is composed of one .js file and one .html file .The .js file contains functions of the thing , and the .html file cont...

SHA Study

1.前言 也算是开始了正式的工作,这才发现计算机这个东西真的是越学东西越多,但是也越有趣吧。在学习Git的过程之中对于Snapshot机制有疑问,在上网查找的过程之中发现疑问越来越多,设计的概念,东西也越来越多。因此在这里做一个整理,记录一下每天收获。 2.RPC RPC,全程Remote Process Call, 是用来解决服务器集群之中分布式结构的各个子系统相互通信的问题。服务器的结构...

Git Study

Studying Git

找到了一个超好的教程,放在下面与大家共享 https://blog.coding.net/blog/principle-of-git 学习心得 1.snapshot到底是个啥?怎么用? 在版本修改之中,并不是每一次都修改了所有文件,如果每一次commit都将所有的数据保存一遍,那么会造成很大的开销。 所以在git之中,每个文件的修改版本会单独存放,但是在每一次commit的提交记录之中,只...

Record of intern

Just record

11/03/2019 Analysis the demand of event app (Eventbrite and Pigeonhole) Search on google & Github if there is similar projects 16/04/2019 今日经验总结: 如果想在浏览器上,当用户点击时弹出提示且一段时间自动消失并跳转到其他网页,...

Markdown basic grammer

Basic grammer of Markdown

对了Markdown没有缩进……缩进是CSS的事情,或者说将输入法切换成全角之后用力双击两下空格也是土办法hhh 1.Title Markdown mark the title with “# “, notice there is a space after ‘#’. And if you want to create multilevel of titles, such as Second...

Zhou's 1st blog

Hello World, Hello Blog

Hey 这是我的第一篇博客。 进入你的博客主页,新的文章将会出现在你的主页上.