栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

每日面试题(2022.4.27)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

每日面试题(2022.4.27)

一、牛客面试题(2022.4.27) 1.关于依赖注入(DI)的说法

依赖注入是一种思想,或者说一种设计模式,在java中通过反射机制实现,与具体的框架无关,除了spring,还有.net等其他平台也用到了依赖注入。
常见的依赖注入方式:
①.接口注入
②.方法注入
③.构造方法注入
其主要目的是为了解耦合

2.JVM常用命令

JVM中的常用命令:
jps: 查看本机java进程信息。
jstack: 打印线程的栈信息,制作线程dump为念。
jmap: 打印内存映射,制作堆dump文件。
jstar: 性能监控工具。
jhat: 内存分析工具。
jconsole: 简易的可视化控制台。
jvisualvm: 功能强大的控制台。

3.在java中,char foo = ‘中’,是否正确?(假设源文件以GB2312编码存储,并且以javac - encoding GB2312命令编译)

答案是正确的,Java语言中,中文字符所占的字节数取决于字符的编码方式,一般情况下,采用ISO8859-1编码方式时,一个中文字符与一个英文字符一样只占1个字节;采用GB2312或GBK编码方式时,一个中文字符占2个字节;而采用UTF-8编码方式时,一个中文字符会占3个字节,因此在java中,char类型占两个字节,默认以GBK编码存储,且java内部都是用unicode的,支持中文变量名的,可以表示汉字和其他国家占两个字节的语言。

4.下面程序的运行结果
public static void main(String args[]){
	Thread t = new Thread(){
		public void run(){
			pong();
		}};
	t.run();
	System.out.print("ping");
}
	static void pong(){
		System.out.print("pong");
}

答案是pongping,因为线程的run()方法只是普通方法的方式调用,并不是start()方法去执行子线程,所以程序还是要按顺序执行,要等待run方法体执行完毕后,才可以继续执行下面的代码,没有多线程竞争的问题。

5.下面程序的运行结果
public class TestDemo
{
    public static String output = "";
    public static void foo(inti)
    {
        try
        {
            if (i == 1)
            {
                throw new Exception();
            }
        }
        catch (Exception e)
        {
            output += "2";
            return ;
        } finally
        {
            output += "3";
        }
        output += "4";
    }
    public static void main(String[] args)
    {
        foo(0);
        foo(1);
        System.out.println(output);
    }
}

答案是3423,首先是foo(0),在try中没有抛出异常,执行finally,所以output += “3”,然后output += “4”。然后执行foo(1),try代码块中抛出异常,进入catch代码块,output += “2”,因为finally是必定执行的,加上catch代码块中有return,所以最后一个output += "4"不执行,最终答案是 3423

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/846076.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号