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

Java面试问题

时间:2023-03-22 11:01:15浏览次数:36  
标签:short Java 多态性 s1 float 问题 面试 子类 封装

1、面向对象的特征有哪些方面?

  答:抽象、继承、封装、多态。

  1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。

  2)继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。

  3)封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。

  4)多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。多态性分为编译时的多态性和运行时的多态性。方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(override)实现的是运行时的多态性(也称为后绑定)。运行时的多态是面向对象最精髓的东西,要实现多态需要做两件事:1. 方法重写(子类继承父类并重写父类中已有的或抽象的方法);2. 对象造型(用父类型引用引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)。

2、访问修饰符public,private,protected,以及不写(默认)时的区别?

  答:区别如下:

  作用域 当前类 同包 子类 其他

  public √ √ √ √

  protected √ √ √ ×

  default √ √ × ×

  private √ × × ×

3、String 是最基本的数据类型吗?

  答:不是。Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;除了基本类型(primitive type)和枚举类型(enumeration type),剩下的都是引用类型(reference type)。

4、float f=3.4;是否正确?

  答:不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。

5、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?

  答:对于short s1 = 1; s1 = s1 + 1;由于1是int类型,因此s1+1运算结果也是int 型,需要强制转换类型才能赋值给short型。而short s1 = 1; s1 += 1;可以正确编译,因为s1+= 1;相当于s1 = (short)(s1 + 1);其中有隐含的强制类型转换

标签:short,Java,多态性,s1,float,问题,面试,子类,封装
From: https://www.cnblogs.com/kalione/p/17242878.html

相关文章

  • 面试官:@Configuration 和 @Component 的区别
     一句话概括就是 @Configuration 中所有带 @Bean 注解的方法都会被动态代理,因此调用该方法返回的都是同一个实例。理解:调用@Configuration类中的@Bean注......
  • Prometheus性能调优-什么是高基数问题以及如何解决?
    背景近期发现自己实验用的Prometheus性能出现瓶颈,经常会出现如下告警:PrometheusMissingRuleEvaluationsPrometheusRuleFailures之后慢慢排查发现是由于Prometh......
  • Java 资源加载库 Azzet
    Azzet是一个简单的Java类库,用于从不同的源中加载资源。示例代码:BufferedImageimg=Assets.load("http://www.google.com/logos/classicplus.png");//loadedfrom......
  • Java关键字-volatile详解
    点击  ​​Mr.绵羊的知识星球​​ 解锁更多优质文章。一、介绍1.简介  volatile是java关键字,同时也是JVM提供的轻量级的同步机制2.特性  你需要先了解一下Jav......
  • java通过短信发送验证码
    /**如uid是:test,登录密码是:123123pwd=md5(123123test),即pwd=b9887c5ebb23ebb294acab183ecf0769线生成地址:http://www.sms.cn/password*/......
  • java代码中获取classpath路径
    javaweb工程中,有时候需要自己手动的去读取classpath下面的配置文件,这里总结一点读取classpath路径的方法,分享一下。方法一:Stringpath=Test.class.getResource("/").......
  • npm的常见问题及配置
    运行npminstall遇到问题:Nomatchingversionfoundforts-transformer-properties-rename@~0.14.0运行 npmsearchts-transformer-properties-rename也报错404应......
  • JavaScript 浏览器打断点 Debugging
      1.下面我们看一个例子,这里是5+1=6,但是结果是51   console.log效率会比较低  2.debug可以暂停代码,和查看变量,按F12,看Sources  3.展开鼠标类型,......
  • Java Spring使用EventSource进行服务端推送
    Java代码:@ResponseBody@RequestMapping(value="/getDate",produces="text/event-stream;charset=UTF-8")publicvoidgetDate(HttpServletResponse......
  • Java中实现按字符串位数在前面补0
    场景现在要将4在前面补位为0004。实现1.首先将方法包装为工具类StringwaterCode=CommonUtils.fillZeroBeforeString(String.valueOf(max),4);其中max为最大值即4,第二个参......