java面试
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java面试,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2478字,纯文字阅读大概需要4分钟。
内容图文
![java面试](/upload/InfoBanner/zyjiaocheng/636/1035680bffe349c9aa3b1108eb68d57f.jpg)
1.java多线程
1.1--java多线程通信?
多线程并发编程时,难免会遇到线程间的通信问题。线程通信方式的思想大体上来说可以分为两种:共享和传递。
共享的实现方式可以是共享变量、共享文件、数据库、网络等。传递的实现方式可以是消息队列、生产者-消费者模型等。
(1)共享变量:
使用volatile 关键字定义共享变量 private static volatile Boolean odd = true。
多个线程同时监听一个变量,当这个变量发生变化的时候 ,线程能够感知并执行相应的业务。
volatile 保证了新值能立即同步到主内存,以及每次使用前立即从主内存刷新。
(2)使用Object类的wait() 和 notify() 方法:
wait和 notify必须配合synchronized使用,wait方法释放锁,notify方法不释放锁。
(3)基本LockSupport实现线程间的阻塞和唤醒:
LockSupport.park(); 阻塞
LockSupport.unpark(threadB); 唤醒
1.2--java多线程实现方式?
(1)继承Thread类创建线程。
(2)实现Runnable接口创建线程。 多,多实现单继承。
(3)java的Executors线程池。减少对象创建, 提供定时执行、定期执行、单线程、并发数控制等功能。
1.4--java什么是线程池?
创建线程需要花费资源和时间,如果等任务来创建线程那么响应时间就变长。
在程序启动时创建线程来响应处理就是线程池。
1.5--java多线程start()与run()方法区别?
start():Thread类start()来启动一个线程,这时此线程是处于就绪状态, 并没有运行。 然后通过此Thread类调用方法run()来完成其运行。
run()称为线程体,它包含了要执行的这个线程的内容。
run(): run()方法当作普通方法的方式调用,程序还是要顺序执行。没有达到多线程目的。
1.6--java多线程中wait()与sleep()区别?
(1)wait是Object方法,sleep是线程方法。
(2)wait会释放锁,sleep不释放锁。
(3)wait需要依赖synchronized关键字,sleep方法不依赖于同步器synchronized。
2.java基础
1.1--java多态?
不同类的对象对同一消息作出不同的响应就叫做多态。
多态存在的三个条件:
(1)有继承关系。
(2)子类重写父类方法。
(3)父类引用指向子类对象,父类调用方法会调用子类重写后方法。FU fu=new ZI();
1.2--java中final关键字?
(1)final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
(2)final方法不能被子类的方法重写,但可以被继承。
(3)final类不能被继承,没有子类,final类中的方法默认是final的。
(4)final不能用于修饰构造方法。
1.3--java中static关键字?
(1)静态变量。类加载只为分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问。
(2)静态方法。静态方法可以直接通过类名调用。静态方法不能访问非静态方法。
(3)static代码块。类加载的时候就会依次执行一次静态代码块。
内容总结
以上是互联网集市为您收集整理的java面试全部内容,希望文章能够帮你解决java面试所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。