![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Basic Knowledge of Coding
Basic Knowledge of Coding
Tech In Pieces
这个作者很懒,什么都没留下…
展开
-
公网地址和私网地址有哪些类型?
公网地址是值得在互联网上可以直达的地址。我们自己有一个公网地址 可以让我们访问其他公网 或者被其他公网地址用户访问。这也是为什么被称作“互联网”。私网地址 是指在机构内部用的地址 这些地址有明显的特征。我们看一眼就知道这是私网IP address。我们将所有的IP分为三类 ABC类。每一类中有划出来的一部分的私有地址 和划出来得一部分保留地址。①A类地址。A类地址第一字节为网络地址,其他三个字节为主机地址。A类地址范围为1.0.0.1~127.255.255.254.10.X.X.X是私有地址,(原创 2022-01-20 05:57:44 · 10198 阅读 · 0 评论 -
面试向:How to use bug tracing to debug?
我们知道 很多时候 项目出了问题,找出来到底是哪里出的问题是一个很棘手的事情。所以这就是我们为什么要添加ELK和zipkin service, use log4j去储存打印所有的日志很重要。因为一旦出了问题,我们就知道哪里出了问题。当然,如果底层出了问题,这个时候就会出现级联的问题。这个时候 利用log trace span就很重要了。我们要明确每一个日志的链路。一旦出了问题,就能很快找到问题根源。在微服务架构中,我们用zipkin来做log tracing. 就是涉及到所谓的traceId和span原创 2022-01-20 05:55:24 · 131 阅读 · 0 评论 -
几种缓存更新机制和缓存过期策略
这两个东西是缓存实现的底层原理。虽然我们现在都直接用redis或者memcache等第三方缓存 但是知道这些机制和策略仍然十分重要。三种缓存更新机制:Cache aside: 就是我们常见的 请求-命中/失效-更新。同时更新数据库和缓存read/write through: 先更新缓存 然后缓存负责同步更新数据库write behind caching: 先更新缓存 然后异步更新数据库(不过也会导致数据不consistency的情况)三种缓存数据过期策略:FIFO:最先进来的会被第一个淘汰原创 2022-01-20 05:59:12 · 769 阅读 · 0 评论 -
Callback, Fallback和Rollback是什么意思?有什么区别?
fallback意思是切换备用计划(备用计划可以是返回之前的状态,也可以是切换到备用机,也可以是plan B)。rollback意思是返回原来的状态(即没更新前的可用稳定状态)。原创 2021-12-17 05:29:27 · 2444 阅读 · 0 评论 -
Web Server, HTTP Server, Application Server, Tomcat,Servlet之间都是什么关系?
web server == http server. 这个是接受HTTP请求的application server是放业务逻辑的。也就是后端。web server, or http server, 负责接受并相应http请求。接受了这个请求后 要转手给application server进行处理。有一些application server可以充当http server.Tomcat是application server. used for executes Java servlets, renders原创 2021-12-11 05:31:33 · 403 阅读 · 0 评论 -
移动端和网页端开发的区别
我们有:移动端APP移动端网页PC端APPPC端网页。这四个在开发过程中有什么区别?只要有网页 必然考虑与网页的兼容性(还有适应不同大小的屏幕的问题)。只要有APP(客户端) 必然考虑系统是PC端还是移动端。开发的时候有啥不同?除了用的技术栈可能不一样之外。还要考虑移动端对于便捷性的要求。这就涉及到响应速度等等等等。PC和移动端的区别:两者处理性能的差异导致了我们必须在移动端上更快的响应。操控方式的不同屏幕尺寸的不同。使用环境的巨大差异:PC:相对稳定。移动端:可能很不稳定(网络原创 2021-12-08 05:41:21 · 1626 阅读 · 0 评论 -
HTTP, WebSocket, TCP, UDP, 长链接,短链接,双向链接,单向链接的区别
HTTP Websocket TCP UDP 长链接 短链接 单项通信 双向通信TCP: 面向连接的通信协议 长链接就是一次读写完成链接不关闭 短链接就是一次读写之后可以closeUDP:面向无链接的通信协议 因为是无链接 所以没有长短链接HTTP的数据利用TCP协议链接 但是HTTP是无链接的 即每次链接都只处理一个单向请求websocket和http一样是应用层建立在TCP上的协议 他是双向通信协议 支持长链接短链接socket和websocket有什么区别?socket不是协议 他是一个A原创 2021-11-29 05:50:54 · 3398 阅读 · 0 评论 -
WebSocket和Ajax的区别?
我们知道WebSocket是用来做双向通信的 而Ajax是用来做局部刷新的。但是两者之间是有联系的。两者都能实现双向通信原创 2021-11-29 05:50:19 · 854 阅读 · 0 评论 -
Java反射机制的应用场景
我们知道 reflection是java的高级 特性之一。在底层框架中被频繁使用。比如 JDBC加载数据库的JDBC driver. Spring中加载Bean对象。首先 什么是反射?反射就是在运行状态能够动态的获取该类的属性和方法,并且能够任意的使用该类的属性和方法,这种动态获取类信息以及动态的调用对象的方法的功能就是反射。反射执行原理:我们知道 对于类对象的编译 一般是.java file compile to .class file and then loaded to JVM (clas原创 2021-11-29 05:18:17 · 786 阅读 · 0 评论 -
对于REST的stateless的一点认识
REST里面的无状态 是指的HTTP无状态。而HTTP的无状态 事之服务器没有保存客户端的状态信息(如果保存 一旦这个服务器宕机 我们启用备用服务器 除非这个服务器也同步备份了状态 否则一切都会回到最初的起点 )所以客户端每次要自己带上自己当前的状态区请求服务器。比如说登录 我们通过cookie来通过客户端保持登录状态(这也是为什么cookie在客户端)那么session算是stateless还是stateful呢?https://zhidao.baidu.com/question/228788699.原创 2021-10-21 05:03:37 · 142 阅读 · 0 评论 -
软件的版本号
Java8-Java11- Java14Angular framework: Angular2, angular6[since 2018]springboot 2: frameworkKafka: 2(open source streaming processing framework)GitMaven: pom.xmlJunit 4: it’s a testing framework , a testing libraryMockito:2: its a mocking framwork.原创 2021-11-25 05:30:25 · 1372 阅读 · 0 评论 -
面试向:什么是Java bean?
有没有注意到,我们再写class的时候 如果需要获取这个属性的什么变量 我们一般推荐使用Getter()或者setter()功能。跟进一步说 我们也见过IsXXX() addXXXListener() XXXEvent()之类的函数。有没有想过是为什么呢?因为我们如果直接取用某类的某个属性 当然是没问题但是如果我们之后升级这个包 决定取消这个属性,然后用户升级 发现大量报错。所以 这就是一直在说的“所有版本必须向下兼容”而使用getter or setter 可以有效地解决这个问题 这样就算取消掉原创 2021-10-31 04:49:31 · 205 阅读 · 0 评论 -
面试向:What‘s Websockets?
what’s web socket?it’s a tech that allows a client to establish a two way communication with the server. (because in HTTP, it’s always one way, the server can only contact with client after it got contact by client.) and it’s more efficient when sending d原创 2021-10-31 04:48:07 · 264 阅读 · 0 评论 -
Java: Class and Object class
Java里面 有个神奇的Class 叫Object class 这个class可以说是万物之源。还有个更神奇的class, 叫 Class class.这个类有点意思。Class类 和反射有关。现在我们不看反射 看class类这个类 和我们别的类一样 也有构造方法 也有正常方法。但是!这个class类的构造方法是private的!唯一一个 代表只有Java虚拟机可以通过new创建Class对象。但是这不代表我们得不到Class对象。因为每个类都有一个隐含的静态成员变量class 代表自身 或者原创 2021-10-31 04:47:40 · 119 阅读 · 0 评论 -
Java:关于数据,数据结构,容器的一些思考
其实不管是我们自定义的一些类 还是说java中预定义的类,大多数都是“数据的容器”,或者我们叫container.比如说array arraylist, hashset hashmap说到底 都是数据的容器。真的称得上数据的 还要是那八大基本类型和包装类。你说sString算不算是数据?其实不算的 他只是连续的char的容器而已。但是很多时候 我们称之为Object的东西 是不分这些的 比如说new ArrayList<>() 我们称之为Object 或者instance。再比如说Inte原创 2021-10-31 04:46:47 · 159 阅读 · 0 评论 -
Java: Garbage Collector面试问题
什么是grabage collector?the way that Java used to automatically collect unused memory. it’s used to free heap memory by destorying the objects that don’t contain a reference哪些内存需要回收?当程序计数器为0时回收。或者当可达性分析算法(tracing collector)达不到这个reference时候回收什么时候需要回收?在hea原创 2021-10-31 04:46:12 · 158 阅读 · 0 评论 -
Java: String convert to 万物(因为键盘输入总是String)
不管是String转化成什么,都由这个包装类的工具类来承担。比如 String转化为booleanBoolean.parseBoolean() Boolean.valueOf()或者String转化为int 则Integer.parseInt() Integer.valueOf()但是其他的class转化为String?如果是Build-in的类 一般都会自动调用toString() 所以根本不用管。如果时array 就用array的工具类 Arrays.toString() 这个需要显式的写原创 2021-10-31 04:45:09 · 161 阅读 · 0 评论 -
Git: Commit Push Pull Fetch Merge的含义和区别
以前学习GIT 是糊里糊涂。后来必须要用 倒是也大体掌握了应该如何去用,但是原理也是有点糊里糊涂。现在终于可以轻松的理解Git理论知识了 现在就来深化一下。git clone: clone 远端库到本地git checkout -b:新建和切换分支git add: 从工作目录添加到暂存区 如果git add . 就表示把所有修改了的都放到暂存区 如果git add 就可以只暂存一个文件。git commit: 本地修改的文件提交到本地库git push: 本地库中的最新信息发给远程库(之前在原创 2021-10-13 04:42:55 · 1215 阅读 · 0 评论 -
Intellij快捷键总结
常见的我们已经比较熟悉的ctrl+A全选ctrl+F findctrl+shift+F find from whole project or in some folder.ctrl+R replacectrl+C/X/V/Z copy cut paste revokectrl+shift+alt+C/X/V/Z无格式复制粘贴ctrl+/注释代码ctrl+Y 删除光标所在的行或者选中的行ctrl+D 复制光标所在的行挥着选中的行 并且把复制内容插入到光标位置下面。ctrl+W +W 递进式原创 2021-09-30 05:00:25 · 103 阅读 · 0 评论 -
Windows: Ctrl,Alt, Shift等快捷键的含义
最近需要大量使用intellij 所以就要熟记很多快捷键 很多都是alt ctrl的组合。于是突发奇想能不能不要死记快捷键 因为快捷键记得多了也就变成了“并不快捷需要很长时间想的键”,所以因此在这里系统整理一下。ctrl:我们都知道这个是control的缩写 用来执行命令 大部分快捷键都与她相关。shift 切换辅助控制键 shift键就是对原有功能进行切换 比如大小写切换 ctrl+tab切换标签 shift+ctrl+tab为反向切换标签。delete删除 shift+delete是永久删除。Al原创 2021-09-30 04:58:44 · 3482 阅读 · 0 评论 -
Java: Tomcat到底是干嘛的?
他是web容器我们在做web项目的时候 多数需要http协议。服务器如何处理这些请求呢?在服务器端 我们有serlvet这个基于Java的程序、servlet会通过配置文件拦截你的请求 处理并且返回response。而tomcat 就是用来创建servlet的 他被称为web容器 意思就是 我们可以直接把写好的网站放进去就能运行。他就是一个轻量级的服务器。...原创 2021-09-30 04:55:47 · 361 阅读 · 0 评论 -
Servlet: What is servlet after all?到底什么是Java Servlet?
Java Servlet: 这一一个运行在server上的程序 用来处理http请求和返回response.他是一个中间层,是http服务器的数据库和应用程序之间的中间层。Servlet life cycle:constructorinitservice executiondestry原创 2021-09-30 04:55:07 · 79 阅读 · 0 评论 -
Http Get/Post Request结构
Get request:request line + request headerGET + resource path(+?+request parameters) + HTTP/1.1header: key value pairPost request:request line + request header + request bodyPOST + ? + request parameters + HTTP/1.1key value pairrequest body: data se原创 2021-09-30 04:52:47 · 107 阅读 · 0 评论 -
HTTP Method速记
Idempotent methods:幂等函数:就是说无论我们调用多少次 出来的结果都一样。这种函数我们不用担心 如果调用途中出现问题 或者二次调用出现的错误了。有哪些HTTP方法呢?GET方法意思是获取被请求URI(Request-URI)指定的信息,该信息以实体的型式呈现。如果请求URI指向的是一个数据生成过程,那么这个生成的数据应该作为一个实体在响应中返回。GET请求的响应是可缓存的。HEAD方法和GET方法一致,区别在于HEAD方法不需要服务器在响应里返回消息主体。HEAD请求响应里HTT原创 2021-09-27 05:45:21 · 90 阅读 · 0 评论 -
String: new和直接创建的区别
String s = “abc”;String s = new String(“abc”);第一种,交String literal.像其他primitive 一样,这个东西会被储存在公共常量池里面。之所以叫公共,是因为如果其他String也被这样创建,并且值一样,那么两者就会指向常量值中的同一值(也是同一地址)。第二种,叫String object.这种对象会被保存在堆中。每个字符串对象都有自己的储存(有地址 而且不同)。但是String值之间的比较 最好只用equals().因为equal.原创 2021-08-26 04:12:46 · 836 阅读 · 0 评论 -
LeetCode必备:Java数据结构的常用方法
基础数据类型和字符串:基础操作符 比如说+ == !=之类的 只能用于基础数据 类型和字符串能用。而且尤其注意相比较两个对象的值只能用equals()字符串的相关方法:Stringvar.length(): intvar.indexOf(“a”):intvar.charAt(int index): charvar.substring(int beginIndex): Stringvar.substring(int beginIndex, int endIndex): String //包原创 2021-07-23 04:45:53 · 459 阅读 · 0 评论 -
LeetCode必备:自定义比较器
场景一:一个字符串数组 按照字符串长度排序一个二维数组 按照数组的第一列的大小进行排序。Arrays.sort(intervals, (a,b)->(a[0]-b[0]))Arrays.sort(intervals, (a,b)->(a.length() - b.length()))场景二:定义最大堆和最小堆PriorityQueue minheap = new PriorityQueue<>();PriorityQueue maxheap = new Priorit原创 2021-07-22 05:16:09 · 373 阅读 · 0 评论 -
Visual Studio Code如何多光标编辑多处?(尤其适合html)
首先,批量替换不属于本文章的讲解范畴,因为就是一个ctrl+F。我们今天要讲的是多光标同时编辑。重命名变量:如果我们需要重命名某个变量,那么就需要在其声明定义处 选中这个变量 然后按f2 会弹出一个窗口 在里面输入内容之后按回车 所有该变量都会被重命名。(注意,在js文件中,如果这个变量没有用var或者const或者let声明,会无法重命名)同一列多光标,比如下图:按住Ctrl + Alt,再按键盘上向上或者向下的键,可以使一列上出现多个光标。不同列多光标,比如下图:按住alt,用鼠标左原创 2021-06-29 04:38:33 · 1596 阅读 · 0 评论 -
最容易上手的Git指南
一般来说 用git也就那几种情况,要么是pull下最新代码,要么是add自己的修改,要么就是看上次提交了哪些文件等等等等,大体流程如下。宏观上来说,首先 对于当前我们要解决的问题,比如修改视图,我们要建立自己的分支,可以叫做ChangeView,并把代码从main branch上pull到自己的分支上,并与本地编辑器链接。在本地编辑器上进行修改,修改过后跑的没有问题 就commit到远程的ChangevView分)。然后就不用管了,管理员会拉取这个分支然后合并到主分支上。然后我们要解决下一个问题的时候,原创 2021-06-22 04:52:19 · 195 阅读 · 0 评论 -
HTTP都有哪些方法?(面试向)
HTTP1.0定义了三种请求方法: Get(请求页面) Post(发布页面) Head(请求报头)HTTP2.0新增了六种请求方法:OPTIONS(查看服务器性能), Put(传送数据以取代指定文档), Patch(Put方法的升级版,对已知资源进行局部更新), Delete(请求服务器删除指定页面), Trace(traceback服务器收到的请求,用来测试和诊断), Connect(协议预留)...原创 2021-06-21 05:02:51 · 194 阅读 · 0 评论 -
什么是Race Condition?和死锁有什么区别?
Race Condition: 多个线程同时访问相同的资源并进行读写操作(都可以动)Deadlock: 两个或者两个以上的进程在执行的过程中,因为争夺资源而造成的一种互相等待现象。(都不动)原创 2021-06-21 05:01:46 · 912 阅读 · 0 评论 -
Localhost到底是干什么用的?
localhost-WikiPedialocalhost是一个在计算机网络中用于表示“此计算机”的主机名。它被用于通过本地环回网络接口,来访问本机运行的服务,并且将会绕过任何物理网络接口硬件。运用本地环回机制,便可在主机上运行网络服务,期间不须安装实体网络接口卡,也无须将该服务开放予主机所在网络。例如,在设置好本地安装的网站后,可通过http://localhost这一网址,来访问本地网站。localhost这个主机名称一般会解析为IPv4本地环回地址127.0.0.1和IPv6本地环回地址[::1]原创 2021-06-21 04:59:53 · 7173 阅读 · 0 评论 -
What‘s the difference between ‘npm run dev‘ and ‘npm run star‘t
No difference.check the package.json file for your vue projectin the scripts secton, the starting method is npm run dev.they are aiming for the same goal: run the statment in dev section(which is “webpack-dev-server --inline --progress --config bu…”).原创 2021-06-21 04:58:56 · 89 阅读 · 0 评论 -
npm in node.js/vue.js, pip in Python and Maven in Java
They are command statement, and both of them are used for install dependencies.原创 2021-06-21 04:51:14 · 45 阅读 · 0 评论 -
SOLID Principles
It’s a very important principle in OOP.Single responsibility : every single class should just do one thingOpen closed: extension but not modificationLiskov substitution: any instance in any place, we can just replace it with it’s subclass instance witho原创 2020-10-29 10:15:36 · 111 阅读 · 0 评论 -
TCP的拥塞控制方法
第一种:慢开始(slow-start)和拥塞避免(congestion avoidance) 慢开始算法就是从小到大逐渐增加发送窗口,而拥塞避免算法是让拥塞窗口缓慢的增长,即每经过一个传输轮次,拥塞窗口增加1;第二种:快重传(fast retransmit)和快恢复(fast recovery) 当发送方收到三个重复确认时就会执行“乘法减小”,即把拥塞门限减半,但是此时发送方会认为网络很有可能没有发生拥塞,所以会把拥塞窗口cwnd设置为慢开始门限,然后开始执行拥塞避免算法。总结一下 就是慢算法和拥塞避免原创 2020-11-01 01:34:09 · 731 阅读 · 0 评论 -
TCP 发送端如何控制自己的发送频率?
如何利用TCP协议进行流量控制?用滑动窗口机制(sliding windows)这种机制能够让数据传输端的发送窗口不能超过接收端给出的接收窗口的数值,这个数值是以字节为单位,而且可以根据情况动态的调整。...原创 2020-11-01 01:42:10 · 840 阅读 · 0 评论 -
TCP与UDP的区别
最大的区别:TCP这个协议保证了在收发数据之前,需要和对方建立可靠的链接(三次握手来实现)而且每次断开连接的时候 需要四次挥手来断开。而UDP,即用户数据报协议,他是一个非面向连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。总结TCP与UDP的区别:1、基于连接与无连接;(connection and connectionless)2、对系统资源的要求(TCP较多,UDP少);3、UDP程序结构较简单;4、流模式与数据报模式原创 2020-11-01 02:20:49 · 136 阅读 · 0 评论 -
Cookie和Session有什么区别?
They are both used to store information.cookies: they are stored in the client computer. for example: the name, address that can be automatically filled in a form of a site.sessions: they are be stored both in client side and in the server side. a sessio原创 2020-11-01 03:05:56 · 152 阅读 · 0 评论 -
什么是死锁?(Dead lock) 如何解决死锁问题?
different process requests for the same resource and they both wait others to make a move first.死锁发生需要有什么条件?互斥,就是在一段时间内某一资源自能由一个进程占有请求和保持,就是说在当前进程已经占有资源的情况下,还在请求其他已经被其他进程占有的资源,就是既不得不到想要的,也不愿意放开已经拥有的。不剥夺 就是说进程已经获得资源 自能由自己释放 其他人夺不走环路等待 意思是死锁发生的时候 必然存在一原创 2020-11-02 01:43:56 · 686 阅读 · 0 评论