[编程开发] 什么是Java?

[复制链接]
上帝也疯狂 发表于 2023-12-3 22:34:13|来自:北京 | 显示全部楼层 |阅读模式
Java能做什么
全部回复5 显示全部楼层
bluejelly 发表于 2023-12-3 22:34:25|来自:北京 | 显示全部楼层
其实,java是一个平台。按应用范围来说它 可分为 3 个体系,即 Java SE、Java EE 和 Java ME。Java 语言的风格很像 C 语言和C++语言,就是一种面向对象语言,拋弃了 C++ 的一些缺点,也继承了一些优点。Java 语言的特性让它在众多的编程语言中有较大的市场份额,而且Java 的“一次编写,到处执行”也正是它吸引编程人员的优势。我现在有一个交流群,想学习java的伙伴可以进群,大家一起讨论。
<hr/>我建了一个Java小白交流群,点击下面的小卡片复制我的微信号,添加进入交流群。我会给大家分享我收集整理的各种学习资料,组织大家一起做项目练习,帮助大家匹配一位学习伙伴互相监督学习,欢迎加入。
知乎营销平台
zhangjin 发表于 2023-12-3 22:34:47|来自:北京 | 显示全部楼层
作为 Java 领域的优秀创作者,这题我会呀
(用故事的形式给大家讲一讲吧,搬个小板凳,坐下来听)
“二哥,到底什么是 Java?给我说说呗。”三妹问。
“三妹啊,这就直奔主题了啊,先去给哥买包烟吧,哥先考验考验你的诚心。”
(五秒钟过后)
“三妹啊,你怎么还不去?”
“二哥,掏钱啊。”
(真是亲妹子啊,买包烟还得我掏钱,关键是还得给跑腿费。十分钟后,三妹从楼下小卖部买了一包中华回来了,我用 Zippo 火机点了一支——这火机是 21 岁生日的时候初恋女友送我的,质量确实不错,现在还在用。)
“三妹啊,听我慢慢来给你解释。”
Java 是一门计算机编程语言,高级、健壮、面向对象,并且非常安全。它由 Sun 公司在 1995 年开发,主力开发叫 James Gosling,被称为 Java 之父,就是下图这位,头秃的厉害。


“三妹啊,你要不要再考虑考虑?做程序员不容易啊。”
“二哥,你咋没有秃呢?是因为你不够厉害吗?”
(这孩子,嘴咋这么损呢?)
Java 在叫“Java”之前,其实叫 Oak(橡树的意思,我感觉好像比 Java 好听一些)。怎么想到呢?James Gosling 坐在办公室,望向窗外,视野里出现了一颗橡树。不过,遗憾的是,Oak 已经被 另外一家公司注册了,因此 1995 年 5 月 23 日,Oak 语言改名为 Java。
Java 起初并不是 James Gosling 的首选,也不是命名团队的首选。团队其他人员更青睐 Silk(丝绸),但 Gosling 不喜欢,他本人喜欢的是 Lyric(抒情诗),但没通过律师这一关。最后,排在第四位的“Java”脱颖而出。是不是像极了婴儿没生下来之前,家人就着急着起名的那种感觉。
James Gosling 回忆说,“Java”是一个叫 Mark Opperman 的人提议的,他是在一家咖啡店得到灵感的,“Java”是印度尼西亚爪哇岛的英文名,因生产咖啡而闻名。
使用十六进制编辑器打开由 Java 源代码编译出的二进制文件(.class 文件),就可以看得到,最前面的 8 个字符是 CA FE BA BE(定义文件类型的魔数),即词组“CAFE BABE”(咖啡屋宝贝)。


“二哥,能给我展示一段 Java 代码吗?我想感受一下。”
“三妹啊,马上就来。”
(我噼里啪啦一阵在键盘上一阵狂按)
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}
“二哥,这都什么跟什么啊,看得一头雾水。”
“三妹啊,先不要着急,Hello World 这段代码以后再慢慢消化,现在就是让它来给你打个招呼。”
“好吧。”
“二哥,学 Java 到底有没有前途啊?我毕业以后能不能找到工作啊?”
“三妹啊,就目前来说,Java 不仅仅是一门编程语言,它还是一个由一系列计算机软件和规范组成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于以下这些场合。”

  • 1)桌面应用程序;
  • 2)Web 应用程序;
  • 3)企业应用程序,体现了 Java 的安全性、负载均衡和集群的优势;
  • 4)移动端应用程序,主要就是安卓;
  • 5)嵌入式系统;
  • 6)机器人技术;
  • 7)游戏。
