程序媛的mac修炼手册-- 小白入门Java篇

最近因为要用CiteSpace做文献综述,间接接触Java了。所以,继Python、C之后,又要涉猎Java了。刺激!!

由于CiteSpace与Java要求版本高度匹配,有个匹配详情明天为大家讲解。总之,我的Java之旅开始于下载与卸载之间的极限拉扯。总之一句话,咱就下载了八九遍,卸载了七八遍,而已~

所以,咱高低算有Java经验了😂,接下来详细讲讲我这摸索期间的血泪教训经验历程。

一、Java简介

Java被设计为一种可以用于构建复杂的应用程序,如桌面应用程序、服务器端应用程序和Android移动应用程序的通用编程语言,常用于开发应用程序和完善web,服务于游戏开发、网上银行、互动地图等领域。

Java是一种强类型、面向对象的编程语言,要求在编写代码时声明变量的类型。Java提供了多线程和同步机制来处理并发任务。Java有许多框架和库,如Spring、Hibernate等,适用于构建大型企业级应用。

Java的兼容性较好,能实现跨平台Mac/Linux/Windows的软件的开发。这是因为Java代码通常在Java虚拟机(JVM)上运行,因此它可以在任何安装了JVM的平台上运行,不论啥操作系统,Java代码说跑就跑。一个字,绝!

正因为Java如此强大,1995年网景公司(Netscape)开发了一种轻量级的脚本语言,愣是蹭Java热度,给取名为JavaScript。两者其实没啥关系,只是名字相似而已。

JavaScript最初被设计为一种轻量级的脚本语言,主要用于网页的客户端,为网页添加交互性。通过Node.js等技术,JavaScript也被用于服务器端编程。JavaScript主要在浏览器的JavaScript引擎中运行,如Google的V8引擎、Mozilla的SpiderMonkey等。JavaScript是一种弱类型或动态类型的语言,它的变量类型在运行时可以改变,并且它支持多种编程范式,包括面向对象、命令式和函数式编程。JavaScript是单线程的,但它通过事件循环和回调函数来处理异步操作,避免阻塞主线程。JavaScript在Web开发领域,流行的框架如React、Angular和Vue.js等。

不过,强大如Java,跑JavaScript代码,小意思啦~~例如,Java的ScriptEngine API允许开发者在Java应用程序中执行JavaScript代码。这在某些特定场景下是有用的,如在Java服务器页面(JSP)中嵌入JavaScript代码,或者当需要利用JavaScript的某些特性时。

二、Java安装

打开Java官网进行下载,Java Downloads | Oracle。JDK(Java Development Kit)是Java 语言的软件开发工具包(SDK)的简称。

现在有Java 17Java 21版本了,按需选择。如果不知道自己是啥需求,那就选最新版。

Java 21 是继 JDK 17 后的长期支持版本 (LTS),具备虚拟线程功能(Virtual Threads),支持并发编程,用更少的开销,处理更多的任务。Oracle 将为其提供至少八年的技术支持和更新。

根据 Oracle 免费条款和条件 (NFTC),JDK 21 二进制文件可在生产中免费使用,也可免费再分发。JDK 21 将根据 NFTC 接受更新,直至 2026 年 9 月,即下一个 LTS 发布一年后。

注意,要根据自己的Mac选择Intel系列 or M系列的Java。

点击下载链接,按常规应用程序安装方式安装就行。

三、Java卸载

然而,上山容易下山难呐,安装容易卸载难!!!

接下来就给大家讲讲,卸载Java过程中的坑点。需要卸载旧版Java,或者完全移除Java环境的,请继续看:

1. 确定已安装的Java版本

在「终端(terminal)」中运行以下命令,查看已安装的Java版本:

java -version

2. 卸载Java Development Kit (JDK)

要卸载Java Development Kit (JDK),需要执行以下步骤:

(1)在「终端(terminal)」中打开JDK的安装位置:

cd  /Library/Java/JavaVirtualMachines/

(2)运行以下命令,列出已安装的JDK版本:

ls

(3)运行以下命令,删除指定的JDK版本:请将 jdk-1.8.jdk替换为你想删除的版本:

