搭建这个网站带给了我什么?
说明
本网站内容是我在学习工程中对于官网,书籍,他人博客,视频,面试题等等整合而来的学习笔记。
搭建本网站一是为了方便记录自身的学习成果,二是为了方便以后的查找。
大部分内容为转载和对不同博客的整合,如有侵权请联系我,对不起大佬。
通过这个网站,我将输入的视频,博客转换而来的知识记录下来。其次,在搭建这个网站的过程,我了解了有关云服务器,COS,OSS,CDN,Hexo等很多有趣的东西。
如何学习关于如何学习,我曾经在搜索如何做思维导图时发现了一位大佬,他的一系列视频教会了我很多东西。
他的视频告诉我:为什么小学成绩很好,后来成绩就变差了?为什么标题党的标题这么吸引人?我们到底该如何学习英语?为什么人类会主动遗忘很多事情?
以我的词汇量只能勉强用恍然大悟,豁然开朗这些词语来形容我看完视频的感觉。但这完全不能表达出我的真实感受。
这是他的B站首页 –> YJango。这里附带一期视频链接,看完后相信你也会主动地打开他的其他视频学习。 –> 【学习观09】标题党是如何用这些招数把你当宠物诱骗的
学习路线初期,我按照沈世均大佬的学习路线图学习基础知识。
下图为知乎沈 ...
MySQL日志
1:MySQL日志日志文件中记录着 MySQL 数据库运行期间发生的变化。也就是说用来记录 MySQL 数据库的客户端连接状况、SQL 语句的执行情况和错误信息等。当数据库遭到意外的损坏时,可以通过日志查看文件出错的原因,并且可以通过日志文件进行数据恢复。
MySQL日志文件分为以下几种:
重做日志(redo log)
回滚日志(undo log)
二进制日志(binlog)
错误日志(errorlog)
慢查询日志(slow query log)
一般查询日志(general log)
中继日志(relay log)
2:binlogbinlog 是 MySQL server 层维护的一种二进制日志,这个文件记录了 MySQL 所有的 DML 操作。通过 binlog 日志我们可以做数据恢复,增量备份,主主复制和主从复制等等。
复制:MySQL 在主库开启 binlog,主库把它的二进制日志传递给从库并回放来达到主从数据一致的目的。
数据恢复:指通过 mysqlbinlog 工具恢复数据。
增量备份:指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被 ...
面试题-数据库
1:MySQL1-1:为什么要使用数据库为了更高效且条例分明的存储数据,能够更迅速和方便地管理数据。
数据库可以结构化存储大量的数据信息,方便用户进行有效的检索和访问。
数据库可以有效地保证数据信息的一致性,完整性,降低数据冗余
数据库可以满足应用的共享和安全方面的要求,把数据放在数据库中在很多情况下也是出于安全的考虑。
数据库技术能够方便智能化地分析,产生新的有用信息。
1-2: 什么是 SQL?
SQL 指结构化查询语言,全称是 Structured Query Language。
SQL 让您可以访问和处理数据库,包括数据插入、查询、更新和删除。
SQL 在 1986 年成为 ANSI(American National Standards Institute 美国国家标准化组织)的一项标准,在 1987 年成为国际标准化组织(ISO)标准。
1-3:什么是 MySQL?MySQL 是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
2:关系型数据库与非关系型数据库2-1:非关系型数据库和关系型数 ...
面试题-计算机网络
1:各层协议1-1:OSI 与 TCP/IP 各层结构和功能,以及相应的协议
转至OSI 与 TCP/IP 各层结构和功能,以及相应的协议
功能:
应用层:针对特定应用的协议,为应用程序提供服务并规定应用程序中通信相关的细节。包括文件传输、电子邮件、远程登录等协议。
表示层:将来自下一层的数据转换为上层能够处理的格式。负责数据转换、格式化、文本压缩等。
会话层:负责建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据传输相关的管理。
传输层:管理两个节点之间的数据传输。
网络层:地址管理和路由选择。
数据链路层:互联设备之间传送和识别帧。
物理层:以二进制形式在在物理媒体上传输数据。
协议:(1)应用层:TELNET、FTP、TFTP、SMTP、SNMP、HTTP、BOOTP、DHCP、DNS、SSH(2)表示层:文本:ASCII,EBCDIC;图形:TIFF,JPEG,GIF,PICT;声音:MIDI,MPEG,QUICKTIME(3)会话层:NFS、SQL、RPC 、X-WINDOWS、ASP(APPTALK 会话协议)、SCP(4)传输层:TCP、UDP、S ...
面试题-JVM
1:JVM1-1:JVM1.8 新特性在 1.7 之前在 (JDK1.2 ~ JDK6) 的实现中,HotSpot 使用永久代实现方法区,而在 1.8 之后方法区被彻底移除了,而使用元空间取而代之,方法区位于堆内存中,而元空间使用的是本地内存。元空间存储的是类的元数据,常量池还是在堆内存中。
1-2:JDK1.8 默认垃圾回收器使用 java -XX:+PrintCommandLineFlags -version 命令查看
1234-XX:InitialHeapSize=266668608 -XX:MaxHeapSize=4266697728 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGCjava version "1.8.0_201"Java(TM) SE Runtime Environment (build 1.8.0_201-b09 ...
面试题-并发
1:进程1-1:什么是进程进程是程序的一次执行过程,进程是程序运行和资源分配的基本单位。
1-2:进程的状态多进程和多线程都分为五个阶段
创建
就绪
运行
阻塞
死亡
1-2-1:进程的状态变迁
1-3:什么是 PCB存放进程的管理和控制信息的数据结构称为进程控制块。它是进程管理和控制的最重要的数据结构,每一个进程均有一个 PCB,在创建进程时,建立 PCB,伴随进程运行的全过程,直到进程撤消而撤消。
1-3-1:PCB 具体包含什么信息呢?
进程标识符 name
进程当前状态 status
进程相应的程序和数据地址
进程资源清单
进程优先级 priority
CPU 现场保护区 cpustatus
进程同步与通信机制
进程所在队列 PCB 的连接字
与进程有关的其他信息
1-3-2:多个 PCB 是如何组织的呢?
线性表方式线性表方式将所有进程控制块的首地址连续存储在一整块内存空间中,操作系统每次查找目标进程时,只需要遍历这张表,就可以找到相应的进程控制块,进而控制目标进程。
索引表方式索引表方式可以看做是线性表方式的“改进版”,它根据当前各个进程不同的执行状态,分别建立就绪索 ...
面试题-序列化
1:Java 序列化与反序列化是什么序列化是将对象转换为可传输格式的过程。 是一种数据的持久化手段。一般广泛应用于网络传输,RMI 和 RPC 等场景中。
反序列化是序列化的逆操作。
序列化是将对象的状态信息转换为可存储或传输的形式的过程。一般是以字节码或 XML 格式传输。而字节码或 XML 编码格式可以还原为完全相等的对象。这个相反的过程称为反序列化。
2:为什么需要序列化与反序列化在 Java 中,我们可以通过多种方式来创建对象,并且只要对象没有被回收我们都可以复用该对象。但是,我们创建出来的这些 Java 对象都是存在于 JVM 的堆内存中的。只有 JVM 处于运行状态的时候,这些对象才可能存在。一旦 JVM 停止运行,这些对象的状态也就随之而丢失了。
但是在真实的应用场景中,我们需要将这些对象持久化下来,并且能够在需要的时候把对象重新读取出来。Java 的对象序列化可以帮助我们实现该功能。
3:Java 对象如何实现序列化与反序列化
实现 Java.io.Serializable接口。
实现Externalizable接口
3-1:如何实现序列化
在 Java 中,只要一个 ...
面试题-常用类
1:枚举1-1:enum 线程安全因为枚举类的实例都是静态常量,而静态属性都是在类加载之后就初始化。当一个 Java 类第一次被真正使用到的时候静态资源被初始化、Java 类的加载和初始化过程都是线程安全的。所以,创建一个 enum 类型是线程安全的。
1-2: switch 是否可用于 String 类型的判断可以,实际上会将 String 转为 hashcode,再通过 equals 判断是否相等。
2:时间类2-1:SimpDateFormat 是线程不安全的类,如何改为线程安全因为 SimpDateFormat 内部有一个 Calendar 类的引用,多线程或者设为静态属性会共用这个引用,导致处理时会出现错误。
加锁
使用 ThreadLocal
DateUtils
使用 jdk1.8 的 DateTimeFormatter 代替。
3:Object 类3-1:Object 类有哪些方法
getClass()
hashCode()
equals()
clone()
toString()
notify()
notifyAll()
wait()
finalize()
3-1- ...
面试题-String
1:String 数据结构1-1:String 为什么是 final 的?
为了实现字符串池
为了线程安全
为了实现 HashCode 的不变性
1-2:String 的内部属性String 内部其实就是一个 char 数组。
1private final char value[];
1-3:String 的常用方法
charAt()
indexOf()
replace()
subString()
…
1-4:subString 原理通过传入的参数构建一个新的 String 对象并返回这个对象。
12345678910public String subString(int beginIndex) { if (beginIndex < 0) { throw new StringIndexOutOfBoundsException(beginIndex); } int subLen = value.length - beginIndex; if (subLen < 0) { thro ...
面试题-IO
1:IO 流
Byte(字节)是计算机操作数据的最小单位由 8 位 bit 组成 取值(-128-127)
Char(字符)是用户的可读写的最小单位,在 Java 里面由 16 位 bit 组成 取值(0-65535)
1-1:为何还要有字符流在各种编码中,一个英文字符就是一个字节。如果只有英文就不会有问题,但是中文一般会占据多个字节。比如 Java 标准采用的 Unicode 编码中就占用两个字节,UTF-8 中占用三个字节,如果不知道字符编码,一次读取一个字节,可能就会将一个字符的多个字节分割开,导致乱码。
字符流是由 Java 虚拟机将字节转换得到的,问题就出在这个过程还算是非常耗时,并且,如果我们不知道编码类型就很容易出现乱码问题。所以, I/O 流就干脆提供了一个直接操作字符的接口,方便我们平时对字符进行流操作。如果音频文件、图片等媒体文件用字节流比较好,如果涉及到字符的话使用字符流比较好。
1-2:字节流和字符流区别
字节流操作的基本单位为字节,字符流操作的基本单元为 Unicode 单元。
字节流默认不使用缓冲区,字符流使用缓冲区
字节流通常用处理二进制数据,实际上 ...