浅谈 java 和 python

浅谈 java 和 python


普及常识

java

优势:

  • 简单、安全、稳定、跨平台

  • 一次编写,到处运行。
    对于一个程序员而言,写出来的程序如果不需修改就能够同时在Windows、MacOS、LINUX等平台上运行,简直就是美梦成真的好事!而Java语言就让这个原本遥不可及的事离我们越来越近。使用Java语言编写的程序,只要做较少的修改,甚至有时根本不需修改就可以在不同平台上运行了,Java绝对是跨平台的一门编程语言。

  • 具有多线程处理能力。线程,是一种轻量级进程,是现代程序设计中必不可少的一种特性。多线程处理能力使得程序能够具有更好的交互性、实时性。Java在多线程处理方面性能超群,具有让你惊喜的强大功能,而且在Java语言中进行多线程处理很简单。

  • 具有较高的安全性。由于Java语言在设计时,在安全性方面考虑很仔细,做了许多探究,使得Java语言成为目前最安全的一种程序设计语言而且Java开发组还宣称,他们对系统安全方面的Bugs非常重视,会对这些被发现的进行立即修复。而且由于Sun公司开放了Java解释器的细节,所以有助于通过各界力量,共同发现、防范、制止这些安全隐患。

劣势

  • 需要运行环境、不适合开发桌面应用程序
  • 与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。
  • Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的。java文件和.class文件,以及对应的版本文件。
  • 跨平台性,虽然是很好的优势,可以让JAVA在任何的系统中运行,但是前提是该系统要安装JAVA虚拟机,这样导致一些JAVA编写的桌面程序无法在一般的用户(没有安装JAVA虚拟机的用户)上使用

应用

  • BS结构的ERP系统、金融系统、电子商务系统、网站等
    几乎所有的银行系统和银行网站都是基于Java平台的。

  • python

Python 的官方介绍是:

  • Python 是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程。Python 简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。

  • 龟叔(python创始人)给Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。

  • 当你用一种语言开始作真正的软件开发时,你除了编写代码外,还需要很多基本的已经写好的现成的东西,来帮助你加快开发进度。比如说,要编写一个电子邮件客户端,如果先从最底层开始编写网络协议相关的代码,那估计一年半载也开发不出来。高级编程语言通常都会提供一个比较完善的基础代码库,让你能直接调用,比如,针对电子邮件协议的SMTP库,针对桌面环境的GUI库,在这些已有的代码库的基础上开发,一个电子邮件客户端几天就能开发出来。

  • Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。

  • 总的来说,Python的哲学就是简单优雅,尽量写容易看明白的代码,尽量写少的代码。

缺点

  • 任何编程语言都有缺点,Python也不例外。优点说过了,那Python有哪些缺点呢?

  • 第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。

  • 但是大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来。例如开发一个下载MP3的网络应用程序,C程序的运行时间需要0.001秒,而Python程序的运行时间需要0.1秒,慢了100倍,但由于网络更慢,需要等待1秒,你想,用户能感觉到1.001秒和1.1秒的区别吗?这就好比F1赛车和普通的出租车在北京三环路上行驶的道理一样,虽然F1赛车理论时速高达400公里,但由于三环路堵车的时速只有20公里,因此,作为乘客,你感觉的时速永远是20公里。


对于想入门IT行业,纠结java 和 python 做出选择,不妨看以下摘自知乎上的一些客观评价。

python虚拟机没有java强,java虚拟机是java的核心,python的核心是可以很方便地使用c语言函数或c++库。


在实际使用的python入门简单,但要学会用python干活,需要再学习python各种库,pyhton的强大在于库,为什么python的库强大,原因是python的库可以用python,c语言,c++等设计,再提供给python使用,所以无论gpu运行,神经网络,智能算法,数据分析,图像处理,科学计算,各式各样的库在等着你用。而java没有python那么多的开源库,很多库是商业公司内部使用,或发布出来只是一个jar包,看不到原始代码。


java主要用于商业逻辑强的领域,如商城系统,erp,oa,金融,保险等传统数据库事务领域,通过类似ssh框架事务代码,对商业数据库,如oralce,db2,sql server等支持较好,软件工程理念较强,适合软件工程式的多人开发模式。python主要用于web数据分析,科学计算,金融分析,信号分析,图像算法,数学计算,统计分析,算法建模,服务器运维,自动化操作,快速开发理念强,适合快速开发团队或个人敏捷模式。


python用途最多的是脚本,java用途最多的是web,pyhotn是胶水,可以把各类不相关的东西粘在一起用,java是基佬,可以通过软件工程组成几百个人的团队和你pk,商业化气息重。不过我认为还是python强大,因为可以方便调用c或c++的库,但软件工程和商业化运作没有java好,适合快捷开发。


面向市场不同,看公司人员情况,公司大,项目大,人多,流动大,就Java,因为规范,老人走了新人容易接手。
公司小,人少,项目小,员工积极,不经常换人,就python,这样项目进度噌噌的。