sudo rm -rf  jdk-1.8.jdk

3. 卸载Java Runtime Environment (JRE)

(1)在「终端(terminal)」中打开JRE的安装位置:

cd /Library/Internet\ Plug-Ins/

注意,上述代码中的反斜杠 \ ,是因为文件夹名“Internet Plug-Ins”中有空格。

(2)运行以下命令,列出已安装的JRE列表:

ls

(3)运行以下命令,删除指定JRE版本:请将 JavaAppletPlugin.plugin替换为你想删除的版本:

sudo rm -rf  JavaAppletPlugin.plugi

4. 删除Java相关文件和目录

在终端中运行以下命令,删除Java相关的文件和目录:

5. 清理系统环境变量

更多Java相关详情,请参考Java官网教程​​​​​​​。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华清远见作业第四十一天——Qt(第三天)

思维导图: 编程 完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如…

喜报 | 通付盾再次入选“苏州市网络和数据安全技术支撑单位”

近日,为加强苏州市网络和数据安全技术服务体系建设,提升网络和数据安全保障水平,苏州市互联网信息办公室、苏州市互联网协会发布了2024-2025年度苏州市网络和数据安全技术支撑单位名单。经过自主申报、资料审核、专家评审等环节,江…

「C语言进阶1」动态内存分配

目录 一、动态内存分配是什么? 二、为什么需要动态内存分配? 三、怎么进行动态内存分配? 1. malloc 2. calloc 3. realloc a. realloc功能解析 b. 内存泄漏和内存块被截断问题 c. 总结 4. free 四、使用动态内存分配常见的问题 【面试题】 一…

线代:认识行列式、矩阵和向量

本文主要参考的视频教程如下: 8小时学完线代【中国大学MOOC*小元老师】线性代数速学_哔哩哔哩_bilibili 另外这个视频可以作为补充: 【考研数学 线性代数 基础课】—全集_哔哩哔哩_bilibili 行列式的概念和定义 一般会由方程组来引出行列式 比如一个二阶…

IO进程线程的通信操作

1.编程实现互斥机制 程序代码&#xff1a; 1 #include<myhead.h>2 int num520;//临界资源3 //1.创建一个互斥锁变量4 pthread_mutex_t mutex;//定义一个pthread_mutex_t类型的变量5 //定义任务1函数6 void *task1(void *arg)7 {8 printf("不畏过去\n");9 …

java面试题之mybatis篇

什么是ORM&#xff1f; ORM&#xff08;Object/Relational Mapping&#xff09;即对象关系映射&#xff0c;是一种数据持久化技术。它在对象模型和关系型数据库直接建立起对应关系&#xff0c;并且提供一种机制&#xff0c;通过JavaBean对象去操作数据库表的数据。 MyBatis通过…

驾校预约|驾校预约小程序|基于微信小程序的驾校预约平台设计与实现(源码+数据库+文档)

驾校预约小程序目录 目录 基于微信小程序的驾校预约平台设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户​微信端功能模块​ 2、管理员服务端功能模块 &#xff08;1&#xff09;学员信息管理 &#xff08;2&#xff09; 教练信息管理 &#xff08;3&…

Django学习笔记-HTML实现服务器图片的下载

1.index编写代码,跳转下载页面 2.创建download界面 3.编写download路由 4.创建download函数 1).如果请求的方法是GET&#xff0c;imglist变量存储从models.imgModel模型中获取的所有对象,创建字典ctx,使用render函数来渲染download.htm 2).如果请求的方法是POST,获取要下载的文…

Spring学习上下文【ConfigurableApplicationContext】

话不多说&#xff0c;先上图&#xff1a; ConfigurableApplicationContext是Spring框架中的一个接口&#xff0c;它继承了ApplicationContext接口&#xff0c;并扩展了一些额外的方法&#xff0c;用于允许应用程序在运行时动态地修改和管理应用上下文。ConfigurableApplicati…

【js】无限虚拟列表的原理及实现

