【一分钟知识】面对对象、基本类型

【一分钟回顾】系列

很多知识都是概念性的东西,有时候你知道这个技术的用法,但未必就能准确地说出它代表的含义与思想。一分钟回顾系列文章会从基础开始到后期的高级,带你慢慢回顾java的小知识,时间花费不会很多,会尽量控制在一分钟左右。敬请期待。

1、面向对象的特征

  • 抽象
    • 将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面
    • 只关注对象有哪些属性和行为,并不关注这些行为的细节是什么
  • 继承
    • 从已有类得到继承信息创建新类的过程。
    • 提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。
    • 继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段
  • 封装
    • 把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口
    • 面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。
    • 可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口
  • 多态
    • 多态是指允许不同子类型的对象对同一消息作出不同的响应。
    • 简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。
      • 多态性分类
        • 编译时的多态性
      • 方法重载(overload)
        • 运行时的多态性
      • 方法重写(override)

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

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

3、float f=3.4;是否正确

  • 不正确
    • 3.4是双精度数,双精度型(double)
    • double赋值给float属于向下转型,会造成精度损失。
  • 正确写法
    • float f =(float)3.4; 或float f =3.4F;

4、int和Integer区别

  • int的包装类就是Integer
    • 自动装箱/拆箱机制
      • 自动装箱是 Java 编译器在基本数据类型和对应的对象包装类型之间做的一个转化。
      • 比如:把 int 转化成 Integer ,double 转化成 Double,等等。反之就是自动拆箱
  • 原始类型
    • boolean,char,byte,short,int,long,float,double
  • 包装类型
    • Boolean,Character,Byte,Short,Integer,Long,Float,Double

5、String和StringBuilder、StringBuffer的区别

  • String
    • 只读字符串,引用的字符串内容是不能被改变
  • StringBuffer/StringBuilder
    • 字符串对象可以直接进行修改
    • StringBuffer线程安全,效率略低
    • StringBuilder非线程安全,效率比StringBuffer高

原文发布于微信公众号 - java思维导图(java-mindmap)

原文发表时间:2018-02-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python入门

python循环语句详细讲解

想必大家都知道python循环语句吧,可以python循环语句有多种,比如for循环、while循环、if、else等等,

14900
来自专栏从流域到海域

Python 函数

Python的函数与其他语言的函数概念上是一致的,只是形式上有所不同。在面向过程的编程语言中(C语言),函数是代码的基本组成形式,是功能的基本模块;在面向...

22270
来自专栏Brian

C++11基础学习系列一

---- 概述 C++11标准越来越趋于稳定和成熟,国外c++11如火如荼而国内却依然处于观望期。每当提到C++很多程序员都很抵触,特别是学术界的呼声更高一些。...

28340
来自专栏take time, save time

初级程序员面试不靠谱指南(五)

四、递归的第一次亲密接触     我经常会想,如果给没有学过计算机或者数学的人说递归这个词他们脑中会怎样理解这个词的意思。递归这个概念在面试中出现的概率大于85...

35780
来自专栏chenjx85的技术专栏

leetcode-561-Array Partition I

20170
来自专栏我的技术专栏

C++ 引用计数技术及智能指针的简单实现

36030
来自专栏用户画像

迷语博士的难题

两面族是荒岛上的一个新民族,他们的特点是说话真一句假一句且真假交替。如果第一句为真,则第二句是假的;如果第一句为假的,则第二句就是真的,但是第一句是真是假没有规...

8310
来自专栏机器学习算法与Python学习

“基数排序”展现Python的优雅与简洁

在这儿那桶排序为例目的不是向大家介绍基数排序这种排序方式,是想通过基数排序的实现来展现Python的简洁与优雅。在这儿先简单的介绍一下基数排序,至于具体的内容会...

37150
来自专栏JavaEdge

2018-09-04Q:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。方法一:递归实现1+2+..+n;

共同点:一,利用利用短路 && 来实现 if的功能;二,利用递归来实现循环while的功能

12520
来自专栏趣谈编程

堆排序

面试官:写一个堆排吧 我心想:幸好昨天刚看 ? 堆排是基于堆的一种排序算法,对于堆的了解,请看可以管理时间的二叉堆(如果对堆的插入和删除不清楚,强烈建议先看堆...

24090

扫码关注云+社区

领取腾讯云代金券