idea、git、maven、Fiddler、Windows、swagger

目录

    • swagger
      • @Api作用
      • 接收前端参数的实体类使用()
      • controller里方法的参数使用(),方法上使用()
      • springMVC的RequestParam和swagger的ApiParam的required = true 有什么不同
    • Fiddler
      • Fiddler是一款()工具
      • Fiddler是以()的形式工作的
    • Windows
      • 屏幕左边和下面图标都超出了屏幕能显示的范围怎么解决
    • idea快捷键
      • 断点调试Breakpoint
      • bookMark
      • 折叠代码块
      • 将当前行向上或向下调一行
      • 换行
      • 生成for循环
      • 写了对象调用方法后自动生成类型和变量
      • try-catch、while等提示
      • 生成get/set方法,构造方法
      • 重写父类方法
      • 只是实现接口的抽象方法,不重写方法
      • 查看类的子类
      • 全文搜索
      • 查看类的继承关系图
      • 查看类中所有方法,即查看structure
      • 将代码抽取出方法
      • 调用方法时,不知道方法参数该写什么,使用()
      • 查看方法的信息,例如查看方法的返回值
      • 写好了方法名,参数,返回值,希望自动生成一个空方法
      • 用maven创建了一个web项目,没有java和resources目录,手动创建之后发现在java目录下创建的java文件无法被识别,只是当做普通文件
      • 一键格式化
    • git
      • 集中式版本控制系统最大的毛病是()
      • 分布式版本控制系统没有中央服务器,因为()
      • 分布式版本控制,甲修改了文件a,乙也修改了文件a,如何协作呢
      • 分布式版本控制经常会甲乙互相推送自己的修改吗
      • 如何把目录变成可以管理的仓库
      • git只能跟踪()文件的改动,Word文件呢
      • 把一个文件放到git仓库需要两步:将文件()到仓库,将文件()到仓库
      • 查看历史记录,使用命令
      • 回退到上一个版本
      • 回退到上一个版本反悔了,又想回来怎么办
      • git比svn多了一个()区的概念
      • 工作区与版本库的区别
      • 版本库存了很多东西:系统为我们创建的第一个分支master,还有()
      • 查看暂存区有哪些东西没有commit,查看工作区的哪些东西没有add
      • git status 告诉我们被修改了,但是记不清上次怎么修改的可以使用()命令
      • Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件,举例说明git管理的是修改
      • 查看工作区和版本库里面最新版本的区别
      • git checkout -- file可以丢弃工作区的修改,那不同的情况下呢,情况1:自修改后还没有被放到暂存区,情况2:已经添加到暂存区后又做了修改
      • 把暂存区的修改撤销掉,丢弃暂存区的修改
      • 把工作区的文件删了,如果我想把删除操作同步到版本库,即把版本库的文件也删了怎么办,如果我是误删,想恢复又怎么办
      • 公钥有什么用,私钥有什么用,GitHub的公钥是在本地还是在仓库
      • 怎么将本地仓库与远程仓库关联
      • 将本地库的内容推送到远程使用(),第一次推送与非第一次推送使用的命令有什么不同
      • 先创本地库,再创远程库,最后将本地库和远程库关联;但是我先创远程库呢,git clone的时候需要先在本地创一个远程库的文件夹吗
      • git 的分支管理与其他版本工具的分支管理有什么优势
      • head一定指向master吗
      • 假如我们在dev上的工作完成了,就可以把dev合并到master上,Git怎么合并呢,合并之后可以删除Dev分支吗,使用命令()
      • 创建Dev分支,然后切换到Dev分支,查看当前分支
      • 假设现在在master分支上,将Dev分支合并到当前分支
      • 合并之后冲突了,怎么找到冲突的文件
      • 实际开发,分支管理策略是什么样的,master,Dev,tomBranch,myBranch
      • Git就会在merge时生成一个新的commit,这样就不会()
      • 接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,当前正在dev上进行的工作还没有提交,并不是你不想提交,而是工作只进行到一半,还没法提交,预计完成还需1天时间。但是,必须在两个小时内修复该bug,怎么办
      • 在master分支修复bug后,发现Dev分支也有这个bug,难道需要又在Dev分支上修复一次,又不想把整个master分支merge过来
      • 推送分支的时候需要指定(),这样,Git就会把该分支推送到远程库对应的远程分支上
      • 怎么推送master分支,怎么推送Dev分支
      • 未合并的分支不能被删除,怎么强行删除
      • 远程仓库clone的代码需要本地与远程关联吗,为什么,怎么查看远程库的信息
      • 哪些本地分支需要推送到远程,哪些不需要,master、Dev、bug、feature
      • 假设远程仓库里面有两个分支master和dev,我clone下来会有两个分支吗
      • 本地没有Dev分支,而又不能远程clone仓库里的Dev分支,怎么将本地Dev分支与远程Dev分支对应起来,可以git push origin dev吗
      • git pull后有冲突怎么办
    • maven
      • maven项目的目录结构
      • maven的镜像与远程仓库区别
      • 当所有maven项目没有聚合在一个父pom.xml下,idea怎么一次编译
      • maven的scope有compile、provided、runtime、test、system,解释compile、provided、test

