对于Java的深入理解及其特点--面试

前言

计算机语言千千万,每一种语言都有其自己的特点、擅长的领域。在学习了Java之后才对Java有了进一步的理解。

面试问一:

你是如何理解Java这门语言的?

这里我们应该从下面几个点去总结

1、Java语言具有的属性

2、他的特点在哪

Java语言具有的属性

Java语言是一种简单的、面向对象的、安全、可跨平台、可移植性高、健壮、可以进行分布式开发、支持多线程的具有高性能的一门语言。

简单性:它剔除了C语言麻烦的指针操作,头文件的引用以及联合等。

面向对象:它注重问题的双方而不是解决问题的过程。把重心放在了面向数据、对象的创建以及接口上。

安全性:

1、Java封装特性:将数据隐藏起来,只留下可以调用的接口。

2、无指针:这样黑客不可以到处请求不该请求的数据

3、边界检查:防止出现数组越界的问题

4、强制类型转换:不同类型的对象不能转换,否则抛出ClassCastException

5、对线程安全的支持:java语言支持多西acne很难过,从语法以及语言本身对线程做了很好的控制和支持

6、java的安全还通过编译器、检查器、类加载器等方式保证了程序的安全性

Java最基本的安全性有三个:

1、GC回收机制:垃圾自动回收防止程序出现内存泄漏的问题,防止程序的崩溃

2、Exception:他包含很多类型的错误,最常见的null,空指向错误,在访问一个没有分配数据的地址时防止获取到空值或者不该访问的数据。

3、没有指针:这样的话就防止人们请求不该请求的地方或者错误的地方。在C语言中,黑客可以通过stack over的数据覆盖来获取到不该访问地方的数据。

可跨平台:

这一功劳要靠我们的JVM。java的运行不是在CPU上,而是通过java -c 编译成字节码(.class)文件,再通过java指令运行在JVM上的。

所以只要平台安装了JVM以及基本的jre(JVM包含在jre中)就可以到处运行了。

可移植

java对基本数据类型的大小和有关算法都做了明确的说明,比如java中的int 永远都是32位,C则是根据不用编译器不同去调整数据的带线啊哦。这种固定的大小消除了字节顺序以及获取的困扰、字符串采用Unicode。

多线程

Java的多线程处理相比其他语言更加便捷

健壮:

Java健壮性体现在GC上,相对于C语言的手动内存释放遗忘问题。java启动一个单独的线程垃圾回收线程来检测是否有内存空间应该被释放,这样合理的安排内存空间。

也花费了大量精力进行早期和后期问题见擦汗,防止内存分配错误,防范了内存泄漏。

在这以上把概括说出,不要把每个点都详细讲出,你的每一次回答都可能成为面试官的下一个问题,也没有那么多时间说出这么多概念。

特点:

面向对象:面向对象的三个特性:封装、继承、多态。  

封装:隐藏内部实现细节,只留下对外访问的接口供给使用。

继承:子类可以拥有父类的除去私有方法,以及属性的其他属性。可以提高代码的可读性减少代码冗余。

多态:多种状态,比如英雄联盟中盲僧的Q是发出能量波,盖伦的Q是天降正义这种。通过重写/重载的方法去改变类中方法的作用来提高代码的可阅读性以及冗余。

重载与重写的应用场景

现在有个造三轮车的厂:

重载:我现在要造一个四轮车,要多一个轮子,通过重载加一个轮子来完成这个要求。

重写:我要造一个三轮油车,把电系统改成油系统。

可跨平台。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极品小學生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值