java 学习心得

本人菜鸟一枚,接触编程语言也已经有一年多了,但是系统的学习编程语言却只有不到半年,因为个人原因或者也有少许的外界因素,总之荒废了好多时间。

   好了,废话不多说,言归正传,鄙人接触java也已有半年,想写一点自己的学习心得,与大家共勉,在鄙人看来,如果把java和c放在一起进行比较的话,也许更能看出来年各种语言的优缺点,c是一门十分古老的高级编程语言,姑且这样说吧,考虑到计算机这门学科的发展速度,说它古老,也不足为过,相比java来说,c更加简单,方便,但c也有其致命的缺点,从根本上来说,c是一中面向过程的语言,而java是一种面向对象的语言,两者在这方面,又没有什么可比性而言,两种语言关注的重点不同,自然会有差异。

    Java和C都是指令式语言(Imperative Language),不同的是Java有面向对象(OO)成分在里面,而C是完全面向过程的,C的高级版本C++、C#支持面向对象。
另外一个不同是,Java跨平台,既不同的操作系统都可以通过JVM来解释Java程序,而C、C++、C#则是与平台相关的,有些指令只在某些操作系统中才能执行。具体原因是,Java是解释型语言,所有代码都会翻译成统一的、与系统无关的bytecode,然后放到JVM上运行;而C是编译式语言,代码要先通过编译器转换成与系统相关的中间代码,然后才能运行。
再一个不同是,Java不支持系统调用,既无法与操作系统进行交互,这是由它跨平台的特点决定的,而C则可以调用系统中的指令,如fork()。这也就是为什么Java中只有线程(Thread)概念而没有进程(Process)概念,而C两者均有。
再者,Java无法对内存进行控制,而C则可以通过指针对内存进行人为分配。
还有一点,Java有Gabbage Collection机制,可以自动回收不再使用的空间,而C则要用free()函数释放空间。

从高一点的角度去看待编程语言的话,如果说c是一门艺术的话,java就只能称为技术了,但从实用性来说,java的实用性要更为广泛一点,java的跨平台性是c所无法比拟的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值