什么是虚拟列表 虚拟列表是长列表按需显示思路的一种实现&#xff0c;即虚拟列表是一种根据滚动容器元素的可视区域来渲染长列表数据中某一个部分数据的技术。 简而言之&#xff0c;虚拟列表指的就是「可视区域渲染」的列表。有三个概念需要了解一下&#xff1a; 视口容器元…

KDD 2023 图神经网络方向论文总结

ACM SIGKDD&#xff08;国际数据挖掘与知识发现大会&#xff0c;KDD&#xff09;是数据挖掘领域历史最悠久、规模最大的国际顶级学术会议&#xff0c;也是首个引入大数据、数据科学、预测分析、众包等概念的会议。今年&#xff0c;第29届 KDD 大会在美国加州长滩举行&#xff0…

冒泡排序法的名字由来,排序步骤是什么,最坏情况下的排序次数如何计算得来的呢?

问题描述&#xff1a;冒泡排序法的名字由来&#xff0c;排序步骤是什么&#xff0c;最坏情况下的排序次数如何计算得来的呢&#xff1f; 问题解答&#xff1a; 冒泡排序法的名字来源于排序过程中较大的元素会像气泡一样逐渐“冒”到序列的顶端&#xff0c;而较小的元素则会逐…

代码随想录算法训练营第四十天 343. 整数拆分、 96.不同的二叉搜索树

代码随想录算法训练营第四十天 | 343. 整数拆分、 96.不同的二叉搜索树 343. 整数拆分 题目链接&#xff1a;343. 整数拆分 - 力扣&#xff08;LeetCode&#xff09; 例如 n 10, 可以拆分为 3 * dp[7] 。因为dp[7]之前已经计算过最大 3 * 4&#xff0c; 所以dp[10] 3 * 3 …

Microsoft 365自定义安装软件

如图&#xff0c;在安装类型的步骤的时候&#xff0c;可以勾选自己想要的软件&#xff08;而非一股脑儿的安装一大堆自己不需要的&#xff09;。

AI绘画巅峰对决:Stable Diffusion 3与DALL·E 3原理深度比较

最近&#xff0c;Stable Diffusion 3 的预览版已经亮相啦&#xff01; 虽然这个AI绘画模型还没全面上线&#xff0c;但官方已经开启预览申请通道了。 https://stability.ai/stablediffusion3 而且好消息是&#xff0c;后面还会推出开源版本哦&#xff01; 这个模型套件真的…

五种多目标优化算法(MOAHA、MOGWO、NSWOA、MOPSO、NSGA2)性能对比(提供MATLAB代码)

一、5种多目标优化算法简介 多目标优化算法是用于解决具有多个目标函数的优化问题的一类算法。其求解流程通常包括以下几个步骤&#xff1a; 1. 定义问题&#xff1a;首先需要明确问题的目标函数和约束条件。多目标优化问题通常涉及多个目标函数&#xff0c;这些目标函数可能…

基于SpringBoot的产业园区智慧公寓管理系统

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…

这才开工没几天收到Offer了,简历改的好,找工作没烦恼。

喜报喜报 这才开工没几天&#xff0c;就收到了喜报&#xff01; 就像上面截图中所说的一样&#xff1a;简历改了真的有用。 我也和大家分享一下优化简历的技巧&#xff0c;希望对大家有帮助&#xff0c;把握住金三银四的机会&#xff0c;都能顺利上岸&#xff0c;升职加薪&am…

多数pythoneer只知有列表list却不知道python也有array数组

数组和列表 Python中数组和列表是不同的&#xff0c;我敢断言大多数的pythoneer只知道有列表list&#xff0c;却不知道python也有array数组。列表是一个包含不同数据类型的元素集合&#xff0c;而数组是一个只能含相同数据类型的元素集合。 Python的array库是一个提供数组操作…

Android 广播的基本概念

一.广播简介 Broadcast是安卓四大组件之一。安卓为了方便进行系统级别的消息通知&#xff0c;引入了一套广播消息机制。打个比方&#xff0c;记得原来在上课的时候&#xff0c;每个班级的教室里都会装有一个喇叭&#xff0c;这些喇叭都是接入到学校的广播室的&#xff0c;一旦…