初识java(上)

简介: 初识java(上)

一、Java语言概述



1.1Java的含义


       Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义,并且Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。


1.2Java语言的重要性


1.语言使用程度

360c219e34884027b86ac8462fe73d05.png


2.工作领域


Java语言目前在IT领域的应用是非常广泛的,掌握Java语言可以从事不少IT行业的相关开发岗位,具体包括:


  •     企业级系统

       比如大型复杂的企业级软件系统,Java的安全机制以及跨平台性的优势,其在分布式系统领域开发中有广泛应用,涉及到金融、电信、交通、电子商务、ERP系统等。


  •     Web开发领域

       Java语言在设计初期,赶上了互联网发展的风口,当时就瞄准了互联网开发,凭借稳定的性能表现和较好的扩展性,Java语言一直是大型互联网平台的重要解决方案。


  •     androld平台应用

       Android是一种智能手机操作系统,Java是一门非常流行的编程语言。Android上的应用程序就是大多是用Java编写的,Android的SDK大部分就是直接将Java SDK翻译过来的,所以具有Java基础,也可以快速上手Android开发。


  •     大数据平台开发

       大数据相关的各类框架,比如:Hadoop、spark、storm、flink等,以及各种中间件flume、kafka、sqoop等,这些框架以及工具等大多数是用Java语言开发的,随着大数据技术的落地应用,Java在大数据领域的应用前景也是比较广阔的。


除上述开发领域外,Java在游戏领域、人工智能领域、科学计算领域、嵌入式领域也有一定的应用。因此学好Java,将来就业的选择也会非常广泛。


3.校招中岗位需求


后端开发工程师


       岗位要求


       1.学历:本科及以上。


       2.掌握一种以上的开发语言,包括但不限于Java、C、C++、Python、Golang等;了解MySQL等基本使用,熟练使用SQL语句,会常用shell命令。


       3.具有扎实的数据结构、操作系统、数据库、算法、网络等计算机基础知识。


       4.善于交流,有良好的团队合作精神和协调沟通的能力,有一定推动能力。


       具备以下者优先:


       1.有参与各级计算机竞赛并获奖经历;


       2.有原创技术博客或者参与过知名开源项目


       3.有在知名公司核心部门实习经历且学习时间不少于六个月


从上述位置需求中可以看出,由于应届生缺少实际工作经验,因此校招中企业更看重学生的基础,也就是:语言、数据结构/算法、操作系统、网络、数据库等,其他的属于加分项。


1.3Java语言发展历史


ae8d9948e1e85f00b0434b2b053d8865.jpg


Java 语言源于 1991 年 4 月,Sun 公司 James Gosling博士 领导的绿色计划(Green Project) 开始启动,此计划最初的目标是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。这个就是Java的前身: Oak (得名与Java创始人James Gosling办公室外的一棵橡树),但由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1995年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布,并提出“Write once, Run anywhere" 的口号。


1991.4    Sun公司成立Green项目小组,开发出Oak语言

1995.5.23 Oak更名为Java,提出了“Write Once,Run Anywhere”的口号

1996.1.23 JDK1.0发布,代表技术包括:Java虚拟机、Applet、AWT等

1996.5    Sun公司举行首届JavaOne大会

1997.2.19  JDK1.1发布,代表技术有:JAR文件格式、JDBC、JavaBeans、RMI。Java语法也有了一定的发展,如内部类(Inner Class)和反射(Reflection)

1998.12.4  JDK1.2  Playground(竞技场)发布,分为J2SE、J2EE和J2ME三大版本

2000.5.8  JDK1.3  Kestrel发布

2002.2.13  JDK1.4 Merlin发布

2004.9.30 JDK 1.5 Tiger(老虎)发布

2006.11.13  JavaOne大会,Sun公司宣布将Java开源

2006.12.11 JDK6 Mustang(野马)发布

2009.2.19,JDK7 Dolphin(海豚)完成了第一个里程碑版本

2009.4.20  Oracle74亿美元收购Sun

2011.7.28  Oracle正式发布JDK7

2014.3.19  Oracle发布JDK


发展至今,Java不仅是一门编程语言,还是一个由一系列计算机软件和规范组成的技术体系,Java 是几乎所有类型的网络应用程序的基础,也是开发和提供嵌入式和移动应用程序、游戏、基于 Web 的内容和企业软件的全球标准。从笔记本电脑到数据中心,从游戏控制台到科学超级计算机,从手机到互联网,Java 无处不在!


