2016 - 2024

感恩一路有你

java中的面向对象怎么学 c语言的优点有面向对象吗?

浏览量:1283 时间:2023-05-16 10:03:34 作者:采采

c语言的优点有面向对象吗?

面向对象的三大特性是:整体封装、继承和多态。

C语言本身不支持面向对象,不像C、Java等在语言上早接受面向对象。

正所谓用C实现方法面向对象,那就是获得实现程序面向对象的三大特性。

其它不接受面向对象的语言,如高级语言也可以不一并加入面向对象的三大特性。

如何系统的学习JAVA?

java的整体生态和积累确实是太大了。95年到现在为止20多年的积累,完全牵涉到计算机软硬件的方方面面。我暂且就以为,提主所说的全精通,是指jdk本身和一些必要的数据结构以及广泛框架和面向对象的基本都思想吧。

从11年初现今,总是在学习java相关的知识。其中也走了不少弯路。按自己的积累,提出提主一个自以为合不合理且有一定会深度的学习路线。大概分下面几个阶段吧。

1.必须应尽可能的打牢基础的数据结构和简单的算法基础。

可以去急速的学习一些简单的四头系统,来满足的条件软件学的兴趣和初期成就感。但,你必须转回头,细细的看的培养数据结构基础和很简单算法。类似于这种书就可以不。

2.比较熟练使用Java类库和java第三方工具框架。

自学可以使用java的语法,数次表述Java语法设计的逻辑。熟练掌握jdkjava代码本身,包括各种第三方类库工具包和第三方框架的简单啊使用。这里去学习的同时,推荐一下看一下《设计模式》,《代码整洁之道》,《spring源码解读》,《Spring揭秘》等这一类的书集。

3.理解怎么学习jdkjava代码本身的应用源码实现程序和通吃第三方框架的源码和架构设计。

比如jdk本身的数据结构二叉树,红黑树,treemap,包括同步异步包的unsafe,同步阻塞队列,call-future等等包源码,包括线程基础类的实现,各个类库设计的结构和设计模式。理解透彻第三方框架的设计思想,理解学第三方框架的核心源码。

其实,这里面可能会涉及到其他的事务,分布式协议等,这里并没有发起。这个过程并非一朝一夕,肯定必须大量的时间和技术感悟。不过,《设计模式》,《代码整洁之道》,《spring源码解读与设计详析》,《Spring揭秘》等等这一大类书,在这个过程可以不解释大差不差了。

4.理解jdk,jre即jvm原理和实现。

这里我推荐看下王秀娥的《实战java虚拟机》,里面讲解时也很偏实操。容易上手明白。

首先,这个可以从jdk自带的工具去学习来从哪里入手。

.例如:jstat,jmap,jstack,jps,jdb.......甚至于也有就可以不窥视运行期间换算内存数据的HSDB。不过,以及怎么学习大致了解,我们只不需要表述正确的几个命令,并清楚其属於的意义即可。毕竟,第三方监控工具,和jdk本身也提供了3个可视化的监控。

或者,表述jvm的运行读取原理,搞懂class文件结构。

这个过程我们这个可以动用之前会用的监控工具,理解jvm读取的基本原理。这个可以参考官方各个版本的jvm标准,学习没看明白class文件。于此可以不不使用如classpy等工具,方便啊我们直接写作class文件。也也可以试一下允许class字节码级别的隐式调试工具。甚至还,可以不接触用用jvm汇编编码工具。

接下来的事情,解释jvm的垃圾回收机制发展历史和各个主流垃圾回收器的工作原理。

这个过程总之非常奇怪。垃圾回收器有各种串行,分头并进,新声代/swap和老年代,包括回收警戒线,wide触发条件,各种个样的基本参数和不怎末带的超参数,在内G1的H区,ZGC等等。。。不错的是,GC并属于什么jvm官方规范的一部分。

后再,一起动手做一些jvm的实践和实战,

比如,jvm较常见的故障排查和故障总结归纳,性能调优,热程序加载,class字节码的动态操作,asm等。

后来,是可以接触利用自己的jvm。(当然这个步骤,对很多同学来说也不是需要了)

这里我推荐一下几本书,确实是彻底搞明白jvm相关规范的学习路径。最好就是自己实现程序垃圾回收器。

周老师的《深入理解Java虚拟机》。

接下来是《深入嵌入式java虚拟机》和配套源码。这个cldc的jvm源码只有一1M多。目前在oracle的官网上,依旧可以下载。是一个设计的很精简的jvm实现方法。

下一步,可以去阅读《自己动手写java 虚拟机》。这本书的jvm基于是常规go语言c语言设计。肯定其中也有很多设计并并非相当合理不。但都差不多都按照了jvm规范。

这会儿就这个可以去去看看github上各种jvm的闭源基于了。有play,scalajvm,javainjava,ajvm,python-jvm,lua,各个版本各个不同的jvm实现程序。

当然,这些实现方法都只不过基本原理。

后面我推荐你上去看《实战hotspot》豹子书,关注高级语言虚拟机的圈子。

其实,垃圾回收的书籍也很少,这里还是推荐给你垃圾回收的超经典书《The Garbage Collection Cookbook》。实际上对新的垃圾回收算法有兴趣,也可以去知乎搜索相关的论文和GC算法开源利用的demo。

5.不过,我的建议只不过因为Java本身。

唯一要提升到全部能学好java生态,软件工程,计算机网络,大数据基础知识,mahuot,sparklib,分布式搜索架构,各种消息中间件,缓存中间件,数据库,DNS/CDN。。。。。这些是做互联网应用,避无可避的。

没有办法建议,通用知识比较熟练,去钻研方向专精,具体生态了解。

而提问是对于java本身。我就不再继续发动说其他详细方向了。具体描述的是大的技术方向,根本不会其他答主现在这样,具体去继续讨论语法糖这种级别。期望对提主所帮助。

有任何问题,欢迎您关注知道回答,与我讨论。谢谢了。

jvm 工具 java jdk

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。