Python语言有两种,2和3。(python2 和 python3 版本区别很大,兼容不好,不利升级)
Java只有一种(java版本一般向后兼容,方便升级)。


Java应用广性能好工程性强码农多轮子多,除了写起来啰嗦点没啥坏处(这还有IDE扶着),学好了不愁没饭吃,学得不太好其实也不愁。Python入门简单应用还算广轮子多,工程性不好性能也不太好,关键在于门槛低并且看起来跨过门槛就无所不能。但是实际上如果不够精通的话会很坑,而精通其实也不简单。学好了不愁没饭吃,并且可以做到少干活多吃饭,学不好愁死你。如果是与写代码关系比较密切的专业,并且你在此之前没有充分了解过任何一门OOP语言,那么推荐学Java;如果早就熟悉了一门OOP语言并且学得比较好,可以考虑Python;如果是不怎么密切只是要接触一下编程,推荐学Python。


学java时重点放在OO思想上,研究怎么设计对象模型;学Python时重点放在基本数据结构、语言特性上,研究如何用最简明、迅速却不失可维护性的方法解决小规模问题。个人觉得学习顺序不是很敏感,不过Python的OO设计最好放在java之后来学,因为动态特性的缘故,坑有点多。把java当商务车,把python当越野车,都会开是坠吼的~


至于前景,目前来看,Java分为两大方向,移动和Web。移动开发这一块其实就是安卓了,而Web就比较广了,Server、框架,组件,业务逻辑,Map-Reduce等都可以由Java来开发。Java的语言特点是重,对于初学者而言,往往纳闷一个简单的小例子怎么要这么多代码,这都源自其纯OOP的原因。Python的应用场景蛮多的,从Web到和计算平台都有轮子可供使用,但其在科学计算领域占有重要角色,如时下兴起的机器学习,人工智能,如果你学习Python的话,建议你也顺带了解下数据科学。


在学校二选一的话,建议Java。Python完全可以自学。简单介绍下二者区别,Java有三个体系:java SE、Java EE、Java ME,最常见的是前两个。在工程方面java用得多一点,中型、大型的项目使用java可能维护成本要小一些。java语言可以应用于目前的移动开发(Android)、web开发(Spring + Struts +Hibernate、JSP等)。Python特点是入门快、写法灵活、开发效率高,并且写出来的代码易于理解。应用也十分广泛,例如数据分析、测试等。Python具有丰富和强大的库。


Java面试题20页
python的两页
最后闹清原因,说是Java学的人太多了,得精挑细选。


找工作学java,娱乐的话学python。


你现在觉得Python漂亮,或者说动态语言比较爽,还是写的东西太少。慢慢的你就会发现项目规模大的时候静态语言(java)是很有优势的。况且现在动态语言静态化也算是个趋势了。Python还有GIL之类的老大难的问题。看问题不要太极端。我的建议是有时间两个都看看。找工作还是平台、薪资、技术积累之类的东西作为主要标准比较好。


对于选Java还是Python,尤其于毕业生来说,我是倾向于Java的,而且你自己也是说Java基础更好。为什么呢?因为:1. Java更成体系,能帮你打好更扎实的工程化基础,强类型、OOP、各种框架、设计模式,乃至测试、团队协作等方面。2. Java应用广泛,大公司用,小公司也有用。3. Java还能写Android App。那啥时候选Python呢?真的有一家前景看好的如豆瓣、知乎这样的公司要你,或者你想做数据科学家、ML专家。否则还是把Python作为第二语言比较合适。按我的判断,你现在正处于编程道路的新奇阶段,容易产生一时兴奋。走着走着,Python用多了,你也许会萌生“动态类型是一时爽,代码一多就地雷场”的想法。总之,编程语言主要还是看驾驭它的人呐。“三分天注定,七分靠打拼”,孰好孰坏也有一点点运气在里头就是了。


java,先找到工作养活自己要紧,


找工作,Java的工作岗位比Python要多。


没有搞过数据挖掘不知道python的好,没有搞过深度学习/机器学习的不知道python的好,没搞过人工智能的不知道python的好;


没搞过企业级项目开发的不知道Java的好,没调试过庞大的项目的不知道java的好,没维护过庞大项目的不知道java的好


如果你是名待业者,希望进入程序员这个行业,毫无疑问选java,因为在国内这个环境下,java还是容易找工作的,当然我并不是在排挤学python就不好找工作,只是你没有其它语言背景的话很难成为python大牛,但当你学完java再去学python后一切将变得很easy。


个人建议java为主线,python为辅线。上战场的时候带枪都不会只带一把的,玩过CS就知道了,但是千万不要把 Java和Python 与 AK47和沙漠之鹰对号入座,这样会限制自己的视野。


如果现在正准备找工作,其实还是Java吃香一些,无论在中国还是美国Java在企业招聘中都比Python的要求要多,最近看的2013年度美国职场上最火的语言还是Java,而Python则在五名开外。不可否认,Python有作为未来主流语言的趋势,但是从现实来讲,先学Java更保险。毕竟Python转Java比Java转Python还是要难一些的。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值