Java面试题综合(1)

1.JDK 和 JRE 有什么区别?

答:jre叫作Java运行环境,他主要包含jvm(虚拟机)和Java中的一些基本的类库;jdk的中文名叫作Java的开发工具包,是Java开发的核心,里面集成了jre环境和其他类库。

2.java 中操作字符串都有哪些类?它们之间有什么区别?

答:Java中字符串的类主要有三类,分别是String、StringBuffer、StringBuilder。

它们之间的区别是:String类的底层是final修饰的字符数组,一旦被创建就不能改变。

StringBuffer和StringBuilder都是字符串变量,是可以改变的对象。但StringBuilder是线程非安全的,StringBuffer是线程安全的。

3.接口和抽象类有什么区别?

答:接口不能有私有的方法和变量,而抽象类可以有私有的方法和变量;接口不能有方法的实现,而抽象类可以有方法的实现;接口强调规范、标准,而抽象类则侧重于所属关系;抽象类的实现类(子类)不能超过父类(抽象类)的访问范围;接口成员变量默认被public static final修饰,必须赋初始值,而抽象类的成员变量被default修饰。

4. 如何决定使用 HashMap 还是 TreeMap?

答:TreeMap的key是按照升序排列,底层结构是基于红黑树,适用于自然顺序查找;

HashMap底层是数组+链表的方式,链表主要用红黑树的数据结构,适用于对数据增加、删除、修改;

5.如何实现数组和List 之间的转换?

答:可以通过JDK中的Arrays.asList将数组转换成list。

例子:

  String[] strs = new String[] {"aa", "bb", "cc"};

List<String> list = Arrays.asList(strs);

6.Mybatis 的类别名的配置方式有几种?

答:有3种方式

方式一:通过在Configuration.xml里面使用typeAliases标签 package name指定类的全限定路径,默认为类名首字母小写的类名。

例子:

<typeAliases>

      <package name="org.xatu.demo.entity"/>

</typeAliases>

方式二:也是在Configuration.xml使用typeAliases标签 type指定类的全限定路径,alias为我们指定的别名。

例子:

<typeAliases>

    <typeAlias type="org.xatu.demo.entity" alias="Entity"/>

</typeAliases>

方式三:通过注解方式@Alias("Entity")

7.Array和ArrayList有何区别?

答:从存储内容上看,Array数组可以包含八大基本类型和引用类型,并且只能存放同种类型的数据,ArrayList只能包含引用类型;从存储空间上来说的,Array每次创建的空间是固定的,ArrayList的 空间是动态扩展的。 

8.线程和进程的区别?

答:总的来说的话,进程是资源分配的最小单位,线程是CPU调度的最小单位。线程是在进程下运行的,一个进程包含多个线程。

9.创建线程有哪几种方式?

答:三种方式创建线程

方式一:继承Thread类,重写该类的run方法

方式二:实现runnable接口的实现类重写该类的run方法

方式三:实现Callable接口的实现类,并实现call()方法

10.线程有哪些状态?

答:新建状态(new)、就绪状态(Runnable)、运行状态(Running)、阻塞状态(Blocked)、死亡状态(Dead)

11.什么是死锁?怎么防止死锁?

答:两个或两个以上的进程竞争同一系统资源造成了一种阻塞的现象,叫作死锁。

防止死锁:线程设置优先级、超时放弃

12.在Mybatis的核心配置文件中绑定接口有哪些方法?

答:主要是分为2种方式,xml配置和注解方式。在方法放上@Select、@Update这些注解,需要在xml配置文件里的namespace必须指定接口的全限定名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值