时至今日,Java 技术体系已经吸引了 900 多万(不准确)软件开发者,是全球最大的软件开发团队。Java 能够获得如此广泛的认可,除了它是一门结构严谨、面向对象的编程语言之外,还有很多其他不可忽视的优点:

  • 摆脱了硬件平台的束缚,实现了“一次编写,处处运行”的理念;
  • 内存管理相对安全,避免了绝大部分内存泄露和指针越界的问题;
  • 实现了热点代码检测和运行时编译,使得 Java 应用能随着运行时间的增长而获得更高的性能;
  • 有一套完善的应用程序接口,还有无数来自商业机构和开源社区的第三方类库。
这一切的一切,都让软件开发的效率大大的提高。所以,学习 Java 还是很有“钱”“秃”的。
“好了,三妹,今天我们就学到这吧。”滴了两滴眼药水后,我对三妹说。
“好的,二哥,我再重温一遍今天学习的内容,感觉 Java 好有趣啊。”三妹似乎对未来充满了希望,这正是我想看到的。
PS:这个回答也是《教妹学 Java》专栏的第一篇内容,目前更新 40 篇内容,目录如下:


这些内容通俗易懂风趣幽默,如果你是 Java 初学者的话,建议到 GitHub 上 star。
itwanger/Tech-Sister-Learn-Java如果你想继续学习 Java 的话,也可以先看看我整理的这份 GitHub 上星标 115k+ 的 Java 教程,里面涵盖了 Java 所有的知识点,包括 Java 语法、Java 集合框架、Java IO、Java 并发编程和 Java 虚拟机,内容不多,只讲重点
GitHub 星标 115k+的 Java 教程,超级硬核!重点来说说 Java 集合框架、Java 并发编程和 Java 虚拟机,这三块也是 Java 基础当中至关重要的内容。
1)Java 容器
工作当中,最经常用到的两个,一个 ArrayList,一个 HashMap。光这两个,就涉及到超级多的面试考点,比如说:

  • ArrayList 的大小是如何自动增加的?
  • 什么情况下使用 ArrayList,什么情况下使用 LinkedList?
  • 了解 HashMap 的数据结构吗?
  • 了解 HashMap 的工作原理吗?
  • 哈希冲突的时候怎么办?
  • 链表过深的时候为什么不用二叉树而用红黑树?
  • ...
除了这两个,还有:


2)多线程并发
对于 Java 程序员来说,能否熟练掌握并发编程是判断他优秀与否的重要标准之一因为并发编程涉及到操作系统、内存、CPU 等多方面的基础能力,非常考验一个程序员的内功。


3)Java 虚拟机
对于初学者来说,Java 虚拟机是非常难的一块内容,涉及到:

  • Java 虚拟机内存结构
  • 垃圾收集策略与算法
  • 内存分配与回收策略
  • Java 虚拟机性能调优
  • 类文件结构
  • 类加载机制
  • 等等
可以先看一看周志明老师的《深入理解 Java 虚拟机》,一开始啃起来可能会比较痛苦,但如果能硬着头皮多啃一啃的话,面试的时候就会容易过一些。
另外很重要的一点是,如果你确定去大厂的话,记得一定要刷题,下图是阿里校招的要求,第三条就要求了,你要痴迷于数据结构和算法,热衷于 ACM。我这里整理了一份 Java 版的 LeetCode 刷题笔记,来自于美团的一名技术专家,对算法薄弱和需要提高算法的同学很有帮助:
刷完 300 道 LeetCode 题后,我飘了!

即便是你没打算去大厂,从一开始就着手刷算法题的话,对学习 Java 也是很有帮助的。算法研究的目的是为了更有效的处理数据,提高数据运算的效率,数据运算是定义在数据结构上的。有时间有精力的话,最好参加一下 ACM 竞赛,在找工作的时候会非常有优势
好了,关于 Java 是什么就先说到这吧,我是 @沉默王二 ,希望回答能对你有所帮助。
天际广告 发表于 2023-12-3 22:35:22|来自:北京 | 显示全部楼层
虽然我今年刚上大一,但已经学了几个月的 Java 了,再加上我哥对我的细心辅导,来回答一下这个问题还是绰绰有余
Java 是由 Sun Microsystems 在 1995 年首先发布的编程语言和计算平台。有许多应用程序和 Web 站点只有在安装 Java 后才能正常工作,而且这样的应用程序和 Web 站点日益增多。Java 快速、安全、可靠。从笔记本电脑到数据中心,从游戏控制台到科学超级计算机,从手机到互联网,Java 无处不在!
这是 Oracle 官网的一段关于 Java 的描述,我觉得挺准确的,不过略显官方,不如来看看我哥当时为我写的一篇文章:
01、什么是 Java?

