天天学JAVA-JAVA基础(1)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_15127715/article/details/102694157

如果觉得我写的还行,请关注我的博客并且点个赞哟。本文主要介绍JAVA基础相关问题,通过阅读本文,你将掌握以下10点

  1. java语言是什么?
  2. Java 语言有哪些特点?
  3. 面向对象和面向过程的区别
  4. Java和C++的区别
  5. Java 应用程序与小程序之间有哪些差别
  6. 字符型常量和字符串常量的区别
  7. 构造器 Constructor 是否可被 override
  8. 重载和重写的区别
  9. Java 面向对象编程三大特性
  10. 接口和抽象类的区别是什么

.接口和抽象类的区别是什么

1. java语言是什么?

Java是一门面向对象的程序设计语言,它自问世以来,受到了前所未有的关注,并成为计算机移动电话、家用电器等领域中最受欢迎的开发语言之一。

2. Java 语言有哪些特点?

1.简单易学;
2.面向对象(封装,继承,多态);
3.平台无关性( Java 虚拟机实现平台无关性);
4.可靠性;
5.安全性;
6.支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持);
7.支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设计的,因此 Java语言不仅支持网络编程而且很方便);
8.编译与解释并存;

3. 面向对象和面向过程的区别

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了; 面向过程性能比面向对象高。 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。面向对象易维护、易复用、易扩展。 因为面向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,面向对象性能比面向过程低。

4. Java和C++的区别

都是面向对象的语言,都支持封装、继承和多态、
Java 不提供指针来直接访问内存,程序内存更加安全
Java 的类是单继承的,C++支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。
Java 有自动内存管理机制,不需要程序员手动释放无用内存

5. Java 应用程序与小程序之间有哪些差别

Java 应用程序从主线程启动(也就是 main() 方法)。
applet 小程序没有 main()方法,主要是嵌在浏览器页面上运行(调用init()或者run()来启动),嵌入浏览器这点跟 flash 的小游戏类似。

6. 字符型常量和字符串常量的区别

形式上: 字符型常量是单引号引起的一个字符; 字符串常量是双引号引起的若干个字符 、
含义上: 字符型常量相当于一个整型值( ASCII值),可以参加表达式运算; 字符串常量代表一个地址值(该字符串在内存中存放位置)
占内存大小 字符常量只占2个字节;字符串常量占若干个字节(至少一个字符结束标志) (注意: char在Java中占两个字节)

7. 构造器 Constructor 是否可被 override

构造器Constructor 不能被 override(重写),但是可以 overload(重载),所以你可以看到一个类中有多个构造函数的情况。(在讲继承的时候我们就知道父类的私有属性和构造方法并不能被继承\)

8. 重载和重写的区别

重载: 发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同,发生在编译时。   
重写:发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法访问修饰符为
private 则子类就不能重写该方法。

9. Java 面向对象编程三大特性

封装
封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问。但是如果一个类没有提供给外界访问的方法,那么这个类也没有什么意义了。

继承
继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。通过使用继承我们能够非常方便地复用以前的代码。

关于继承如下 3 点请记住:

子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法子类是无法访问,只是拥有。
子类可以拥有自己属性和方法,即子类可以对父类进行扩展。 子类可以用自己的方式实现父类的方法。(以后介绍)。

多态
所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量到底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。 在Java中有两种形式可以实现多态:继承(多个子类对同一方法的重写)和接口(实现接口并覆盖接口中同一方法)。

10.接口和抽象类的区别是什么?

接口的方法默认是 public,所有方法在接口中不能有实现(Java 8 开始接口方法可以有默认实现),而抽象类可以有非抽象的方法。
接口中除了static、final变量,不能有其他变量,而抽象类中则不一定。
一个类可以实现多个接口,但只能实现一个抽象类。接口自己本身可以通过extends关键字扩展多个接口。
接口方法默认修饰符是public,抽象方法可以有public、protected和default这些修饰符(抽象方法就是为了被重写所以不能使用private关键字修饰!)。
从设计层面来说,抽象是对类的抽象,是一种模板设计,而接口是对行为的抽象,是一种行为的规范。
备注:在JDK8中,接口也可以定义静态方法,可以直接用接口名调用。实现类和实现是不可以调用的。如果同时实现两个接口,接口中定义了一样的默认方法,则必须重写,不然会报错。

如果你觉得我写的还行,请关注我的博客并且点个赞哟,也请关注我的公众号,每天会定时推送干货.
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_15127715/article/details/102694157
今日推荐