Java包括什么?

经过20多年的发展Java从最初嵌入在网页中的Applet发展到几乎各个开发领域,包括Web解决方案、大数据、人工智能、移动互联网、物联网、云计算等等。所以目前Java成为了程序员必须掌握的开发语言之一,相信在未来很长一段时间内,Java依然会是一门被广泛使用的开发语言。那么Java到底包括哪些内容呢?答案首先要到Java的官方资料中查找。

这是Java官方给出的Java技术提纲,下面对这里面的技术进行分别解读:Java SE这是很多初学者最初学习Java就接触的内容,简单的说就是Java的标准版,也是很多其他版本的母版(基础版),Java SE是学习Java技术的第一步,目前已经更新到Java 10版本。这一部分从创建一个基本的Java类开始,描述Java面向对象编程的核心概念以及编程过程:类的设计、对象的创建、方法的调用。

细节包括类、对象、属性、方法、封装、继承、多态、异常、集合、线程等,也包括一些诸如java.time包中的类如何使用,以及如何部署Java程序。这一部分主要讲解如何使用Swing和JavaFX,这两个技术是目前使用Java做图形用户界面的主要解决方案。JavaFX出现的时间较晚,很多使用JavaFX的程序员对这个技术的评价还是非常不错的,随着版本的更新,相信JavaFX将会得到更好的发展(我之前的文章中有针对JavaFX的详细介绍)。

Swing是在AWT基础上开发的轻量级GUI解决方案,图形组件采用了MVC结构,操作简单且功能强大,唯一的遗憾是速度偏慢。这部分涵盖了JavaSE中的诸多细节,包括网络编程、平台适配、JavaBeans、JDBC、JMX、JNDI、JAXP、JAXB、RMI、反射、安全、多媒体等内容。这里面每一个内容都需要写上一本书才能完全讲解清楚,包含的细节也非常多,这里面的RMI是Java分布式编程的基础(我之前的文章中有关于RMI编程的细节描述),JDBC则是如何通过Java操作数据库的API等等。

这里面涵盖的技术在我之前的头条文章中都几乎有所涉及,感兴趣的朋友可以关注一下。Java EEJava EE此前一直是官方主推的企业级Java解决方案,里面涵盖了大量企业级开发的API,目前Oracle公司已经把Java EE交给Eclipse基金会来管理了,已经改名为Jakarta EE了,也许未来EE版会带来更多改变。

虽然已经脱离了官方阵营,今天也简单描述一下Java EE版都包含了哪些内容。Java EE版本涵盖的主要内容是围绕EJB展开的,Java官方为企业级开发提供了三种EJB方案,分别是会话Bean、实体Bean和消息驱动Bean。围绕这三种EJB企业可以开发出大用户并发的安全的Java分布式平台,当然性能以及事务处理等方面的优点是显而易见的。

虽然Java官方为EJB付出了巨大的代价(人力、物力),但是市场对EJB并不是全盘接受,因为EJB太重了。Spring的出现使得EJB的地位非常尴尬,后来EJB的版本更新也借鉴了Spring的很多理念,但是EJB的基因太难改变了。Java MEME版本的出现时间并不晚,我在2004年的时候曾经短暂的使用过ME版本在Nokia的塞班平台下进行程序开发。

可以说当年的Sun公司对嵌入式设备的发展还是具备一定眼光的,只是当IOS和Android平台出现的时候,Java ME多少显得有些尴尬。Java ME针对嵌入式设备进行了重写,支持在嵌入式设备上运行Java应用。当年也确实有很多基于Java ME开发的嵌入式产品,大到美国发射的“勇气号”太空车,小到工业机器人,目前Java ME的应用并不多,但是官方依然对Java ME抱有期望。

Java Card、Java TV、Java DB关于Java Card可能用过的人就更少了,但是在最初推出这个技术的时候,Java Card为我们描绘了很多未来的应用场景(目前这些场景中的很多内容由智能手机完成了)。看一下Java Card的官方定义:可以说Java Card在一些具体场景中还是有所应用的,比如通信领域和金融领域等对安全性有较高要求的领域。

看一下Java TV的官方定义:Java TV的出现是数字化TV发展的必然结果,同样,目前这部分市场被Android抢占的比较厉害,好在Android的应用开发也采用了Java语言。看一下关于Java DB的官方描述:Java DB是Java数据库应用的一个方向,能在数据库平台上提供完全的Java支持。

Java具体是做什么的?

大家都知道Java的用途是很多的,现在编程语言是非常受欢迎的,而Java作为编程语言中最受欢迎的一门语言,其地位是不容小觑的。很多人都想学习Java,那么Java到底是做什么的呢?大家都知道Java在开发中是占有非常重要的地位,Java可以做网站、可以做手机APP、可以编写小程序、小游戏等等,作用是非常强大的。

java学的到底是什么?

