如何学习java?

news2026/5/19 12:59:30
目录一. 初识Java1. Java语⾔概述1.1 Java是什么1.2 什么是JavaSE什么是JavaEE?JavaSE(JavaStandardEdition):JavaEE(JavaEnterprise Edition):主要区别:1.3 Java语⾔重要性1.4 Java语⾔发展简史1.5 Java语⾔特性1.6 Java开发环境安装1. 简介2.安装3.配置4. 检验一. 初识Java【本节⽬标】1. Java语⾔简介、发展概述、语⾔优势1. Java语⾔概述1.1 Java是什么Java是⼀种优秀的程序设计语⾔它具有令⼈赏⼼悦⽬的语法和易于理解的语义。 不仅如此Java还是⼀个有⼀系列计算机软件和规范形成的技术体系这个技术体系提供了完整的⽤ 于软件开发和跨平台部署的⽀持环境并⼴泛应⽤于嵌⼊式系统、移动终端、企业服务器、⼤型机等 各种场合。1.2 什么是JavaSE什么是JavaEE?JavaSE(JavaStandardEdition):1. 核⼼:Java的基础平台2. ⽤途:开发桌⾯应⽤和简单服务器程序3. 主要内容:核⼼语⾔特性、基本API如I/O、⽹络、GUI4. ⽬标⽤⼾:⼀般Java开发者JavaEE(JavaEnterprise Edition):1. 核⼼:JavaSE的扩展版本2. ⽤途:开发⼤型、分布式企业应⽤和Web应⽤3. 主要内容:企业级API如Servlet、JSP等4. ⽬标⽤⼾:企业级应⽤开发者主要区别:1.范围:JavaEE⽐JavaSE更⼴泛包含更多特性2.复杂度:JavaEE更复杂学习曲线更陡3.应⽤规模:JavaEE适合⼤型应⽤JavaSE适合⼩到中型应⽤4.运⾏环境:JavaEE需要特定的应⽤服务器JavaSE可在标准JVM上运⾏注意我们熟知的Spring Springboot等等实际上是JavaEE的补充和扩展1.3 Java语⾔重要性1. 语⾔⼴泛使⽤程度2. ⼯作领域3. Java语⾔⽬前在IT领域的应⽤是⾮常⼴泛的掌握Java语⾔可以从事不少IT⾏业的相关开发岗位具体包括◦ 企业级系统⽐如⼤型复杂的企业级软件系统Java的安全机制以及跨平台性的优势其在分布式系统领域 开发中有⼴泛应⽤涉及到⾦融、电信、交通、电⼦商务、ERP系统等。◦ Web开发领域Java语⾔在设计初期赶上了互联⽹发展的⻛⼝当时就瞄准了互联⽹开发凭借稳定的性能 表现和较好的扩展性Java语⾔⼀直是⼤型互联⽹平台的重要解决⽅案。◦ android平台应⽤Android是⼀种智能⼿机操作系统Java是⼀⻔⾮常流⾏的编程语⾔。Android上的应⽤程序就 是⼤多是⽤Java编写的Android的SDK⼤部分就是直接将JavaSDK翻译过来的所以具有 Java基础也可以快速上⼿Android开发。◦ ⼤数据平台开发⼤数据相关的各类框架⽐如Hadoop、spark、storm、flink等以及各种中间件flume、 kafka、sqoop等这些框架以及⼯具等⼤多数是⽤Java语⾔开发的随着⼤数据技术的落地应 ⽤Java在⼤数据领域的应⽤前景也是⽐较⼴阔的。4. 除上述开发领域外Java在游戏领域、⼈⼯智能领域、科学计算领域、嵌⼊式领域也有⼀定的应 ⽤。因此学好Java将来就业的选择也会⾮常⼴泛。1.4 Java语⾔发展简史Java 语⾔源于1991年4⽉Sun公司JamesGosling博⼠领导的绿⾊计划(GreenProject)开始启 动此计划最初的⽬标是开发⼀种能够在各种消费性电⼦产品(如机顶盒、冰箱、收⾳机等)上运⾏的程 序架构。这个就是Java的前⾝Oak(得名于Java创始⼈JamesGosling办公室外的⼀棵橡树)但由 于这些智能化家电的市场需求没有预期的⾼Sun公司放弃了该项计划。随着1995年代互联⽹的发 展Sun公司看⻅Oak在互联⽹上应⽤的前景于是改造了Oak于1995年5⽉以Java的名称正式发 布并提出“Writeonce,Runanywhere的⼝号。Java⽬前的最新版本可以查看官⽅的⽹站http:// https://www.oracle.com/java/technologies/downloads/1.5 Java语⾔特性以下Java语⾔特性来⾃于Java⽩⽪书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就设计成能够防范常⻅的各种攻击1.运⾏时堆栈溢出,蠕⾍和病毒常⽤的攻击⼿段。2.破坏⾃⼰进程空间之外的内存。3.未经授权读写⽂件6. 体系结构中⽴编译器⽣成⼀个体系结构中⽴的⽬标⽂件格式按照该中规范⽣成的⽂件只要有Java运⾏时系统 这些编译后的代码就可以在许多处理器上运⾏。Java编译器通过⽣成与特定计算机体系结构⽆关的字 节码指令来实现这⼀特性。精⼼设计的字节码不仅可以很容易的在任何机器上解释执⾏⽽且还可以 动态地翻译成本地机器代码。这就是为什么可以“Wriceonce Runanywhere”。⽽且其他语⾔编写的程序在编译后如果能够严格按照字节码⽂件的规范⽣成.class⽂件也可以在JVM上运⾏。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.6 Java开发环境安装1. 简介JDK : Java SE Development Kit Java开发工具JRE : Java Runtime Environment Java运行环境如果要从事Java编程则需要安装JDK如果仅仅是运行一款Java程序则JRE就满足要求。Java的安装包分为两类一类是JRE其就是一个独立的Java运行环境 一类是JDK其是Java的开发环境不过在JDK的发布包中包含了一个独立的JRE另外需要注意JDK本身就内置有JRE。2.安装第一步执行安装包jdk-8u131-windows-x64.exe出现如下图界面点击下一步。第二步安装开发工具和源代码即可JDK安装包中包含了一个独立的JRE作为开发机器可以不用安装因此这里选择此功能将不用下图二不建议更改安装目录采用默认即可点击下一步。第三步稍等片刻安装完成3.配置关于JDK的配置网上流传的方法特别多有的也特别复杂完全不可取。配置之前先弄清楚到底配置什么东西。第一JAVA_HOME环境变量值为JDK的安装目录为什么要这么配置能主要是应为很多开源软件的依赖到这个变量用于寻找机器上的Java环境比如Tomcat,Maven第二Path变量值中追加Java命令的路径道理很简单就是希望能够在命令行中直接使用JDK中提供的命令比如java,javac在JDK1.6以及之后安装Java的开发环境只需要配置上面两个内容即可。第一步配置JAVA_HOME第二步配置Path需要注意Path路径一般是存在的只需要追加即可。这里使用%JAVA_HOME%的意思是直接引用上面配置的JAVA_HOME的值这样的好处在于如果Java安装目录发生变话主需要修改JAVA_HOME的值不用再修改Path变量的值。重要部分Windows10的系统在重启之后%JAVA_HOME%\bin配置的失效这里解决方法是配置全路径即可比如C:\Program Files\Java\jdk1.8.0_131\bin注意Windows 8 10的Path变量配置要友好一些直接配置一条记录即可如果是Windows7的话需要在Path变量的值中使用;(英文分号)分割然后追加Java的安装目录下的bin目录路径即可。4. 检验安装完成JDK以及相应的配置之后需要验证是否安装成功是否配置正常。第一步打开cmd命令行窗口第二步输出java -version命令如果输出如下图表示安装配置成功否则需要检查安装和配置是否正确这里推荐一个b站的安装视频大家可以根据上面的一步一步的进行安装我们java所需要的工具安装视频链接如下http:// https://www.bilibili.com/video/BV1DqdwBcECP/share_sourcecopy_webvd_source7d2f7e89b41dc3fc360dc19031bb1f18

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2603819.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…