MacOS-M1软件安装-Github关联
确定git已经完成安装
配置用户名称跟邮箱配置
123xuwei@xuweideMacBook-Pro ~ % git config --global user.name xuweixuwei@xuweideMacBook-Pro ~ % git config --global user.email 2427340869@qq.comxuwei@xuweideMacBook-Pro ~ % git config -global push.default simple
检查
1234567xuwei@xuweideMacBook-Pro ~ % git config -lcredential.helper=osxkeychainsafe.directory=/opt/homebrew/Homebrew/Library/Taps/homebrew/homebrew-coresafe.directory=/opt/homebrew/Homebrew/Library/Taps/homebrew/homebrew-caskuser.name=xuweiuser.email=2427340869 ...
黑马程序员-Redis
Redis 入门问题的抛出出现的问题:
海量用户
高并发
罪魁祸首——关系型数据库:
性能瓶颈:磁盘IO性能低下
扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群
解决思路
降低磁盘IO次数,越低越好 —— 内存存储
去除数据间的关系,越简单越好 —— 不存储关系,仅存储数据
Nosql简介NoSQL:即Not-OnlySQL(泛指非关系型的数据库),作为关系型数据库的补充。
作用:应用对于海量用户和海量数据前提吓得数据处理问题。
特征:
可扩容,可伸缩
大数据量下得高性能
灵活得数据模型
高可用
常见Nosql数据库:
Redis
memcache
HBase
MongoDB
解决方案(电商场景)
Redis概念:Redis(REmote DIctinary Server)是用C语言开发的一个开源的高性能键值对(key-value)数据库特征:
数据间没有必然的关联关系
内部采用单线程机制进行工作
高性能。官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s。
多数据类型支持:string(字符串类型 ...
面试-计算机网络
基础说下计算机网络体系结构计算机网络体系结构,一般有三种:OSI 七层模型、TCP/IP 四层模型、五层结构。
简单说,OSI是一个理论上的网络通信模型,TCP/IP是实际上的网络通信模型,五层结构就是为了介绍网络原理而折中的网络通信模型。
OSI 七层模型OSI 七层模型是国际标准化组织(International Organization for Standardization)制定的一个用于计算机或通信系统间互联的标准体系。
应用层:通过应用进程之间的交互来完成特定网络应用,应用层协议定义的是应用进程间通信和交互的规则,常见的协议有:HTTP FTP SMTP SNMP DNS.
表示层:数据的表示、安全、压缩。确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。
会话层:建立、管理、终止会话,是用户应用程序和网络之间的接又。
运输层:提供源端与目的端之间提供可靠的透明数据传输,传输层协议为不同主机上运行的进程提供逻辑通信。
网络层:将网络地址翻译成对应的物理地址,实现不同网络之间的路径选择, 协议有ICMP IGMP IP 等.
数据链路层:在物理层提供比特流服务 ...
面试-Java容器
集合概述常见的集合集合相关类和接又都在java.util中,主要分为 3 种:List(列表)、Map(映射)、Set(集)。
其中Collection是集合List、Set的父接口,它主要有两个子接口:
List :存储的元素有序,可重复。
Set :存储的元素无序,不可重复。
Map是另外的接口,是键值对映射结构的集合。
List, Set, Queue, Map 四者的区别
list (对付顺序的好帮手): 存储的元素是有序的、可重复的。
Set (注重独一无二的性质): 存储的元素是无序的、不可重复的。
Queue (实现排队功能的叫号机): 按特定的排队规则来确定先后顺序,存储的元素是有序的、可重复的。
Map (用 key 来搜索的专家): 使用键值对(key-value)存储,类似于数学上的函数 y=f(x),”x” 代表 key,”y” 代表 value,key 是无序的、不可重复的,value 是无序的、可重复的,每个键最多映射到一个值。
如何选用集合?主要根据集合的特点来选用,比如我们需要根据键值获取到元素值时就选用 Map 接口下的集合,需要排序时选择 ...
面试-Mysql
基础什么是内连接、外连接、交叉连接、笛卡尔积呢
内连接(inner join):取得两张表中满足存在连接匹配关系的记录。
外连接(outer join):不只取得两张表中满足存在连接匹配关系的记录,还包括某张表(或两张表)中不满足匹配关系的记录。
交叉连接(cross join):显示两张表所有记录一一对应,没有匹配关系进行筛选,它是笛卡尔积在SQL中的实现,如果A表有m行,B表有n行,那么A和B交叉连接的结果就有m*n行。
笛卡尔积:是数学中的一个概念,例如集合A={a,b},集合B={1,2,3},那么A✖B={<a,o>,<a,1>,<a,2>,<b,0>,<b,1>,<b,2>,}。
那MySQL 的内连接、左连接、右连接有有什么区别?MySQL的连接主要分为内连接和外连接,外连接常用的有左连接、右连接。
inner join 内连接,在两张表进行连接查询时,只保留两张表中完全匹配的结果集
left join 在两张表进行连接查询时,会返回左表所有的行,即使在右表中没有匹配的记录。
right joi ...
面试-Java基础
基本概念与常识什么是字节码?采用字节码的好处是什么?在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以, Java 程序运行时相对来说还是高效的(不过,和 C++,Rust,Go 等语言还是有一定差距的),而且,由于字节码并不针对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行。
我们需要格外注意的是 .class->机器码 这一步。在这一步 JVM 类加载器首先加载字节码文件,然后通过解释器逐行解释执行,这种方式的执行速度会相对比较慢。而且,有些方法和代码块是经常需要被调用的(也就是所谓的热点代码),所以后面引进了 JIT(just-in-time compilation) 编译器,而 JIT 属于运行时编译。当 JIT 编译器完成第一次编译后,其会将字节码对应的机器码保存下来,下次可以直接使用。而我们知道,机器码的运行效率肯定是高于 J ...
面试-Java并发编程
基础使用多线程的意义先从总体上来说:
从计算机底层来说: 线程可以比作是轻量级的进程,是程序执行的最小单位,线程间的切换和调度的成本远远小于进程。另外,多核 CPU 时代意味着多个线程可以同时运行,这减少了线程上下文切换的开销。
从当代互联网发展趋势来说: 现在的系统动不动就要求百万级甚至千万级的并发量,而多线程并发编程正是开发高并发系统的基础,利用好多线程机制可以大大提高系统整体的并发能力以及性能。
再深入到计算机底层来探讨:
单核时代: 在单核时代多线程主要是为了提高单进程利用 CPU 和 IO 系统的效率。 假设只运行了一个 Java 进程的情况,当我们请求 IO 的时候,如果 Java 进程中只有一个线程,此线程被 IO 阻塞则整个进程被阻塞。CPU 和 IO 设备只有一个在运行,那么可以简单地说系统整体效率只有 50%。当使用多线程的时候,一个线程被 IO 阻塞,其他线程还可以继续使用 CPU。从而提高了 Java 进程利用系统资源的整体效率。
多核时代: 多核时代多线程主要是为了提高进程利用多核 CPU 的能力。举个例子:假如我们要计算一个复杂的任务,我们只用一 ...
面试-Mybatis
基础说说什么是MyBatis?
优点:Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
缺点:SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。
ORM是什么?
ORM(Object Relational Mapping),对象关系映射,是一种为了解决关系型数据库数据与简单Java对象(POJO)的映射关系的技术。简单来说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系型数据库中。
为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?Hibernate属于全自动 ...
软件安装-JDK
基于CentOS8.2安装JDK8(压缩包下载版)下载 JDK因为Java JDK区分32位和64位系统,所以在安装之前必须先要判断以下我们的Centos系统为多少位系统,命令如下:
1uname -a
解释:如果有x86_64就是64位的,没有就是32位的。后面是X86或X86_64则内核是64位的,i686或i386则内核是32位的
由此可以判断我的centos为64位系统,故而我需要下载64位系统的JDK。
下载JDK,地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
安装Java JDK8.0然后在Xshell中使用命令跳转到local下面创建者自己的文件夹:weishao
123cd usr/local/ mkdir weishao cd weishao
然后使用Xftp将jdk复制到weishao文件夹下面,如图所示:
将上传的jdk解压,解压之后重命名为jdk8,如图所示:
12tar -zxvf jdk-8u301-linux-x ...
软件安装-MySQL
基于CentOS8.2安装MySQL检测系统是否已安装Mysql执行命令rpm -qa | grep mysql 如果是下图所示,表示已安装
卸载命令如果要重新安装需要选择执行以下命令进行mysql卸载
12rpm -e mysql // 普通删除rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删
rpm安装下的需逐行删除
12345678rpm -e --nodeps mysql-community-debugsource-8.0.30-1.el8.x86_64rpm -e --nodeps mysql-community-icu-data-files-8.0.30-1.el8.x86_64rpm -e --nodeps mysql-community-server-debuginfo-8.0.30-1.el8.x86_64rpm -e --nodeps mysql-community-libs-debuginfo-8.0.30-1.el8.x86_64rpm -e --nodeps my ...