swagger

@Api作用

用在controller上,标记一个Controller类做为swagger 文档资源

接收前端参数的实体类使用()

ApiModel用在类上,ApiModelProperty用在属性上,可以使用required = true,要求属性不能为空

controller里方法的参数使用(),方法上使用()

ApiParam,可以使用required = true
ApiOperation

springMVC的RequestParam和swagger的ApiParam的required = true 有什么不同

swagger的会在swaggerUI界面拦截,不输入就不能发出请求
springMVC的没有输入,返回400

Fiddler

Fiddler是一款()工具

抓包

Fiddler是以()的形式工作的

以代理WEB服务器

Windows

屏幕左边和下面图标都超出了屏幕能显示的范围怎么解决

屏幕有一排按键,藏在屏幕后面,按两下最左边的键,找到图像控制,选择自动调整就好了

idea快捷键

断点调试Breakpoint

add to watches
evaluate expression

bookMark

F11 打上book Mark,favorites可以找到bookmarks和breakpoint

折叠代码块

Ctrl + -

将当前行向上或向下调一行

alt + shift + ↑/↓

换行

Ctrl + shift + enter

生成for循环

  • itar : 数组,i=0~ i
  • itli:生成 list 的遍历
  • iter:增强for循环

写了对象调用方法后自动生成类型和变量

Ctrl + alt + v

try-catch、while等提示

Ctrl + alt + T

生成get/set方法,构造方法

alt + insert

重写父类方法

Ctrl + o

只是实现接口的抽象方法,不重写方法

Ctrl + I

查看类的子类

Ctrl + h

全文搜索

Ctrl + shift + R

查看类的继承关系图

Ctrl + alt + shift + u

查看类中所有方法,即查看structure

alt + 7

将代码抽取出方法

Ctrl + alt + M

调用方法时,不知道方法参数该写什么,使用()

Ctrl + p

查看方法的信息,例如查看方法的返回值

Ctrl + q

写好了方法名,参数,返回值,希望自动生成一个空方法

Alt + enter

用maven创建了一个web项目,没有java和resources目录,手动创建之后发现在java目录下创建的java文件无法被识别,只是当做普通文件

选择project structure,modules,使用Mark as,可以将文件夹标为sources,resources,tests

一键格式化

Ctrl + alt + L

git

集中式版本控制系统最大的毛病是()

必须联网才能工作

分布式版本控制系统没有中央服务器,因为()

每个人的电脑都是一个完整的版本库

分布式版本控制,甲修改了文件a,乙也修改了文件a,如何协作呢

互相推送就行,甲将修改推给乙,乙将修改推给甲

分布式版本控制经常会甲乙互相推送自己的修改吗

不会,

第一,两台电脑互相可能访问不了
第二,也可能电脑压根没开机
所以,分布式版本控制系统通常也有一台充当“中央服务器”的电脑

如何把目录变成可以管理的仓库

git init
会发现目录下多了一个.git文件

git只能跟踪()文件的改动,Word文件呢

文本文件
Word文件不能跟踪,因为是二进制的

把一个文件放到git仓库需要两步:将文件()到仓库,将文件()到仓库

git add 添加、git commit -m “meesage” 提交

查看历史记录,使用命令

git log --pretty=oneline

回退到上一个版本

git reset --hard HEAD^

再使用git log 查看,发现刚刚的版本不见了

回退到上一个版本反悔了,又想回来怎么办

只能找到版本id
git reset --hard 1094a23432
而找版本id可以使用 git reflog,因为git reflog记录了你的每一次命令

git比svn多了一个()区的概念

暂存区,暂存区又叫stage

工作区与版本库的区别

工作区就是一个目录
工作区有一个.git隐藏文件,这个不算工作区,是版本库

版本库存了很多东西:系统为我们创建的第一个分支master,还有()

暂存区

查看暂存区有哪些东西没有commit,查看工作区的哪些东西没有add

git status

git status 告诉我们被修改了,但是记不清上次怎么修改的可以使用()命令

git diff

Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件,举例说明git管理的是修改

第一次修改 -> git add -> 第二次修改 -> git commit
git commit只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交

查看工作区和版本库里面最新版本的区别

git diff HEAD – readme.txt

git checkout – file可以丢弃工作区的修改,那不同的情况下呢,情况1:自修改后还没有被放到暂存区,情况2:已经添加到暂存区后又做了修改

若修改后还没有add到暂存区,那么撤销修改后就回到和版本库一模一样的状态
若已添加到暂存区,那么回到添加到暂存区后的状态,也就是暂存区的状态

把暂存区的修改撤销掉,丢弃暂存区的修改

git reset HEAD readme.txt

把工作区的文件删了,如果我想把删除操作同步到版本库,即把版本库的文件也删了怎么办,如果我是误删,想恢复又怎么办

想同步删掉版本库的文件,git rm test.txt git commit -m “remove test.txt”
误删恢复:git checkout – test.txt

公钥有什么用,私钥有什么用,GitHub的公钥是在本地还是在仓库

