锐锢商城面经

面试分两个流程:

     1.  先做10道题,通过4道即可参与面试。

     2. 面试的时候是一对一的模式。

    准备按照我的记忆把题目整理一下

  一、 笔试题整理:

    1. 引用传递和值传递考查,以下打印结果为:  

package com.tedu.day05;
/**
 *author:bingbing
 *日期:2020年7月15日
 *时间:下午9:36:06
 */
 
public class Demo01 {
	
	
	
	
	public static void main(String[] args) {
		
		int i=0;
		aow(i++);
		System.out.println(i);
	}
 
	private static void aow(int i) {
		i+=2;
	}
	
 
}

  打印结果为:  1

     实参给形参传值,实则是形参对是实参变量的拷贝,以此改变的只是形参地址对应下的值,对实参没有影响。

    

2.   考查concat用法

        如下代码的结果是什么: 

package com.example.file;

import com.example.contructor.main;

public class Demo06 {


	public static void main(String[] args) {
		String str1="123";
		str1.concat("456");
	    System.out.println(str1.concat(789));

	}

}

     编译错误!   传的参数必须为字符串类型,另外str1="123";

3.    "abc" instanceof Object 返回结果为:

         true 

        考虑到instanceof 的用法, Object类是所有的类的父类,  表示的是 instanceof的左边是不是右边的实例。如果左边是右边的对象或者是子类创建的对象时,那么返回true,否则返回fasle,如果是null就返回false。

package com.example.file;

import com.example.contructor.main;

public class Demo06 {


	public static void main(String[] args) {
	 
	    if("abc" instanceof Object){
	    	System.out.println("122213");
	    }
	    if(null instanceof Object){
	    	System.out.println(111);
	    }   
	}

}

4.  interrupt和interrupted的用法

        interrupt()方法是将当前线程添加一个中断标识,如果这个时候有sleep()方法,那么就会抛出interruptedException异常。

        interrupted()方法可判断当前线程是不是有没有被标有中断标识,如果有的话返回true。

package com.example.file;

public class Demo07 {

	public static void main(String[] args) {


		new Thread(){
			@Override
			public void run() {
				int a=100;
				try {	
					interrupt();
					Thread.sleep(3000);
					if(interrupted()){
						a=300;
						System.out.println(a);
					}
					
				} catch (Exception e) {
                       a=200;
   					System.out.println(a);
				}finally{
                       a=500;
   					System.out.println(a);
				} 
				System.out.println(a);
			}
		}.start();
	}

}

打印结果为:

200
500
500

小结:

1)  interrupt()方法用于向线程发送一个终止通知的信号,会给该线程内设置一个中断标识,这个线程并不会因为调用了interrupt()方法而改变状态。

2) 如果这个时候再调用了sleep()方法,那么就会抛出InterruptedException, 在抛出异常前,中断标识为会清除掉。因此interrupted()的结果为false

接下来我们把sleep()方法去掉后: 

package com.example.file;

public class Demo07 {

	public static void main(String[] args) {


		new Thread(){
			@Override
			public void run() {
				int a=100;
				try {	
					interrupt();
					if(interrupted()){
						a=300;
						System.out.println(a);
					}
					
				} catch (Exception e) {
                       a=200;
   					System.out.println(a);
				}finally{
                       a=500;
   					System.out.println(a);
				} 
				System.out.println(a);
			}
		}.start();
	}

}

打印结果为:

300,500,500  

sleep()方法去掉后,线程不会改变状态,只是中断标识被设置成了true。因此interrupted返回true。

5.  考查Java关键字包含哪些?  从中选择出正确的

      java的关键字主要包含:

abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while。

第二部分: 面试题整理

    主要问了我mysql和redis这2块,可能是因为我的简历上写的是熟悉Mysql和Redis。

     1. mysql的explain 用法? 

       用来解释select 查询的语句的一些信息。

 2. mysql的主键生成策略有哪些?

          1) 自增长式。 

           2)UUID类型。

    3. mysql 的Binlog是什么?

          日志恢复工具。

    4. 怎么使用mysql实现模糊查询,不使用like和全文索引?

    5. redis有哪几种数据类型?

       常用的数据类型有:  String,hash,list,set。

    6. redis的zset怎么保证数据的顺序性?

       通过score参数来保证顺序性。

    7. redis怎么实现一个轮询的操作?

        可以借助

    8. redis的key的命名规范是怎么样的?

      答:  服务名+模块名+ 字面意思。

    9. 你在项目中会遇到redis的哪些问题,是怎么解决的?

        1)  缓存大面积失效。

        2) 过热的Key问题。

         3) 缓存穿透问题。

    10. rabbitmq的生产者发送消息给消息队列在网络正常,rabbitmq没有挂掉的情况下,是什么原因导致没有接收到消息,应该要怎么处理?

    11. 一致性的哈希是怎么实现的?

    12. mysql的bigint是Java的Long类型嘛? 

        答:   bigint没有勾选无符号按钮时,是映射到Long类型的,如果勾选了无符号按钮,则映射到BigInteger。

               int 没有勾选无符号按钮时,会映射到 Integer类型,如果勾选了无符号按钮,那么会映射到Long类型。

    

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乌托邦钢铁侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值