Java培训通常分为两类:第一类是学历不够,又想学一门技术的找到好工作,或者是已经有工作经验想要转行Java开发的。他们通常零基础,所以培训时间会较长一些。第二类是同专业的大学生毕业后找工作发现学校里教的课程远远落后于现在所使用的技术。他们拥有扎实的基础理论,通过短期的培训适应市场。无论是哪种情况,都是为了学习一门技术,找到好的出路而已。

学Java一般要多久能找到工作?

本人16年在成都Java培训半年,到现在2022年转行,期间就是三家公司,我把我的经验分享给你,希望能帮到你。第一,如果自己够自律,学习能力强,或者没有多的钱,不要去培训班,自学即可,现在B站上,黑马、尚硅谷都有官方账号,成套的教程、项目一大堆,淘宝上的课程也泛滥,想学太容易了,这些课程和培训机构真的没有太大差别,Java其实核心的东西不会改变,多的是新技术,可以慢慢学,不要被培训机构一些华丽的宣传给割韭菜了。

第二,学多久能找到工作,这个没人能够回答你,只能跟你说学到什么程度。JavaSE是基础中的基础,一定要吃透,数据结构和算法最好也要了解,不能只听其名,未见其实。JavaWeb我认为不难,基础的前端也不难,肯定是能学懂的,数据库、Redis、Ajax、Nginx这些很基础,但是也很重要,因为工作中用的太多。

接下来就是三大框架SSM,不多说,不学会都不好意思说你是Java程序员。而后就是SpringBoot,学,肯定是要学,因为现在大部分公司肯定过会用,毕竟SpringBoot太好用了,学了没错。分布式SpringCloud和Dubbo,选一个学,建议SpringCloud,毕竟Spring家族的,至于学到什么程度,至少你得会用,底层的一些东西能不能理解,这就不好说了,面试的时候可能会问,但是工作中其实没啥用。

消息队列至少一种吧,这个东西有相通性,学会一种,以后学其他的很好学,搜索引擎ES得会,面试也问得多。有些公司Linux问得多,尽量不要选最新的版本学,遇到问题很难有人帮你。学会Linux,学不学Docker呢?学吧。至于安全框架大概就是Shiro和Spring Security,我也是在公司里现学的Shiro。

有些公司还要用工作流,比如我的第一家公司就用了工作流,学吧。第三,前端学不学?学到什么程度?这可能就是大家经常说的前后端分离的问题了,这个问题说来也纠结,因为你作为一个Java程序员,公司找你进去也大概主要负责后端,但是面试的时候,如果你说你不会前端,那行吗?肯定不行,所以前端肯定得学,我当初也是跳槽的时候为了面试去B站现学,至少你能保证能看懂代码,说的出口。

第四,当然,如果你想去培训机构,当然也很好,毕竟是线下教学,氛围好,遇到问题也能问老师,也不用去考虑我学完这个又该学什么了,但是注意避坑,据我所知,千峰和达内是巨坑,黑马和尚硅谷的口碑很好,一般都是培训差不多半年。第五,不管是去培训机构还是自学,你学完了,不要以为自己真的就是什么两三年工作经验了,堪堪入门而已,这个行业很辛苦,996、青春饭是一方面,需要不断的学习才是最困难的,你在一个公司里面待个五年,但是不学习新技术,将来跳槽或者被裁,那是100%找不到满意的工作。

学了java能做什么实际的东西?

关于“学好java能干什么”的问题,下面我谈谈自己的一些看法。1. java是一种跨平台的开发语言,不仅可以在windows平台下进行开发,还可以在linux、iOS等平台下开发,2. java不仅常用在网站后台、数据库系统的开发,也可以用在嵌入式开发中。3. 你所说的“学好”,可能有几个层面,一是熟练,而是精通。

Java未来会不会淘汰,为什么这么多人觉得java过时了?

Java 过时了,但是,不会被淘汰。不被淘汰,是因为历史原因,很多金融系统使用 Java Web 开发,是无法切换的。倘若说彻底淘汰 Java,恐怕也需要 50 年以上,直到那些旧有的系统淘汰掉,同时新系统使用其他语言编写。过时,是因为不知道是不是语言过于厚重,Java 到现在也无法支持 async/await 或者协程,Java 在非阻塞 IO 方面停滞不前,流行的spring 和 jdbc 都是阻塞 IO,这让 Java 比起 Nodejs,Go 效率低下,虽然可以使用 nginx 之类的非阻塞负载均衡器抵消这种影响,但是却更耗费硬件资源。

比方说,Java Spring 写的服务,用 8 个 cpu 跑满后面的数据库读写,而 Nodejs Go 只需要 2 个 cpu。备注: Java netty 受制于 Java 语言,不支持 async await,也不支持协程,使用 netty 你面临 callback hell,另外,非阻塞数据库连接规范 rdbc 至今仍然不成熟,代码仓库不完备,缺乏足够测试,缺乏应用,而 jdbc 仍然是阻塞 IO,所有基于 jdbc 的软件库都不适用 netty。


文章TAG:java  Java  教程  学习  
没有了