1.4Java语言特性


       1.简单性


       Java语法是C++语法的一个“纯净版本”,相当于对C++做了一个减法。这里没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等等。不仅如此,Java开发环境远远超出大多数其他编程语言的开发环境。


       2.面向对象


       在Java的世界里,一切皆对象。比如:人、狗、手机、电脑等都是对象。所谓面相对象,就是依靠对象之间的交互来完成事情,比如:人用手机网上购物,狗吃骨头..


       Java的面向对象特性与C++旗鼓相当,与C++的主要不同点在于多重继承。在Java中,取而代之的是更简单的接口概念。而且与C++相比,Java提供了更丰富的运行时自省功能。


       3.分布式(微服务)


       Java有丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。


       4.健壮性


       Java与C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性(对于曾经花费几个小时来检查由于指针bug而引起内存冲突的人来说,一定很喜欢Java的这一特性)。不仅如此,Java编译器能够检测许多在其他语言中仅在运行时才能够检测出来的问题。


       5.安全性


       Java适用于网络/分布式环境。为了达到这个目标,在安全性方面投入了大量的精力。使用Java可以构建防病毒、防篡改的系统。


       从一开始,Java就设计成能够防范常见的各种攻击:运行时堆栈溢出。蠕虫和病毒常用的攻击手段、破坏自己进程空间之外的内存、未经授权读写文件


       6.体系结构中立


       编译器生成一个体系结构中立的目标文件格式,按照该中规范生成的文件,只要有Java运行时系统,这些编译后的代码就可以在许多处理器上运行。Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易的在任何机器上解释执行,而且还可以动态地翻译成本地机器代码。这就是为什么可以:“Wrice once,Run anywhere”。


       7.可移植性


       与C/C++不同,Java规范中没有“依赖具体实现的地方”。基本数据类型的大小以及有关运算都做了明确的说明。例如,Java中的int永远是32位的整数,而在C/C++中,int可能是16位整数、32位整数,也可能是编译器提供商指定的其他大小。在Java中,数据类型具有固定的大小,这消除了代码移植时令人头疼的主要问题。


       8.解释性


       Java为了实现与平台无关,自己维护了一套基于栈架构的指令集,Java源代码经过编译之后,字节码文件中的指令就是按照自己的指令集来组织的,但是在具体硬件环境中运行时,系统并不能识别,因为Java程序在执行时,Java解释器会逐条的将字节码文件中的指令翻译成CPU的指令集。


       9.高性能


       边解释边执行,垃圾会说等导致了Java代码运行效率偏低,近年来JVM也在不断的优化,比如:JIT(即时编译器),热点代码探测,让Java程序的执行效率大幅提高,在有些场合不亚于C/C++。


       10.多线程


       Java在当时很超前。它是第一个支持并发程序设计的主流语言。多线程可以带来更好的交互响应和实时行为。并发程序设计绝非易事,但是Java在这方面表现出色,可以很好的管理这个工作


       11.动态性


       Java与C/C++相比更加具有动态性。它能够适应不断发展的环境。库中可以自由的添加新方法和实例变量,而对客户端没有任何影响。在Java中找出运行时类型信息十分简单。故Java不仅仅是一门编程语言,也是一个由一些列计算机软件和规范组成的技术体系。


1.5Java开发环境的安装


Windows下最简单的Java环境安装指南 - 大博哥VV6 - 博客园 (cnblogs.com)

linux安装jdk环境(多种方式)_蒙蒙的林先生的博客-CSDN博客mac系统下安装Java开发环境(一)——JDK安装-百度经验 (baidu.com)

官网下载 Java Downloads | Oracle



相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
存储 人工智能 搜索推荐
SuperAGI 一个开发优先的开源自主人工智能代理框架
供应、生成和部署自主人工智能代理
|
25天前
|
人工智能 自然语言处理 搜索推荐
深度解读:Geo优化“两大核心+四轮驱动”方法论的落地执行细节
在AI驱动的数字营销新时代,传统SEO面临重构。于磊老师首创“两大核心+四轮驱动”Geo优化方法论,以人性化内容与交叉验证构建可信生态,融合EEAT原则、结构化内容、精准关键词及权威引用,助力企业实现高效获客与可持续增长。
308 16
|
3月前
|
JavaScript 前端开发 API
Vue 3:下一代前端框架革新
Vue 3:下一代前端框架革新
455 106
|
网络协议 Python
python对tcp协议栈进行优化之一
**TCP优化摘要:** - MSS优化涉及调整TCP最大段大小,Python中可使用`socket.getsockopt()`查询MSS。 - Scapy是Python库,用于创建和发送网络包,可用于测试和优化协议栈性能。 - LwIP是轻量级TCP/IP协议栈,适合嵌入式设备,可通过分析和调整提升性能,特别是实时性和资源管理。
293 5
|
机器学习/深度学习 自然语言处理 算法
ICML 2024:零阶优化器微调大模型,大幅降低内存
【7月更文挑战第14天】ICML 2024研究表明,零阶优化用于大模型微调能大幅降低内存需求。该论文通过避免反向传播,减少LLM(大型语言模型)微调的内存开销,提出新方法,适用于资源受限环境。虽然性能可能不及一阶优化器,但为高效NLP计算开辟了新途径。论文链接:[arxiv.org/abs/2402.11592](https://arxiv.org/abs/2402.11592)**
478 3
|
编解码 移动开发 前端开发
详细介绍Viewport Meta标签的作用、属性以及如何在移动端开发中合理使用它,以优化网页的显示效果
【6月更文挑战第14天】本文介绍了HTML的Viewport Meta标签在移动端网页优化中的应用。该标签定义了视口属性,如宽度、高度和缩放,解决屏幕尺寸差异导致的显示问题。通过设置`width=device-width`确保页面适应设备宽度,`initial-scale=1.0`保持原始比例,`user-scalable=no`可禁用手动缩放。此外,使用`viewport-fit=cover`适配不同像素比设备的安全区域。合理利用这些属性能改善移动端网页显示效果。
723 1
|
敏捷开发 Java Shell
阿里云云效产品使用合集之如何设置流水线可以控制任务的串行执行
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
存储 算法 程序员
操作系统(12)----页面分配策略
操作系统(12)----页面分配策略
636 1
|
大数据 数据挖掘
2024年每个月有哪些数学建模和数学挖掘竞赛?
2024年每个月有哪些数学建模和数学挖掘竞赛?
756 0
itext制作pdf表格
java中使用itext制作pdf表格