“二哥,到底什么是 Java?给我说说呗。”
“三妹啊,这就直奔主题了啊,先去给哥买包烟吧,哥先考验考验你的诚心。”
(五分钟过后)
“三妹啊,你怎么还不去?”
“二哥,掏钱啊。”
(真实亲妹子啊,买包烟还得我掏钱,关键是还得给跑腿费。十分钟后,三妹从楼下小卖部买了一包熊猫回来了,我用 Zippo 火机点了一支——这火机是 21 岁生日的时候初恋女友送我的,质量确实不错,现在还在用。)
“三妹啊,听我慢慢来给你解释。”
Java 是一门计算机编程语言,高级、健壮、面向对象,并且非常安全。它由 Sun 公司在 1995 年开发,主力开发叫 James Gosling,被称为 Java 之父,就是下图这位,头秃的厉害。


“三妹啊,你要不要再考虑考虑?做程序员不容易啊”
“二哥,你咋没有秃呢?是因为你不够厉害吗?”
(这孩子,嘴咋这么损呢?)
Java 在叫“Java”之前,其实叫 Oak(橡树的意思,我感觉好像比 Java 好听一些)。怎么想到呢?James Gosling 坐在办公室,望向窗外,视野里出现了一颗橡树。不过,遗憾的是,Oak 已经被 另外一家公司注册了,因此 1995 年 5 月 23 日,Oak 语言改名为 Java。
Java 起初并不是 James Gosling 的首选,也不是命名团队的首选。团队其他人员更青睐 Silk(丝绸),但 Gosling 不喜欢,他本人喜欢的是 Lyric(抒情诗),但没通过律师这一关。最后,排在第四位的“Java”脱颖而出。是不是像极了婴儿没生下来之前,家人就着急着起名的那种感觉。
James Gosling 回忆说,“Java”是一个叫 Mark Opperman 的人提议的,他是在一家咖啡店得到灵感的,“Java”是印度尼西亚爪哇岛的英文名,因生产咖啡而闻名。
使用十六进制编辑器打开由 Java 源代码编译出的二进制文件(.class 文件),就可以看得到,最前面的 8 个字符是 CA FE BA BE(定义文件类型的魔数),即词组“CAFE BABE”(咖啡屋宝贝)。


02、Java 示例

“二哥,能给我展示一段 Java 代码吗?我想感受一下。”
“三妹啊,马上就来。”
(我噼里啪啦一阵在键盘上一阵狂按)
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}
“二哥,这都什么跟什么啊,看得一头雾水。”
“三妹啊,先不要着急,Hello World 这段代码以后再慢慢消化,现在就是让它来给你打个招呼。”
“好吧。”
03、学习 Java 有没有前途

“二哥,学 Java 到底有没有前途啊?我毕业以后能不能找到工作啊?”
“三妹啊,就目前来说,Java 不仅仅是一门编程语言,它还是一个由一系列计算机软件和规范组成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于以下这些场合。”
1)桌面应用程序;
2)Web 应用程序;
3)企业应用程序,体现了 Java 的安全性、负载均衡和集群的优势;
4)移动端应用程序,主要就是安卓;
5)嵌入式系统;
6)机器人技术;
7)游戏。
时至今日,Java 技术体系已经吸引了 600 多万软件开发者,是全球最大的软件开发团队。Java 能够获得如此广泛的认可,除了它是一门结构严谨、面向对象的编程语言之外,还有很多其他不可忽视的优点:

  • 摆脱了硬件平台的束缚,实现了“一次编写,处处运行”的理念;
  • 内存管理相对安全,避免了绝大部分内存泄露和指针越界的问题;
  • 实现了热点代码检测和运行时编译,使得 Java 应用能随着运行时间的增长而获得更高的性能;
  • 有一套完善的应用程序接口,还有无数来自商业机构和开源社区的第三方类库。