别人用公钥加密文件传出来,只有我用私钥才能解开
我用私钥加密,别人用公钥可以解开,那公钥所有人都有那所有人都可以解开还有什么意义呢,意义就是签名,签名就是确认这个文件是我发的,而不是别人发的
GitHub的仓库放的是公钥,本地存的是私钥,因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,如果你想在家里和公司同时开发,还可以在GitHub仓库上面添加多个公钥

怎么将本地仓库与远程仓库关联

git remote add origin [email protected]:xxx/learngit.git
远程库的名字就是origin

将本地库的内容推送到远程使用(),第一次推送与非第一次推送使用的命令有什么不同

git push
第一次:git push -u origin master
非第一次:git push origin master

先创本地库,再创远程库,最后将本地库和远程库关联;但是我先创远程库呢,git clone的时候需要先在本地创一个远程库的文件夹吗

不需要,直接Git clone就行,本地会自动创建一个远程库名字的文件夹

git 的分支管理与其他版本工具的分支管理有什么优势

git很快,其他的都是蜗牛,成了摆设

head一定指向master吗

不一定,没有分支的时候指向master,若有其他分支也可以指向其他分支

假如我们在dev上的工作完成了,就可以把dev合并到master上,Git怎么合并呢,合并之后可以删除Dev分支吗,使用命令()

直接把master指向dev的当前提交,就完成了合并
可以
git branch -d

创建Dev分支,然后切换到Dev分支,查看当前分支

git checkout -b dev一条命令可以做到,相当于两条命令:
git branch dev
git checkout dev
查看当前分支:git branch,git branch命令会列出所有分支,当前分支前面会标一个*号

假设现在在master分支上,将Dev分支合并到当前分支

git merge dev

合并之后冲突了,怎么找到冲突的文件

git status
解决冲突的方式跟svn一样

实际开发,分支管理策略是什么样的,master,Dev,tomBranch,myBranch

master:master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活
Dev:干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本
mybranch:你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了

Git就会在merge时生成一个新的commit,这样就不会()

git merge --no-ff -m “merge with no-ff” dev
删除分支后,不会丢掉分支信息

接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,当前正在dev上进行的工作还没有提交,并不是你不想提交,而是工作只进行到一半,还没法提交,预计完成还需1天时间。但是,必须在两个小时内修复该bug,怎么办

首先用git stash将当前工作现场储存起来,git status看到工作区是干净的;
假设出bug的分支是在master上,就从master创建临时分支,git checkout master,git checkout -b issue-101,修复完成后,切换到master分支,并完成合并,最后删除issue-101分支;
接着回到dev分支干活了,用git stash list命令看看刚才的工作现场存到哪去了,用git stash pop,恢复的同时把stash内容也删了,再用git stash list查看,就看不到任何stash内容了

在master分支修复bug后,发现Dev分支也有这个bug,难道需要又在Dev分支上修复一次,又不想把整个master分支merge过来

git cherry-pick 4c805e2,可以将这个提交给复制过来,相当于是给当前Dev分支做了一次重复的新提交

推送分支的时候需要指定(),这样,Git就会把该分支推送到远程库对应的远程分支上

本地分支

怎么推送master分支,怎么推送Dev分支

git push origin master
git push origin dev

未合并的分支不能被删除,怎么强行删除

git branch -D 分支名

远程仓库clone的代码需要本地与远程关联吗,为什么,怎么查看远程库的信息

不需要
因为当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin
git remote,看到远程库信息为origin

哪些本地分支需要推送到远程,哪些不需要,master、Dev、bug、feature

master分支是主分支,因此要时刻与远程同步
dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步
bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug
feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发

假设远程仓库里面有两个分支master和dev,我clone下来会有两个分支吗

不会有两个分支,只有master一个分支

本地没有Dev分支,而又不能远程clone仓库里的Dev分支,怎么将本地Dev分支与远程Dev分支对应起来,可以git push origin dev吗

先创建且切换到本地Dev分支:git checkout -b dev
再指定本地dev分支与远程origin/dev分支的链接:git branch --set-upstream-to=origin/dev dev
再pull: git pull
如果远程仓库没有dev分支那么可以git push origin dev,若有dev分支则只能按照上面的步骤操作

git pull后有冲突怎么办

解决冲突→commit→push

maven

maven项目的目录结构

src下:main、test
main下:java、resources
java下:代码
如果是web项目,src下还有一个webapp目录

与src平行的有一个target
target下有个classes文件夹
classes下是java和resource的内容,不包括java和resources文件夹,类路径指的就是这块内容

maven的镜像与远程仓库区别

远程仓库:对应本地仓库,是一个团队的公共仓库,在项目里pom.xml面配
镜像仓库:如果依赖在国外,那么下载速度会比较慢,可以在maven的server.xml配置一个镜像仓库

当所有maven项目没有聚合在一个父pom.xml下,idea怎么一次编译

先右键每个项目的pom.xml,add as maven projet
然后再reimport all maven projects

maven的scope有compile、provided、runtime、test、system,解释compile、provided、test

你可能感兴趣的:(技术)