首页 > 其他分享 >基础语法面试题

基础语法面试题

时间:2023-01-29 08:44:06浏览次数:34  
标签:面试题 继承 重写 基础 语法 字符串 修饰 方法 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类的方法 用在垃圾回收站中.

11.this和super的区别?

this指向的是自身的一个对象,代表对象本身,super指向的是自己的一个超类对象,这个超类对象是最近的一个父类.

this()调用的是本类其他构造方法,super()调用的是父类的构造方法.

12.break,continue,return 的区别及作用.

break跳出当前循环,continue结束当前循环进入下一循环,return结束整个方法.

13.抽象类能被final修饰吗?

不能,final修饰的类不能被继承,而抽象类本身就是用来继承的,相悖所以不能.

14.static修饰的方法能调用非static修饰的变量和方法吗?

static修饰的方法只能调用静态方法和变量.

15.局部内部类和匿名内部类访问局部变量的时候,为什么变量必须要加上final?

因为生命周期不一致,局部变量保存在栈中,当方法结束后,非final修饰的变量会被销毁,而局部内部类对局部变量的引用仍然存在,调用局部变量的时候就会出错,

16.重载(Overload)和重写(Override)的区别.

重载:方法名称相同,参数类型不同,参数类型:参数数量,参数类型,参数顺序.

重写:发生在父子类中,方法的名称参数必须相同,抛出的异常小于父类,访问修饰符大等于父类

17.构造器(constructor)和是否可被重写(Override)

构造器不能被继承,所以不能被重写,但是可以被重载,

18.Java中创建对象的方式有哪些?

(1)使用new关键字

(2)使用Class类的newInstance方法

(3)使用Constructor类的newInstance方法

(4)使用clone方法

(5)使用反序列化

标签:面试题,继承,重写,基础,语法,字符串,修饰,方法,final
From: https://www.cnblogs.com/carney/p/17071675.html

相关文章

  • 2023-01-28 量学基础 高量柱 5讲
    1.高量柱的三种状态(1)巨量出货的发烧柱,应该避开(2)无量涨停的启动柱,应该擒拿(3)价涨量缩的黄金柱,应该等待。一般都是过左锋。这里可以等回调回踩黄金线介入,或者过顶介入(也......
  • vuejs从入门到精通——Vue语法——绑定事件监听器(v-on)
    绑定事件监听器(v-on)事件系统是前端开发非常重要的内容,vue对其进行了封装和扩展,使用起来更加的方便。vue官网对其指令介绍:https://cn.vuejs.org/api/built-in-directiv......
  • 三层通信基础原理
      ......
  • yml语法
    1)基本语法   键值对表示方式:k:(空格)v(注意:空格必须有,不可以使用TAB键);   属性和值都是大小写敏感;   通过空格缩进来控制层级关系;   只要是左对齐的数据,都是......
  • vuejs从入门到精通——Vue语法——Class 与 Style 绑定(绑定内联样式)
    Class与Style绑定(绑定内联样式)一、绑定对象:style支持绑定JavaScript对象值,对应的是HTML元素的style属性:template:constactiveColor=ref('red')constfontS......
  • linux基础命令
    linux基础命令前期必备知识1.命令提示符[root@jasonNB~]#root表示⽤户名信息@为分隔符jasonNB为主机名称~表示所处⽬录位置......
  • 2023-01-28 量学基础 梯量柱 9讲
    高量阳线之后出阴线抛,下跌缩量回调后阳线再进。梯量柱(三日逐渐增加)梯量柱的最后一根,跟高量柱是一致的。1.市场含义(1)常态:之后下跌,买盘逐渐增加,透支后劲。高点逢阴出货!......
  • 【Python基础学习】7.文件和数据格式化
    主要参考来源:慕课嵩天老师的“Python语言程序设计”[https://www.icourse163.org/course/BIT-268001?tid=1468130447]格式化包括字符串格式化和数据格式化字符串格式化:......
  • vuejs从入门到精通——Vue语法——Class 与 Style 绑定
    Class与Style绑定数据绑定的一个常见需求场景是操纵元素的CSSclass列表和内联样式(称为行内样式、行间样式,是通过标签的Style属性来设置)。因为class和style都是a......
  • MySQL-基础
    1、MySQL概述数据库:数据存储的仓库,数据是有组织进行存储数据库管理系统:操纵和管理数据库的大型软件SQL:是关系型数据库的编程语言,定义了一套操作关系型数据库统一标准My......