这一切的一切,都让软件开发的效率大大的提高。所以,学习 Java 还是很有“钱”“秃”的。如果你想继续学习 Java 的话,可以看看我哥写了另外一篇帖子:
自学java,学多久可以自己找到工作?是不是有趣多了,我哥真是个天才,我只能这么说。
当然了,如果你喜欢看视频的话,我也给你找来了(视频讲解 Java 到底是什么)。
https://www.youtube.com/watch?v=CzipO_Podtw妹子讲的啊,声音听起来和我一样甜美。
如果你想进一步深入地学习 Java 的话,可能还需要一份教程,我哥那里准备了一份 GitHub 上标星 115K+ 的教程,我觉得质量还是很不错的,你可以体验一下。
太赞了,GitHub 上标星 115k+ 的 Java 教程!
妹妹我初来乍到,还没有一个人关注我,好伤心啊!看这个回答能不能成功骗到一个心疼我的知友。要怪就怪我哥,我刚上大一就给我天天絮叨,说什么知乎是一个质量很高的平台,要趁早在上面分享,建立起影响力,我太难了我!
如果你心疼我的话,记得帮我 @程序员宝宝 点个赞哟~,求第一个关注啊!
lndxs 发表于 2023-12-3 22:36:13|来自:北京 | 显示全部楼层
在说清楚“什么是Java”之前,我觉得我们可以先来认识“什么是计算机语言”


计算机语言指用于人与计算机之间通讯的语言,用一套编写计算机程序的数字、字符和语法规划来组成各种指令,通过指令达到人与计算机的“沟通”。
如今通用的编程语言有两种形式:汇编语言和高级语言。
高级语言将许多相关的机器指令合成为单条指令,由于省略了很多细节,编程者也就不需要有太多繁杂的专业知识。
所以高级语言是绝大多数编程者的选择。
各个编程语言之间有什么区别?

一位外国友人用《如果编程语言是武器》对各个编程的区别和特征做了生动形象的描述。


C语言是M1式加兰德步枪,很老但可靠。
(开发效率太低,开发门槛高,不要以为语法简单就门槛低,指针、内存、操作系统底层才是门槛所在)


C++是双截棍,挥舞起来很强悍,很吸引人,但需要你多年的磨练来掌握,很多人希望改用别的武器。

(太复杂,如果现在的程序员全部被强制去写C++,估计90%会崩溃或者转行)


Ruby 是一把外嵌红宝石的宝刀,人们使用它通常是因为看起来很炫。

(拥有广泛的工具及功能库,使得构建应用十分轻松,但很难找到关于Ruby良好的说明文档且运行速度差。)


PHP是水管子,你通常会把它的一段接到汽车的排气管,另一端插进车窗里,然后你坐进车里,开动引擎。
(拥有庞大而活跃的社区,面对Web开发难题都有现成的解决方案,但PHP错误处理机制比较糟糕,因为它的开发历史过长且需要支持大量旧有功能。)


Python是一种“v2/v3”双管枪,每次只能用一个管子发射,你永远不知道该用哪个管子发射好。
(因为该语言易于掌握拥有极高人气,但在语言设计上存在问题,在移动计算领域表现比较糟糕。)


JavaScript是一把宝剑,但没有剑柄。
(它的代码函数可立即运行,无需等待服务器做出回应,因此速度非常出色。但由于代码在用户计算机上执行,有时会被恶意活动所利用。)


Java是M240通用弹夹式自动机枪。
(同样的效果,Java用简练的语言即可进行输出,封装了大部分的算法,用自带的库/开发环境运算,所以运行速度能像机枪一样快~)



Scala是M240通用机枪的变种,但它的使用手册是用一种看不懂的方言写的,很多人怀疑那只是一些梦话。

不难看出以上威力最大的武器就是Java了。的确,相对而言Java是开发效率、开发门槛、性能、跨平台这几方面平衡得最好的语言
了解以上内容之后,就可以开始解释
什么是Java?

Java,由Sun Microsystems公司于1995年5月推出,它是一种可以编写跨平台应用软件、完全面向对象的程序设计语言。
不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。


Java是怎么来的?

20世纪末,硬件领域出现了单片式计算机系统,这种系统价格低廉,立即引起了研究人员的注意,由于C++程序过于复杂和庞大,研究人员开发了一种称为Oak的面向对象语言。这是Java的雏形。
1995年,业界为了使单调的静态网页能够“灵活”起来,急需开发一种程序。这时,Sun公司想起了那个被搁置很久的Oak,并将Oak更名为Java,它语言精简,程序非常小,适合在网络上传输。
1995年5月,Sun公司正式发布Java。从此Java一路披荆斩棘,在经历20多年的发展之后依然长盛不衰,常年雄踞各大编程语言排行榜第一位,这也凸显了其在IT技术领域的绝对统治力。
nankong2000 发表于 2023-12-3 22:36:34|来自:北京 | 显示全部楼层
这个问题,Java是这样回答的:Lesson: The Java Technology Phenomenon

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则