java面试题--(真
时间: 2023-10-16 21:03:46 浏览: 68
java面试题真的很多,下面我来回答一个有关多线程的问题。
在Java中实现多线程有两种方式,一种是继承Thread类,另一种是实现Runnable接口。这两种方式有何区别?
继承Thread类的方式是直接定义一个类继承Thread,并重写它的run()方法。然后创建该类的对象,并调用对象的start()方法来启动线程。这种方式简单直接,但因为Java是单继承的,所以如果某个类已经继承了其他类,就不能再直接继承Thread类实现多线程。
实现Runnable接口的方式是定义一个类实现Runnable接口,并实现其唯一的抽象方法run()。然后创建Thread类的对象,将实现了Runnable的对象作为参数传递给Thread类的构造方法。最后调用Thread对象的start()方法来启动线程。这种方式灵活性更大,因为Java允许一个类实现多个接口,所以即使某个类已经继承了其他类,仍然可以通过实现Runnable接口来实现多线程。
另一个区别在于资源共享的问题。继承Thread类的方式,不管是数据还是方法,都是线程自己拥有的,不存在共享的情况。而实现Runnable接口的方式,多个线程可以共享同一个对象的数据和方法,因为多个线程共同操作的是同一个Runnable对象。
总结来说,继承Thread类方式简单直接,但只能通过单继承来实现多线程;实现Runnable接口方式更灵活,可以解决单继承的限制,并且多个线程可以共享同一个Runnable对象的数据和方法。
相关问题
Java中的action函数干什么的_Java面试题-框架篇八
Java中的action函数通常是指Struts2框架中的Action类中的方法,用于处理用户请求并返回响应结果。Action函数主要负责以下几个任务:
1. 接受请求参数:从HTTP请求中获取参数,可以是表单数据、URL参数或者HTTP头信息等。
2. 处理业务逻辑:根据接收到的参数进行相应的业务处理,包括查询数据库、调用其他模块的服务、计算等。
3. 设置响应数据:将处理结果封装成HTTP响应,可以是HTML页面、JSON格式数据、XML数据等。
4. 返回响应结果:将封装好的响应数据返回给用户。
在Struts2框架中,Action函数必须符合一定的命名规则,并且需要实现Action接口或继承ActionSupport类。通过配置路由映射规则,将用户请求映射到相应的Action函数进行处理。
ibmjava面试题
IBM Java面试题通常包括关于Java编程语言的基础知识、面向对象的概念、多线程、Java虚拟机等方面的问题。
1. Java编程语言的基础知识:要求面试者对Java语言的基本语法、数据类型、控制流程等有较为深入的了解,能够解释Java中的继承、封装、多态等概念。
2. 面向对象的概念:面试题可能会涉及到面向对象编程的基本原则,以及如何在Java中实现封装、继承和多态等特性。
3. 多线程:由于Java是一种多线程的编程语言,面试者往往会被问到如何创建和管理线程、线程的同步和互斥等问题。
4. Java虚拟机:面试题中可能会涉及到Java虚拟机的原理和运行机制,以及如何对JVM进行调优和性能优化。
除了以上内容,IBM Java面试题可能还涉及到与Java相关的开发工具和框架、JavaEE等方面的内容。面试者需要在准备面试时对这些方面的知识进行充分准备,同时也要能够结合实际项目经验进行回答,展现自己的技术能力和解决问题的能力。