sql

Git

作用
git config --list
三个区域:工作区,暂存区,本地仓库
git init
git clone url
git status
git add
.gitignore
git diff
git diff staged
git commit -m "commit说明"
git commit -am "commit说明"
git rm 文件
git rm --cached 文件
git mv 旧文件 新文件
git log --shortstat --pretty=oneline --committer
git commit --amend
git checkout -- 文件名
git remote -v
git fetch
git pull 仓库名 远程分支名:本地分支名
git remote rename 旧名 新名
git remote rm 远程仓库名
git tag -a tag名 -m "tag说明"
git push 仓库名 tag号 //推送单个tag
git branch
git checkout
git checkout -b
git branch -d
git push 仓库名 本地分支:远程分支
git fetch 仓库名
git checkout -b 本地分支名 origin/分支名
git push 仓库名 :远程分支
内部原理
commit对象:tree对象,祖先对象,author和committer
tree对象:真实目录
blob对象:真实文件
git add:每个文件计算hash值,得到blob对象,存储在.git
git commit:创建tree对象,也就是项目的目录结构,创建commit对象,存储在.git
分支:分支本质上是指向commit对象的可变指针
git reset --soft

maven

作用
安装目录
.m2目录

依赖:
groupId
artifactId
version
scope-test compile
exclusions

仓库:
本地仓库
远程仓库

settings:
认证
镜像

生命周期和插件
声明和执行
mvn clean
mvn compile
mvn test
mvn package
mvn install
mvn deploy

-D:配置插件参数
-P:激活profile

mybatis

作用:持久层框架,负责数据的访问和操作
配置文件:配置mybatis的行为,包括数据源设置,属性,映射配置文件等
typeHandlers:java类型和数据库类型之间的转换,处理非标准类型

映射文件mapper:
resultMap:是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。
insert:映射插入语句
update:映射更新语句
delete:映射删除语句
select:映射查询语句
sql:可重用的SQL代码段

id:在命名空间中唯一标示,用来引用这条语句
parameterType:传入语句的参数类型,可以省略
resultType:返回类的名称,如果是集合,那应该是集合包含的类型,而不是集合本身
resultMap:使用外部的结果集resultMap,resultType和resultMap不能同时使用

映射器dao:绑定映射语句
实体类model:映射sql语句

generator
MyBatis Generator是Mybatis的代码生成器,根据数据库表结构,生成xml映射文件,映射器接口,实体类以及帮助类。

动态sql

spring

作用:Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,通过ioc和aop来简化企业应用程序的开发,它使得开发者只需要关心业务需求

IOC:
控制反转:某一接口具体实现类的选择控制权,从调用类中移除,转交给第三方控制,即由Spring容器通过Bean配置进行控制。

依赖注入,是IOC的一个方面,是个通常的概念,它有多种解释。这概念是说你不用创建对象,而只需要描述它如何被创建。你不在代码里直接组装你的组件和服务,但是要在配置文件里描述哪些组件需要哪些服务,之后一个容器(IOC容器)负责把他们组装起来。

Spring容器启动时,读取应用程序提供的Bean配置信息,并在Spring容器中建立Bean注册表,然后根据注册表实例化Bean,建立Bean和Bean之间的依赖关系,最后将这些Bean放到Bean缓存池中,供外层的应用程序调用。

依赖注入
Spring有两种依赖注入方式:属性注入和构造函数注入;其实就是设置成员变量值
属性注入是指通过setter方法注入Bean的属性。实现类提供默认构造方法、以及相应的set()方法
使用构造函数来完成属性值的注入,Bean要提供带参的构造函数

@Service:对Service实现类进行标注
Spring容器会识别标注,自动将实现类转换为容器管理的Bean

@Autowired
进行依赖注入,@Autowired默认按类型匹配的方式在容器中查找Bean,当有且仅有一个匹配的Bean时,将其注入被标注变量中

@Resource默认按照名称

压测

压测流程
压测目的
方案内容
压测准备
压测注意事项
影子表
QPS
响应时间
并发量
关注的指标:业务,系统,jvm

