回顾测试

  1. 创建、删除、复制、移动、重命名文件和文件夹的命令分别是什么?

    • 文件:
      • 创建:touch / vim
      • 删除:rm
      • 复制:cp
      • 移动:mv
      • 重命名:mv
    • 文件夹:
      • 创建:mkdir
      • 删除:rm -rf
      • 复制:cp
      • 移动:mv
      • 重命名:mv
  2. 什么是gradle,gradle的作用是什么,查看gradle任务、运行测试、启动应用的命令分别是什么?

    • gralde 是一种依赖管理工具,基于 Groovy 语言,面向 Java 应用为主,是一种基于 Groovy 的内部领域特定语言

    • 自动化地进行软件构建、测试、发布、部署、软件打包

    • 查看 gradle 任务:gradle tasks

    • 运行测试:gradle test

    • 启动应用:gradle appRun

  3. gradle配置文件中,buildscript的设置和普通的设置有什么区别?

    • buildscript 中声明的是 gradle 脚本自身需要使用的资源。包括依赖项、第三方插件、maven 仓库
  4. gradlew的作用是什么?为什么要用它?

    • gradlew 是包装器,会自动下载所依赖的版本的 gradle ,保证编译环境统一
  5. 举例说明Java中接口、抽象类、类的区别?

    • 接口:可以包含变量和方法,其中变量会被隐式指定为 public static final,而方法会被隐式指定为 public abstract,并且接口中的所有方法都必须是抽象方法
    • 抽象类:
      • 不能用来创建对象
      • 如果一个类继承于一个抽象类,则子类萹蓄实现父类的抽象方法
      • 如果子类没有实现父类的抽象方法,则必须将子类也定义为抽象类
      • 可以有方法的实现细节
    • 类:
      • 包含变量和方法
      • 变量可以是 public static final
      • 方法必须有实现细节,若缺省实现细节,则是抽象类
      • 可以继承其他类,或被继承
  6. 举例说明Java中Collections、Arrays、Map、HashMap、TreeMap、Collection、List、ArrayList、Set、HashSet、TreeSet的区别和联系?

    • Collections
      • 是一个针对于集合类的一个帮助类
      • 提供了一系列静态方法实现对各种集合的搜索、排序、线程完全化等操作
    • Arrays
      • 数组类
      • 提供一系列静态方法实现对数组元素的搜索、排序
    • Map
      • 存储键值对
    • HashMap
      • 非同步,允许 key / value 为空
    • TreeMap
      • 基于红黑树实现,查看 key / value 时,会被排序
    • Collection
      • 对象集合,子接口:List、Set
      • 每个位置只有一个元素
    • List
      • 有序的 Collection
      • 相同值可以出现多次
    • ArrayList
      • 线程不安全
      • 由数组实现的 List
    • Set
      • 无序的 Collection
      • 每个值只能出现一次
    • HashSet
      • 存入 HashSet 的对象必须定义 hashCode()
    • TreeSet
      • 是一个有序集合
      • 可以按照任何顺序将元素插入集合
      • 元素按照升序排列,缺省是按照自然顺序进行排序
      • 元素要实现 Comparable 接口,或有一个自定义的比较器 Comparator
  7. 类方法和实例方法有什么区别,什么时候用类方法、什么时候用实例方法?

    • 实例方法
      • 只有当该类的对象创建以后,实例方法才分配入口地址。从而实例方法可以被类创建的对象所使用
      • 只有创建第一个对象的时候,实例方法入口地址会完成分配,后续不会再重新分配,即:该类的所有对象共享实例方法的入口地址
      • 当该类的所有对象被销毁,入口地址才会消失
    • 类方法
      • 当类被加载的时候,类方法入口地址就会被分配
      • 类方法不仅可以被该类的对象调用,也可以直接通过类名完成调用。
      • 类方法入口地址在程序退出时消失
    • 定义的方法中需要修改实例的属性,定义实例方法;如果不需要用到具体实例中的属性,定义为类方法
  8. HTTP无状态是指什么?

    • HTTP 无状态指,HTTP 协议对于事务处理没有记忆能力。即每次请求返回的结果都一样,所以 HTTP 在客户端使用 cookie 保存用户状态,服务端有 session
  9. HTTP的返回的状态码有哪几类?常见的有哪些?分别表示什么含义?

    • 成功
      • 200:Ok
      • 201:Created
      • 204:No content
    • 重定向
      • 301:永久重定向
      • 302:临时重定向
    • 客户端错误
      • 400:Bad Request
      • 401:Unauthorized
      • 403:Forbidden
      • 404:Not found
    • 服务器错误
      • 500:Internal Server Error
      • 502:Bad gateway
      • 504:Gateway timeout
  10. HTTP方法主要有哪几种,区别是什么?

    • Get:请求获取服务器指定的资源
    • Post:向服务器提交数据
    • Put:向服务器发请求,修改服务器资源
    • Delete:请求服务器删除指定的资源
  11. 为什么RESTful API的URI中不能出现动词?写出对一个用户增删改查的操作的API,包括查询参数、RequestBody、ResponseBody和ResponseStatus?

    • RESTful API 中的 URI 代表一种资源,往往与数据库表名对应。通常,数据库中的表都是记录同种记录的集合,所以 API 中的 URI 也应该使用名词
      • /api/users
      • post
      • RequestBody:User
      • ResponseBody:username
      • Status:200
      • /api/users?userId=1234
      • delete
      • Status:200
      • /api/users?userId=1223
      • put
      • RequestBody:User
      • ResponseBody:username
      • Status:200
      • 查询所有
        • /api/users
        • get
        • ResponseBody:List<User>
        • Status:200
      • 查询一个
        • /api/users?userId=1234
        • get
        • ResponseBody:List<User>
        • Status:200 / 404
  12. 画图说明Spring MVC的概念是什么,各部分之间是怎么相互工作的。


    • view 接受用户的交互请求
    • view 将请求转交给 controller
    • controller 操作 model 进行数据更新
    • 数据更新后,model 通知 view 数据变化
    • view 显示更新之后的数据
  13. 举例说明Spring Controller 中URL Mapping是怎么匹配的?

    • GET

      • /api/users

        @GetMapping("/api/users")
        public void UserController() {}
        
      • /api/users?userId=1

          @GetMapping("/api/users")
          public void UserController(@RequestParam String userId) {}
        
    • POST

      • /api/users
         @PostMapping("/api/user")
         public void UserController(@RequestBody User user) {}
        
      • /api/users/username
          @PostMapping("/api/user/{username}")
          public void UserController(@PathVariable String username) {}
        
    • PUT

      • /api/user
          @PutMapping("/api/user")
          public void UserController(@RequestBody User user) {}
        
      • /api/users/username
          @PutMapping("/api/user/{username}")
          public void UserController(@PathVariable String username) {}
        
    • DELETE

      • /api/users/userId
          @PutMapping("/api/user/{username}")
          public void UserController(@PathVariable String userId) {}
        
      • /api/users?userId=1
          @GetMapping("/api/users")
          public void UserController(@RequestParam String userId) {}
        
  14. Spring MVC中多个同名的param会在服务端怎么解析?比如http://host/api/users?name=sj&name=sj2

    • 将两个变量用 "," 连接
      • eg:该请求的实际参数 name 的值 为 “sj,sj2”
  15. 举例说明IoC控制反转中对什么的控制反转了?解释标记@Autowired之后,为什么没有初始化也可以直接使用?

    • 反转则是由容器来帮忙创建及注入依赖对象

    • 因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转;

    • 依赖对象的获取被反转了。

    • 解释标记 @Autowired 之后,IoC 容器会帮助创建并注入依赖的对象

  16. Spring中常用的依赖注入方式有哪几种?

    • 构造函数
    private AccountService accountService;
    public AccoutController(AccountService accountService) {
        this.accountService = accountService;
    
    • 注解
    @Autowired
    private AccountService accountService;
    
    • setter
    @Autowired
    public void setAccountService(AccountService accountService) {
        this.accountService = accountService;
    }
    
  17. Springboot中@Component、@Service、@Repository、@Bean、@Confituration区别和联系。

    • @Component

      • 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注
    • Repository

      • 用于标注数据访问组件,即 DAO 组件
    • Bean

      • 被用在方法上,显示声明要用生成的类
    • Configuration

      • 注解在类上面,声明这是个配置作用的 Bean
  18. 怎么实现Spring Data JPA里的一对多,多对多,一对一?

    • @OneToOne
    @OneToOne(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)
    private Account account;
    
    • @ManyToMany
    @ManyToMany(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)
    @JoinTable(name = "t_shopping_cart_item", joinColumns = @JoinColumn(name = "shopping_cart_id", referencedColumnName = "id"),
            inverseJoinColumns = @JoinColumn(name = "item_id", referencedColumnName = "id"))
    private Set<Item> items;
    
    • @OneToMany
    @OneToMany(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)
    @JoinColumn(name = "account_id")
    private Set<Address> addresses;
    
  19. 如何控制Spring Data JPA里的一对多,一对一,多对多的lazy loading

    • 在一对一的关系中默认是 eager loading 添加 fetch = FetchType.LAZY 即可设置为 lazy loadig
    • 在一对多、多对多 的关系中默认是 lazy loading
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容