首页 > 编程语言 >Java面试题Day01

Java面试题Day01

时间:2023-01-04 11:55:58浏览次数:44  
标签:面试题 Java 继承 Day01 equals 修饰 字符串 方法 final

1. String  ,  StringBuilder , StringBuffer 的区别? (1)String 只读字符串,引用的字符内容是不能被改变的. (2) StringBuilder和StringBuffer表示的字符串对象可以直接被修改,StringBuilder单线程环境下使用,效率要比StringBuffer要,StringBuffer加锁了,更加线程安全. 2.equals() 与 == 的区别?

对于基本类型来说,一般使用==来比较值是否相等 equals不能用在基本类型,对象引用的话,equals()方法使用 ==来判断两个数据是否相等,如果我们自定义类时

直接调用Object类中的equals()方法,则判断的是地址值是否相同.如果需要判断数据是否相同需要在自定义类中重写equals()方法.

3.是否可以继承String类?为什么用final修饰?

String是final修饰的类,不能被继承; 

为了效率和安全

(1)只有字符串是不可变的,字符串池才有可能实现

(2)只有字符串是不可变的,所以多线程是安全的,同一个字符串实例可以被多个线程共享

(3)因为字符串是不可变得,所以他在被创建的时候就已经被hashcode缓存了,不需要重新计算,使得字符串很适合做map中的键

(4)如果字符串是可变的,会引起很严重的安全问题.

4.什么是面向对象编程?

面向对象编程的基本思想就是利用类,方法,封装继承多态,等概念来进行程序设计,从现实世界中实际存在的事务(对象)出发来构造软件系统,

尽可能的运用人类的自然思想进行程序设计.

5.面向对象的三大特征

继承:子类继承父类可以实现代码的抽取和复用,单继承(类),多实现(接口).

封装:将事物的属性和行为抽取出来封装到类中

多态:副类的引用指向子类的实现 Animal a = new Dog() ;  三个多态条件: 继承 重写 向上转型

6.JDK,JRE,JVM

JDK是开发者工具包,包含JRE和JVM

JRE是环境开发,包含JVM核心类库,JVM是虚拟机

7.Java基本数据类型

整形:byte  short  int  long

浮点型(小数):  float  double

布尔型:  boolean

字符型:  char 

8.什么是方法签名

方法名称和参数类型

9.Java中的访问修饰符

private (私有的,在本类可见),使用对象:变量,方法.  不能修饰类(外部类)

default(默认的,在同包内可见,可以不写关键字,默认存在) 适用对象:类,接口,变量,方法

protected(同包类和所有子类可见) 使用对象:变量,方法 ,不能修饰类

public (所有类可见) 使用对象:类,接口,变量,方法

10.final有什么用? 和finally,finalize有什么区别?

final修饰的类不能被继承,final修饰的方法不能被重写,final修饰的变量为常量,不能被重新赋值

finally一般用在try-catch结构中,不管是否出现异常,finally中的语句都会执行

finalize 是Object类的方法 用在垃圾回收站中.

 

 

标签:面试题,Java,继承,Day01,equals,修饰,字符串,方法,final
From: https://www.cnblogs.com/carney/p/17024426.html

相关文章

  • Linux环境下java环境变量配置简单说明
    第一步:到jdk包的路径下tar-xvfjdk-8u121-linux-x64.tar.gz-C/usr/lib/jvm第二步:cd/usr/lib/jvmls-ls查看下 第三步:配置环境变量vim/etc/profile按键i进入插入......
  • 第二阶段:Java SE 核心技术
    认清现实,放弃幻想特此感谢动力节点老杜分享出来的学习路线2.第二阶段:JavaSE核心技术2.1数据结构2.1.1学习目标1.掌握什么是数据结构2.为后面学习集......
  • java实现登录微博(通过cookie)
    1.获取cookie1.打开微博登录页面,浏览器F12进行抓包,登录。2.在微博首页地址栏找到url3.在浏览器调试页面找到Referer与地址栏相同的url2.代码1.加入依赖<de......
  • JAVA问题总结之28--读取某目录下所有文件
    JAVA问题总结之28–读取某目录下所有文件packagejava9231;importjava.io.File;publicclassforReadNFile{publicstaticvoidmain(String[]args){//TOD......
  • JAVA问题总结之27--创建100个文件
    JAVA问题总结之27–创建100个文件:packagejava9231;importjava.io.File;importjava.io.IOException;publicclassforCreateNFile{publicstaticvoidmain(String[]......
  • 基因数据处理119之java调用SSW在linux下运行
    更多代码请见:​​https://github.com/xubo245​​基因数据处理系列1.解释测试自带Example:xubo@xubo:~/xubo/tools/Complete-Striped-Smith-Waterman-Library/src$scala-D......
  • Scala学习5之scala与java的不同之总结1
    1.scala不同声明变量的具体类型,只需要声明是var还是val,即变量或不变量,由编译器自动判断。而java需要具体声明,比如Int,String2.scala函数声明返回值是声明在后面,而且可以不......
  • JAVA问题总结之22--Arraylist集合的操作
    JAVA问题总结之22--Arraylist集合的操作:packagecom.atguigu.java1;importjava.util.ArrayList;importjava.util.List;importorg.junit.Test;publicclassTestList{......
  • Scala学习6之scala与java的不同之总结2-重写override
    scala与java的不同之总结21.重写  scala:overridedefgetAge(){}java:@overridepublicIntgetAge(){}2.scala可以使用private[this]来更细化限定权限,private[this]可以......
  • Scala学习7之scala与java不同之总结3-特质和接口
    1.scala和java为了避免出现菱形继承的问题,都只能继承一个类,但都可以继承多个特质(scala)或者接口(java);java中使用接口interfere,接口里面只能包含抽象方法,不能包含字段,也不能包......