数据库

  • 基础:
    主键
    外键:某表的外键另一表的主键
    客户端-服务端
    连接mysql需要的信息

  • show
    show databases
    show tables
    show columns from 表
    show create database 库
    show create table 表
    show grants

  • 增删改查
    select distinct 列 from 表 where 条件 order by 列, 列 desc limit 2,3 (distinct作用于所有列,desc只作用于直接位于其前面的列)
    insert into 表() values()
    update 表 set 列=值 where 条件
    delete from 表 where 条件

  • 通配符 正则
    like '%' 任意个任意字符
    like '_' 一个任意字符
    \\
    正则表达式regexp
    'abc'
    *重复前一个字符任意次
    .一个任意字符
    |
    []
    [^]
    '^$'

  • 函数
    concat()
    trim()
    算术运算
    left() right() lower() upper() length()
    Date() Now()
    Abs()
    avg() count() max() min() sum()

  • 分组
    分组 group by having
    select from where group by having order by limit;

  • 联结
    联结:用第一个表的每一行,去匹配第二个表的每一行,如果没有where条件,返回的行数是两个表行数乘积
    内部联结inner join:只包含匹配的行
    外部联结outer join:包含没有关联的行
    select 列 from 表1 left outer join 表2 on 条件
    left outer join 除了匹配的行,还包含左边表所有行
    right outer join 除了匹配的行,还包含右边所有行


  • create table 表名() ;
    alter table 表 change 列名 列名 属性;
    alter table 表 add 列 属性
    alter table 表 drop column 列
    drop table 表

  • 用户
    create user 用户名 identified by 密码
    drop user 用户名

  • 权限
    show grants for 用户名
    grant 操作 on 库名.表名 to 用户
    revoke 操作 on 库名.表名 from 用户

  • 数据类型
    date
    time
    datetime
    int
    double
    varchar

  • 事务
    数据库事务
    start transaction
    rollback
    四个特性:原子性,一致性,持久性,隔离性
    事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。
    https://www.cnblogs.com/fjdingsd/p/5273008.html


  • https://blog.csdn.net/C_J33/article/details/79487941
    共享锁:当一个事务执行select语句时,数据库系统会为这个事务分配一把共享锁
    独占锁:当一个事务执行insert、update或delete语句时,数据库系统会自动对SQL语句操纵的数据资源使用独占锁。
    独占锁不能和其他锁兼容,如果数据资源上已经加了独占锁,就不能再放置其他的锁了。同样,如果数据资源上已经放置了其他锁,那么也就不能再放置独占锁了。
    更新锁:当一个事务执行update语句时,数据库系统会先为事务分配一把更新锁。当读取数据完毕,执行更新操作时,会把更新锁升级为独占锁。

  • 索引
    https://blog.csdn.net/weiliangliang111/article/details/51333169
    作用:通过缩小一张表中需要查询的记录/行的数目来加快搜索的速度。
    索引是一种数据结构,存储了这一列的所有值,同时存储了指向表中的相应行的指针
    索引使用最常用的数据结构-B-Tree-那么其中的数据是有序的。有序的列值可以极大的提升性能

其它

  • http thrift
    Thrift是一种跨语言的RPC服务协议,采用不同的语言开发客户端代码和服务器端代码,且性能优越。
    接口定义描述接口函数及数据类型,然后通过Thrift的编译环境生成各种语言类型的接口文件
    http位于应用层,rpc位于传输层。RPC基于socket,socket基于TCP协议,比http服务少了应用层、表示层、会话层,比http服务快一点。

  • 垃圾回收
    栈:每个线程执行每个方法的时候都会在栈中申请一个栈帧,每个栈帧包括局部变量区和操作数栈,用于存放此次方法调用过程中的临时变量、参数和中间结果
    堆:堆存放对象
    分为新生代、年老代和持久代。新生代分为Eden区、Survivor1区和Survivor2区


    image.png
  • 新生代垃圾回收

  1. 大多数新生对象都被分配在Eden区。
  2. 第一次GC过后Eden中还存活的对象被移到其中一个Survivor1区。
  3. 再次GC过程中,Eden和Survivor1区中还存活的对象会被移到Survivor2区。
  4. 重复这个过程
  5. 经过数次(默认是15次)在两个Survivor区域移动后还存活的对象最后会被移动到老年代。
  • 线上问题
  • 可测性改进

