java题目汇总(一)
1.== 与equals的区别
== 比较基本数据类型时,比较的是两个数值是否相等; 比较引用类型是,比较的是对象的内存地址是否相等。 equals() 没有重写时,Object默认以 ==来实现,即比较两个对象的内存地址是否相等; 重写以后,按照对象的内容进行比较
2.StringBuilder、StringBuffer、String区别
StringBuilder和StringBuffer非常类似,均代表可变的字符序列,而且方法也一样
String:不可变字符序列,效率低,但是复用率高。
StringBuffer:可变字符序列、效率较高(增删)、线程安全 append方法使用synchronized 修饰了
StringBuilder:可变字符序列、效率最高、线程不安全
底层都是通过一个char类型的数组进行存储字符串的
3.抽象类与接口的区别
1.抽象类多用于在同类事物中有无法具体描述的方法的场景,而接口多用于不同类之间,定义不同类之间的通信规则。
2.接口只有定义,而抽象类可以有定义和实现。
3.接口需要实现implement,抽象类只能被继承extends,一个类可以实现多个接口,但一个类只能继承一个抽象类。
4.抽象类倾向于充当公共类的角色,当功能需要累积时,用抽象类;接口被运用于实现比较常用的功能,功能不需要累积时,用接口。
4.谈一谈多线程
1.线程是程序执行的最小单元,一个进程可以拥有多个线程
2.各个线程之间共享程序的内存空间(代码段、数据段和堆空间)和系统分配的资源(CPU,I/O,打开的文件),但是各个线程拥有自己的栈空间
3.多线程优点:减少程序响应时间;提高CPU利用率;创建和切换开销小;数据共享效率高;简化程序结构
5.四种修饰符
java中提供了public,protected,default,private四种访问修饰符。修饰范围:public>protected>default>private.public,default,private都可以用于修饰类,方法,变量。而protected不能用于修饰类。public修饰的目标对同一个项目下所有的类都公开,protected只对同一个包下或存在父子类关系的类公开,default对同一个包下的类公开,private只能保证该类可见。
java题目汇总(一)
最新推荐文章于 2024-07-20 23:59:39 发布