什么叫开源,都说JAVA是开源的?
开源就是开放程序源代码。就是把程序源代码发放出来,让程序的用户可以获得。
开源和收不收费没有关系,开源软件同样可以收费。
编程语言本身没有开不开源的问题。开不开源的是把语言编译成可执行程序的编译器或者是执行这种语言写的脚本的解释器软件。
也有编译java的编译器是不开源的。当然,常用的java的编译/解释器都是开源的。
所有常见的编程语言,像C, C++, Basic, Pascal, Php, Python等等都有开源的编译器或解释器。
对自己懂编写软件的语言的用户而言,水平高的可以对软件做修改以满足自己的特殊需要。水平低的可以学习。
因为软件有很多人知道源代码,有问题也容易发现。其它不懂编程的用户也相对放心一点。
对于软件编写者而言,他有可能得到看他软件源代码的高手的指导,别人也可能帮他发现软件中的问题,甚至有人帮他修正源程序中的错误。
而且,如果知道源代码的人比较多,就算他有一天不想继续开发这个软件了,也很容易找到接手的人,这对于用户也是一件好事。
java开始收费,然而自己大学主修java,还没毕业,前途还大吗?
谢谢邀请!
在Java11推出之后,Oracle公布了后续Java的发展路线,整个行业免费使用Java的时代可能要结束了,当然对于个人用户来说,只要不用于商业用途,使用Java还是不受影响的。但是Java的收费计划对于IT行业将产生一定的影响,尤其是广大中小微软件企业。
虽然Java即将开启收费使用的模式,但是对于整个IT行业来说,要想在短期内转换到别的编程语言也并不现实,Java语言经过多年的发展已经有了一个完整的生态,应用领域遍布Web开发、大数据开发、Android开发以及人工智能开发等领域,尤其是对性能稳定性要求比较高的大型互联网平台,使用Java是一个风险比较低的选择。
所以,对于本科生来说,现在学习Java依然是个不错的选择,在未来很长一段时间内,Java语言将依然有广泛的应用,目前Java的就业岗位也是比较多的。但是,从另一个角度来说,编程语言只是一个工具,应该选择一个自己的主攻方向,然后在大学期间打下一个扎实的基础,这样未来在语言的选择上也会有较大的灵活性。
对于计算机专业的大学生来说,应该把主要的经历放在以下三个方面:
第一:计算机基础知识。计算机基础知识包括数学、算法设计、数据结构、操作系统体系结构、数据库原理、计算机网络、电子电路等内容,一定要重视算法设计和数据结构,因为编程问题说到底就是算法问题(数学问题)。
第二:制定一个主攻方向。虽然在本科生阶段并不会过多强调方向的重要性,但是有一个主攻方向会让自己的学习路线更加系统化,也更加聚焦。目前选择物联网、大数据、云计算、区块链等方向都是不错的选择。
第三:注重动手能力的培养。多做实验,不论是使用Java还是Python、PHP等语言,一定要多动手操作,编程思想的建设是以实验为基础的。
我的主要研究方向是大数据和人工智能,目前也在带相关方向的研究生,我会陆续在头条写一些关于大数据方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有软件开发方面的问题,也可以咨询我,谢谢!
兄弟,我不是什么牛人,我说的话你听过就算。
第一. 不要担心这个语言的前景,我可以告诉你,除了几个比较复杂的语言,世面上流行的语言全天候学习情况下你一周就能掌握基本语法,熟练使用大概一个月吧。精通无止境。
第二. 不要担心市场饱和问题,一个已经被说烂的说法:这个社会永远缺能人。很多人工作多年连代码都写不明白,满脑子浆糊。胜过这些人不难吧。所以,你还是想明白怎么做个好的程序员。
第三. 既然你已经担心未来的就业问题,那就不防想想将来要做哪种开发:前端开发,后端开发,大数据,数据挖掘,云计算,机器学习,移动应用,想明白了就去做。
第四. 不要在乎自己的专业问题,看到那个叫 @刘鑫的答主了么。这是圈内的著名野生程序员,跟他打交道的貌似也有不少野生程序员。你不是计算机专业并不不妨碍你读计算机书籍,顶多会累点啦。何况你还可以考博,貌似博士还是很受欢迎的。我群里有个月薪4w的女孩,最近感概学位还是很重要的,另一个高手也如此表示。
第五. 不要报什么培训班。你羞不羞啊!你都硕士了,你去报班?!自学能力呢?别的行业我不知道,“IT这个行业自学能力非常重要” * 3!而且是持续不断地自学。这个行业,你一年不学习就落后。我只是稍微对前端不那么上心就tmd发现现在的web前端开发完全无法理解了。
Oracle JDK收费
Oracle说的很清楚了,是Oracle JDK收费,而不是Java收费。
Oracle收了Mysql之后,现在也是两个版本,一个收费一个不收费,购买企业版的Oracle会提供售后服务,你们可以花钱用;但是一般情况免费版的就够用了,甚至很多大厂有足够的研发能力,直接在免费的Mysql上改,也可以做到更牛一些;而比较大众的我们,直接用免费版就行了,也够用。
这个要收费的Oracle JDK,不差钱的公司可以考虑使用;比较大众的我们,直接用免费的Open JDK就行了(Oracle已经承诺与OpenJDK兼容)。
补充一下常见的JVM:
Hotspot:官网上下的基本都是这个,免费的。
J9t:IBM的,商用的需要和IBM的其他软件绑定,比如webSphere。
Zing VM:这也是收费的,而且很高,垃圾回收做的很牛,很变态。(可以在 10ms 内回收 TB级别 的内存)
JRockitt:老人们应该比较熟悉。
Microsoft JVMt:这个没有了,你懂的。
个人给一个建议,就是在工作过程中,不要把关注点百分之百地放在编程语言本身上面,还有很多更重要的东西需要学习和积累:
基础知识,包括数据结构、算法、网络知识等,这些看似没有什么实际作用,但这些都是程序员的内功;
业务知识的积累,业务和技术同样重要;代码只是工具,最终还是要解决业务上的问题;
抽象思维,逻辑思维;解决问题的能力;见识更多的问题,积累更多的解决方案等等。
等到了某个程度,你会发现,你再学习另外一门编程语言的时候,代码语法这些东西,并不是什么难事儿。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