java

  • Arrays.asList方法
    1.不能把基本数据类型转化为列表
    2.asList方法返回的是数组的一个视图,视图意味着,对这个list的操作都会反映在原数组上
    https://www.cnblogs.com/zheyangsan/p/6910476.html
  • 三元运算符
  • switch
    接受一个int或char,查找case,匹配就执行,知道break语句。否则,执行default
  • 异常
    声明异常,抛出异常,捕获异常
    方法要抛出必检异常,必须在方法头中声明异常
    捕获异常:
    1.try中某条语句抛出异常,跳过try剩余语句,按顺序匹配catch块
    2.匹配上,执行catch块,然后继续执行函数
    3.未匹配上,退出本方法,异常传递给调用本方法的方法,继续上面流程
  • finally子句
    任何情况,finally子句都会执行
    try{
    }catch() {
    }finally {
    }
    1.try块没有出现异常:执行完try,执行finally,继续
    2.try块有异常,被catch捕获:跳过try块其它语句,执行catch,执行finally,继续
    3.try块有异常,没有被catch捕获:跳过try块其它语句,执行finally,然后将异常传递给调用本方法的方法
  • jdbc原理
    jdbc是Java数据库连接技术的简称
    JDBC连接数据库的步骤
    1.加载驱动(jdbc驱动,用于链接数据库)
    2.获取连接对象(url,name,pass)
    3.创建命令对象
    4.执行sql
    5.处理结果集
    6.关闭链接
  • FileInputStream类与FileReader类的区别
    FileInputStream:以字节流方式读取,字节为单位
    FileReader:把文件转换为字符流读入,字符为单位

压测平台
数据构造、场景管理、动态调控、过程监控、压测报告

计算机基础

  • 协议体系结构由哪几部分组成:应用层,表示层,会话层,运输层,网络层,数据链路层,物理层
  • IP地址与硬件地址的区别
  • TCP连接建立的过程(三次握手)
  • 简要域名解析的过程
    1.先在浏览器缓存,本机host文件中查找,如果找到,解析结束
    2.主机提出域名解析请求,发送给本地域名服务器
    3.本地域名服务器进行查询,缓存中有记录,本地域名服务器就把结果返回
    4.如果没查到,本地域名服务器把请求发给根域名服务器
    5.跟域名服务器返回结果,或者下一个应查询的域名服务器地址
  • 浏览器输入url之后发生了什么
    https://www.cnblogs.com/tisikcci/p/5866753.html
    1.DNS域名解析
    2.浏览器与网站服务器建立连接(三次握手)
    3.请求和传输数据
    4.浏览器渲染页面
  • 死锁的四个必要条件
    1.互斥条件:一个资源每次只能被一个进程使用
    2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放
    3.不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺
    4.循环等待条件:若干进程间,形成一种头尾相接的循环等待资源关系

http协议

  • http
    超文本传输协议,基于TCP/IP通信协议来传递数据的
  • 请求结构
    请求报文:方法+URI+版本+首部字段+主体
  • 响应接口
    响应报文:版本+状态码+原因短语+首部字段+主体
  • 缺点
    1.不加密
    2.不验证通信方身份
    3.无法验证报文的完整性
    加密,证书,签名
    HTTP+加密+认证+完整性保护=HTTPS
  • 方法
    1.get:请求数据
    2.post:上传数据
    3.put:上传文件
    4.delete:删除文件
    http://www.w3school.com.cn/tags/html_ref_httpmethods.asp
  • get post区别
    1.数据长度的限制,
    get,URL 的长度是受限制的(URL 的最大长度是 2048 个字符)
    post,无限制
    2.安全性
    get,所发送的数据是 URL 的一部分,所有人可见
    post,数据不会显示在 URL 中
  • 状态码
    1.2xx:成功,请求正常处理完毕
    2.3xx:重定向,
    3.4xx:客户端错误,服务端无法处理请求
    4.5xx:服务端错误,服务端处理请求出错
    400:请求语法错误
    401:需要认证信息
    403:没有权限
    404:资源不存在
    500:服务器内部错误
    502:作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
    504:网关超时
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容