这里先介绍一下Java,Java是一种面向对象的编程语言,笔者认识和了解的第一个编程语言是C语言,这里就以C语言和Java的区别谈一谈对Java的认识和了解。
认识和了解是感知事物的两个层面,显然,对于编程语言来说,认识和了解相对于熟悉和精通又是两个级别,笔者只停留在认识和了解的两个层面,所以,不敢在这里肆意妄为,夸夸其谈,只做简单的比较,层层递进,对新手村的编程新手提一些建议和分享。
对于C语言来说,笔者学习了数组、函数、指针、结构体,还有动态内存分配,以及C库函数等知识。C语言采用了面向过程的开发方式,认为编程的重心应该是函数和功能的实现,比较侧重于算法,即怎么实现一个功能。举个例子,求三角形的重心。这很简单,直接定义三点坐标,套用重心坐标公式即可获得,然后对函数命一个名即可,而学了结构体后,可以对坐标用结构体表示出来,然后在函数里面使用即可。
后来,随着学科的增多,笔者认识了Java,它是一种面向对象的编程语言,什么是面向对象呢,这里的对象就是一个具体的事物,如一张桌子,一个人,一只动物等等,这有什么值得研究的呢,很多,比方说一个人,这个人属于什么群体,什么性别,出生日期,做什么职业等,也就是说这个人具备哪些信息特征,我们都可以用一个类来表示,对事物的分门别类是一种全新的认知过程,Java正式在这种认知过程之上产生的。比如说,上面的求重心的函数,在Java中,它是一个方法,这个方法位于三角形类中,由于每个三角形都有重心,所以,使用Java编程时首先定义一个三角形类。这个三角形类中定义了顶点坐标,然后再重心计算方法中使用这几个顶点坐标。
从上面的两个段落看来,Java的编程重心转移到了定义类,而不是函数实现。当然,Java对这两部分都做了改进和升级。提出了,封装、继承和多态等高级知识。促进了编程语言的发展。
笔者,了解Java的时候对Java的图形界面非常感兴趣,然而Java的图形界面开发是一个失败的探索过程,这里不做介绍。
下面对C语言和Java的区别和联系做一些简单的整理:
1、从开发方式来看
C语言的开发方式比较传统,是面向过程的,Java的面向对象的开发方式比较具有优越性、简单性和易于理解性。Java综合了面向过程和面向对象两种方式,其中主要是面向对象。从开发方式上来看,Java好像具备了划时代的意义。
2、从运行平台和模式上来看
C语言主要是运行在操作系统上,也就是说C语言依赖于操作系统,并且是一种解释型语言(边编译边执行),而Java不依赖于操作系统,运行于Java虚拟机上,是一种编译型语言(一处编译,到处执行),这叫跨平台特性。这样传统的C语言实现的软件对于不同的操作系统上,不好维护,且开发过程中开发人数较多,因为对不同的操作系统要重新开发。从运行平台和模式上来看,Java拥有运行速度快,便于维护,跨平台上。
3、从业务能力上来看
C语言主要用c/s开发模式,适合做客户端,当开发完成后,部署到应用市场上后,需要用户手动更新,而Java则主要为服务器而生,适合b/s开发模式,C语言适合开发系统软件、工业软件、以及嵌入式。Java适合应用软件,尤其是需要服务端的,比如商业上的购物商城、云课堂、企业官网等,这些需要针对特定用户群体需求的应用一般都采用Java做服务端。从业务能力上看,C语言和Java旗鼓相当,各有不同。
4、从优势上来看
C语言的优势是与特定的操作系统上应用软件进行了绑定,如office软件、各种图形化处理工具,这些软件需要在相应操作系统的应用市场上才能找到和安装,比较适合专业的用户群体。而Java的优势是跨平台性,提供相应的服务接口即可在装有Java虚拟机的平台上使用和维护。它们各有自己的优势,而针对的群体不同。
一些对新手的建议:
1、复制粘贴
笔者了解到Java的时候,是一种怎样的体验呢,首先是思维的转变,面向对象!然后就是各种编,单独的Java应用程序(mian方法启动)开发的不多,大多都是网页开发写Java服务端。所以给出的建议是复制粘贴,首先要具备看懂方法体的能力,修改代码的能力
2、配合数据结构
笔者了解(进阶)Java的时候,就有一本书是Java语言程序设计进阶篇,俗称数据结构,虽然在服务端开发很少用到数据结构,Java也封装了集合框架,但数据结构一定得会。
3、多了解和熟悉第三方开源库
Java的发展离不开第三方开源库,很多功能都已被实现的差不多了,不需要重复造轮子,只需复用相应的解决方案即可,同时Java的开发模式也基本定型,如果不是高级工程师,基本的第三方开源库已经够用了。
4、回归C语言
也许这个建议会被嘲讽,但怎么说呢,aparche的Tomcat想必都是知道的,它们也有C语言代码的(我猜的),所以,总之C语言是不能忘记的。
最后,笔者把了解到Java知识点整理出来,分享一下:
1、字符串
基本上,每种语言都封装了字符处理程序,Java的基本类库里面有字符串类。使用起来比较方便
2、数学函数库
Java的数学函数库位于base包下,字符串和Math类都不需要引入,它是自动载入的。
3、文件、流与异常
文件读写和流处理是Java中比较难的编程,好在Java服务器开发过程中已经有成型的开源库。另外,异常相对来说比较复杂,各种异常都有各自的处理方法。
4、集合框架
集合框架封装了对数组的操作,相对来说也比较简单,包含了对数据结构中的链表、规则集的hash的封装。
5、日期与时间
日期时间类与集合框架同属于工具集,位于util包下,是专门处理日期时间处理类。
6、注解与反射
多了解或许有所帮助,但用处笔者也不知道怎么用。
7、GUI
图形用户开发接口,位于awt,swing包下,提供了图形界面需要的控件和布局类,不过Java好像没有维护了。
8、打包与解压
位于util.zip包下,提供了打包和解压的文件的功能。
9、网络、NIO、多线程
笔者表示很少使用(无奈、难懂、深奥、复杂)
10、设计模式
一笔带过(熟悉级别的程序员的进阶宝典)
10、第三方开源库
spring、mabatis(就知道这两个)
标签:Java,操作系统,认识,C语言,面向对象,了解,开发,笔者 From: https://blog.csdn.net/2402_89594624/article/details/144750766