面试记录(通过)

1.字符串如何转整型,以及会出现的异常

(1)如何转化

将字符串转换为整形值,主要使用Integer类的parseInt()方法和valueOf()方法
他们都可以接收一个String类型的参数,parseInt()方法返回一个int类型的值,valueOf()方法返回的是Integer对象。String类型的数据转为Int类型属于比较常见的场景,主要有两种转换方法:

1. 使用Integer.parseInt(String)方法

2. 使用Integer.valueOf(String)方法

下面是一个小案例:

public void convert() {
    // 1.使用parseInt方法
    String s1 = "22";
    Integer n1 = Integer.parseInt(s1);
    System.out.print("字符串22转换为数字:");
    System.out.println(n1);
 
    // 2.使用valueOf方法
    String s2 = "23";
    Integer n2 = Integer.valueOf(s2);
    System.out.print("字符串23转换为数字:");
    System.out.println(n2);
}

(2)可能会出现的异常

NumberFormatException异常
        需要注意的是,使用这两种方法都有一个前提,那就是待转换字符串的内容必须为纯数字。如果待转字符串中出现了除数字以外的其他字符,则程序会抛出异常NumberFormatException,​​​​其原因都是被转换的字符串中存在英文字母,无法转换成整型。​

NullPointerException空指针异常

空指针异常是由RuntimeException派生出来,是一个运行级别的异常。意思是说可能会在运行的时候才会被抛出,而且需要看这样的运行级别异常是否会导致你的业务逻辑中断。空指针异常发生在对象为空,但是引用这个对象的方法。

例如: String s = “ ”; //对象s为空(null) int length = s.length();//发生空指针异常

一个变量是null,及只有其名,没有实值内容,也没分配内存,当你要去取他的长度,对他进行操作就会出现NullPointException,所以生命一个变量时最好给它分配好内存空间,给予赋值。

比如变量为空,而你没有去判断,就直接使用,就会出现NullPointException。写程序时严谨些,尽量避免了,例如在拿该变量与一个值比较时,要么先做好该异常的处理如:

if (s == null) {  System.out.println("字符为空!");

}

2.Mysql索引失效的场景(展示失效场景案例后面找时间做)

  • 不满足最左匹配原则
  • 使用了select *
  • 索引列上有计算
  • 索引列用了函数
  • 字段类型不同
  • like左边有%
  • 列对比
  • 使用or关键字
  • 使用not in和not exists
  • order by

3.Vue的生命周期过程

vue生命周期可以分为八个阶段,分别是:

beforeCreate(创建前)、created(创建)、beforeMount(挂载前)、mounted(挂载)、beforeUpdate(更新前)、updated(更新)、beforeDestroy(销毁前)、destroyed(销毁)

4.Stirng、StringBuffer、StringBuilder的区别

StringStringBufferStringBuilder

String的值是可变的,这就导致每次对

String的操作都会生成新的String对象,

不仅效率低下,而且浪费大量优先的

内存空间

StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串操作都不会产生新的对象。每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量。

可变类,

速度更快

不可变可变可变
线程安全线程不安全
多线程操作字符串单线程操作字符串

5.Error和Exception的区别

Error 和 Exception 都属于Throwable的子类, 在java中只有Throwable类型的实例才可以被抛出或者捕获,它是异常处理机制的基本类型。

  1. Exception 和 Error体现了java平台设计者对不同异常情况的分类, Exception是程序正常运行中,可以预料的意外情况,可以被捕获,进行相应的处理。
  2. Error 是指正常情况下,不大可能出现的情况,绝大部分的Error 都会导致程序处于非正常的,不可恢复的状态, 不需要捕获, 常见的OutOfMemoryError 是Error的子类。
  3. Exception 分为可检查异常(checked) 和 不可检查异常(unchecked).可检查异常在源代码里必须显式的进行捕获处理,这是编译期检查的一部分,不可检查异常是指运行时异常, 比如NullPointerException, ArrayIndexOutOfBoundsException之类, 通常是可以编码避免的逻辑错误,具体根据需要来判断是否需要捕获,并不会在编译期强制要求。

6.@ResponseBody和@RequestBody注解

1.@ResponseBody作用:

将方法的返回值,以特定的格式写入到response的body区域,进而将数据返回给客户端。当方法上面没有写@ResponseBody,底层会将方法的返回值封装为ModelAndView对象。如果返回值是字符串,那么直接将字符串写到客户端;如果是一个Java对象,会将对象转化为json串,然后写到客户端。

@ResponseBody是作用在方法上的,@ResponseBody表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用(AJAX)。

注意编码:
注解中我们可以手动修改编码格式,例如:

@ResponseMapping(value="/register.do",produces="text/html;charset=utf-8"),前面是请求的路径,后面是编码格式。

2、适用场景

有时候我们需要用Controller实现网络服务接口,比如:商品查询、查询天气、新闻数据等。就不需要进行页面跳转而是直接返回数据。这时候我们可以在方法上,添加注解:@ResponseBody

在浏览器中直接显示hello文字,也就是说添加了@ResponseBody注解的方法,返回值会通过HTTP响应主体直接发送给浏览器。

@Controller
@RequestMapping("/test")
public class DemoController{
    @RequestMapping("/hello.do")
    @ResponseBody
    public String hello(){
       return "hello"; 
    }
}

2.@RequestBody

@RequestBody 是作用于方法的参数中,将请求体以json形式写入某个对象。

作用

该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;
再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。

@RestController
public class testController {
    @PostMapping("test")
    public void test(@RequestBody User user) { //这里使用User类需要提前创建好User实体类
        System.out.println(user.toString());
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值