Java题集(3)

Java题集(3)

1、面向过程与面向对象的区别?
   面向过程: 是分析解决问题的步骤,然后再用函数把这些步骤一步一步地实现,然后在使用的时候一一调用即可。性能较高,所以单机片。
   面向对象: 是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。面向对象有封装、继承、多态的特性,所以易维护、易复用、易扩展。但性能上,比面向过程低。

2、八种基本数据类型的大小,以及他们的封装类

基本类型大小(字节)默认值封装类
byte1(byte)0Byte
short2(short )0Short
int40Integer
long80LLong
float40.0fFloat
double80.0dDouble
boolean-falseBoolean
char2\u0000(null)Character

3、标识符的命名规则?
   -硬性要求:
    (1)标识符可以包含英文字母,0-9的数字,$以及_
    (2)标识符不能以数字开头
    (3)标识符不是关键字
  -非硬性要求:
    (1)类名规范:首字符大写,后面每个单词首字母大写(大驼峰式)。
    (2)变量名规范:首字符小写,后面每个单词首字母大写(小驼峰式)。
    (3)方法名规范:同变量名。

4、instanceof关键字的作用?
  是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例。

5、Java自动装箱与拆箱的定义?

​   -装箱:就是自动将基本数据类型转换为包装器类型(引用类型)
​   -拆箱:就是自动将包装器类型(引用类型)转换为基本数据类型

6、Java的四种引用是?

​   (1)强引用:在程序内存不足(OOM)的时候也不会被回收

​   (2)软引用:在程序内存不足时,会被回收

​   (3)弱引用:只要JVM垃圾回收器发现了它,就会将之回收

​   (4)虚引用:回收机制与弱引用差不多,但是它被回收之前,会被放入ReferenceQueue中。

7、深拷贝和浅拷贝的区别是什么?

​   -浅拷贝: 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换而言之,浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象。

​   -深拷贝: 被复制对象的所有变量都含有与原来的对象相同的值,而那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换而言之,深拷贝把要复制的对象所有引用的对象都复制了一遍。

8、jsp 和 servlet 有什么区别?

​   jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)

jsp更擅长表现于页面显示,servlet更擅长于逻辑控制。

Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到。

Jsp是Servlet的一种简化,使用Jsp只需要完成程序员需要输出到客户端的内容,Jsp中的Java脚本如何镶嵌到一个类中,由Jsp容器完成。而Servlet则是个完整的Java类,这个类的Service方法用于生成对客户端的响应。

9、String、StringBuffer、StringBuilder区别?

​   String是字符串常量,StringBuffer、StringBuilder是字符串变量,StringBuffer是线程安全的,StringBuilder线程不安全的,但是速度快(因为它不会为线程安全消耗性能)。

10、poll() 方法和 remove() 方法的区别?

​   都是从队列中取出一个元素,但是 poll() 在获取元素失败的时候会返回空,但是 remove() 失败的时候会抛出异常。

11、数组有没length() 这个方法 ?String有没有没length()这个方法?

​   数组没有length这个方法,但是有length这个属性String有length这个方法

12、main方法可以重载吗?

​   当然可以。通过方法重载,一个类中可以有很多main方法。

13、并行和并发有什么区别?

​   - 并行:多个处理器或多核处理器同时处理多个任务。
​   - 并发:多个任务在同一个 CPU 核上,按细分的时间片轮流(交替)执行,从逻辑上来看那些任务是同时执行。

14、创建线程有哪几种方式?

创建线程有三种方式:

  • 继承 Thread 重写 run 方法;
  • 实现 Runnable 接口;
  • 实现 Callable 接口。

15、线程的 run() 和 start() 有什么区别?

​   start() 方法用于启动线程,run() 方法用于执行线程的运行时代码。run() 可以重复调用,而 start() 只能调用一次。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值