Java基础知识/面试题
Posted amyzhu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础知识/面试题相关的知识,希望对你有一定的参考价值。
什么是面向对象编程?
面向过程:按照步骤解决问题
面向对象:把构成问题的各个事物分解成各个对象,对象作为程序基本单位,将程序和数据封装其中,以提高程序的重用性、灵活性和可扩展性。
Java三大特性
封装
继承
多态性
Java八种基本数据类型
8种基本数据类型:
byte、short、int、long
float、double
boolean
char
3种引用数据类型:
对象、数组、接口
Java多线程实现方法
Thread —— 类,继承
Runnable——接口,实现implement
实现Callable接口通过FutureTask包装器来创建Thread线程
使用ExecutorService、Callable、Future实现有返回结果的多线程
Thread类中的start()和run()方法有什么区别?
- start():作用是启动一个新线程,新线程会执行相应的run()方法,不能被重复调用;
- run():可以被重复调用,单独调用run()的话,会在当前线程中执行run(),不会启动新线程
三个线程T1、T2、T3,如何确保它们按顺序执行?
- join():等待线程结束,可以实现线程按顺序执行
编写一个线程安全的单例模型
https://www.cnblogs.com/x_wukong/p/3962315.html
String、StringBuilder、StringBuffer三者区别
- 运行速度/执行速度:StringBuilder > StringBuffer > String
- String是字符串常量(char保存),对象创建之后不可更改;前两者是字符串变量,是引用类型,是可以更改的。
- 线程安全:StringBuilder是线程不安全的,StringBuffer是线程安全的。
- StringBuffer中很多方法可以带有synchronized关键字,所以可以保证线程安全;
- StringBuilder的方法则没有synchronized关键字
- 多线程-StringBuffer 单线程-StringBuilder
- 结论:
- String:适用于少量的字符串操作情况
- StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
- StringBuffer:适用于多线程下在字符缓冲区进行大量操作的情况
以上是关于Java基础知识/面试题的主要内容,如果未能解决你的问题,请参考以下文章