学习Java的第一天

一、Java简介

Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发,并在 1995 年正式推出。

后来 Sun 公司被 Oracle (甲骨文)公司收购,Java 也随之成为 Oracle 公司的产品。

Java分为三个体系:

  • JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
  • JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
  • JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。

2005 年 6 月,JavaOne 大会召开,SUN 公司公开 Java SE 6。此时,Java 的各种版本已经更名,以取消其中的数字 "2":J2EE 更名为 Java EE,J2SE 更名为Java SE,J2ME 更名为 Java ME。

二、主要特性

1、一种面向对象的编程语言。

按照对象集合的方式组织程序是一种面向对象的编程思维;面向对象编程的四个主要概念是:抽象化,封装,继承,多态。

2、一种与平台无关的语言。(它提供了在不同平台下的解释运行环境)

编译器将源代码转换为字节码,然后JVM执行编译器生成的字节码。该字节码可以在Windows,Linux和macOS的任何平台上运行,这意味着如果我们在Windows上编译程序,则可以在Linux上运行,反之亦然。每个操作系统具有不同的JVM,但是在字节码执行后,所有操作系统产生的输出都是相同的。这就是为什么我们称Java为平台无关的语言。

3、简单

Java是简单的语言之一,因为它不具有指针,运算符重载,多重继承,显式内存分配等复杂功能。

4、一种健壮的语言,吸收了C/C++语言的优点。

Java语言健壮,意味着可靠。它以这样的方式开发:尽力尽早检查错误,这就是Java编译器甚至能够检测到其他编程语言不易检测到的那些错误的原因。使Java健壮的Java主要功能是垃圾收集,异常处理和内存分配。

5、具有较高的安全性。(自动回收垃圾,强制类型检查,取消指针)

在Java中,我们没有指针,因此我们无法访问越界数组,如果尝试这样做,它将显示ArrayIndexOutOfBoundsException。这就是为什么在Java中无法利用堆栈破坏或缓冲区溢出之类的一些安全漏洞的原因。

6、分布式

我们可以使用Java编程语言创建分布式应用程序。远程方法调用和企业Java Bean用于在Java中创建分布式应用程序。Java程序可以轻松地分布在通过Internet连接相互连接的一个或多个系统上。

7、多线程

Java支持多线程。它是Java的一项功能,它允许并发执行程序的两个或更多部分,以最大程度地利用CPU。

8、可移植

众所周知,在一台机器上编写的Java代码可以在另一台机器上运行。Java的平台无关功能,其中可以将其平台无关字节码带到任何平台上执行,从而使Java可移植。

三、Window系统安装Java

下载JDK

首先我们需要下载 java 开发工具包 JDK,下载地址:Java Downloads | Oracle,在下载页面中根据自己的系统选择对应的版本,本文以 Window 64位系统为例:

下载后 JDK 的安装根据提示进行,还有安装 JDK 的时候也会安装 JRE,一并安装就可以了。

安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为 C:\Program Files (x86)\Java\jdk1.8.0_91

 配置环境变量

1、安装完成后,右击"我的电脑",点击"属性",选择"高级系统设置";

 2、选择"高级"选项卡,点击"环境变量";

 

 然后就会出现如下图所示的画面:

在 "系统变量" 中设置 3 项属性,JAVA_HOME、PATH、CLASSPATH(大小写无所谓),若已存在则点击"编辑",不存在则点击"新建"。

注意:如果使用 1.5 以上版本的 JDK,不用设置 CLASSPATH 环境变量,也可以正常编译和运行 Java 程序。

变量设置参数如下:

  • 变量名:JAVA_HOME
  • 变量值:C:\Program Files (x86)\Java\jdk1.8.0_91        // 要根据自己的实际路径配置
  • 变量名:CLASSPATH
  • 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;         //记得前面有个"."
  • 变量名:Path
  • 变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
3、JAVA_HOME 设置

4、PATH设置

5、CLASSPATH 设置

这是 Java 的环境配置,配置完成后,你可以启动 Eclipse 来编写代码,它会自动完成java环境的配置。

测试JDK是否安装成功

1、"开始"->"运行",键入"cmd";

2、键入命令: java -versionjavajavac 几个命令,出现以下信息,说明环境变量配置成功;

这样则是配置成功了;在实际的开发上,都是使用工具来编写代码的,这样的环境配量只是为了使用记事本来编写Java语言代码;在日常的开发中,大部分程序员都是使用IDEA的,里面有专门可以下载JDK的,不需要这么麻烦的设置环境配量!!! 

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

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

相关文章

【30 天 JavaScript 挑战】学习笔记

30 天 JavaScript 挑战 专为 JavaScript 初学者设计 掌握必备 JavaScript 技能 前端人,前端魂,刷完 JS 即入门! 题目地址:https://leetcode.cn/studyplan/30-days-of-javascript/ 个人学习笔记:https://github.com/kaimo313/…

CRM系统的操作记录,应该怎样设计?多个独立模块的操作记录不同步,如何解决?

CRM系统的操作记录,应该怎样设计? 设计CRM(Customer Relationship Management,客户关系管理)系统的操作记录功能时,主要目标是确保所有与客户相关的活动和交互都能够被准确、详细地追踪和记录。以下是一种…

【AAAI2023】基于神经跨度的持续命名实体识别模型

论文标题:A Neural Span-Based Continual Named Entity Recognition Model 论文链接:https://arxiv.org/abs/2302.12200 代码:https://github.com/Qznan/SpanKL inproceedings{zhang2023spankl,title{A Neural Span-Based Continual Named En…

ElevenLabs用AI为Sora文生视频模型配音 ,景联文科技提供高质量真人音频数据集助力生成逼真音效

随着Open AI公司推出的Sora文生视频模型惊艳亮相互联网,AI语音克隆创企ElevenLabs又为Sora的演示视频生成了配音,所有的音效均由AI创造,与视频内容完美融合。 ElevenLabs的语音克隆技术能够从一分钟的音频样本中创建逼真的声音。为了实现这一…

RPC——远程过程调用

一、RPC介绍 1.1 概述 RPC(Remote Procedure Call Protocol) 远程过程调用协议。RPC是一种通过网络从远程计算机程序上请求服务,不需要了解底层网络技术的协议。RPC主要作用就是不同的服务间方法调用就像本地调用一样便捷。 1.2 RPC框架 …

QT----在编译器里能够连接云端数据库,使用windeployqt打包后运行程序,链接不上云端mysql数据库

问题描述 在编译器里能够连接云端数据库,使用windeployqt打包后运行程序,链接不上云端mysql数据库,困扰了好几天 打包发布手机上的app还是无法连接 问题解决 打包的时候没有将这个文件放入,我们复制放到exe的目录即可

redis原理深入解析之看完这篇还需要努力

数据结构 动态字符串SDS struct __attribute__ ((__packed__)) sdshdr8 {uint8_t len; /*已保存的字节数 不含结束标识 header*/uint8_t alloc; /*申请总的字节数,不含结束标识 header*/unsigned char flags;/*不同sds头类型,控制sds头大小 header*/…

【AI视野·今日Robot 机器人论文速览 第八十二期】Tue, 5 Mar 2024

AI视野今日CS.Robotics 机器人学论文速览 Tue, 5 Mar 2024 Totally 63 papers 👉上期速览✈更多精彩请移步主页 Interesting: 📚双臂机器人拧瓶盖, (from 伯克利) website: https://toruowo.github.io/bimanual-twist 📚水下抓取器, (from …

Dynamo初学尝试梳理(五)-代码块上

“学而时习之,不亦说乎”,今天接着来,稍微提高点难度(高手直接忽略就行)。 代码块(Code Block),是 dynamo 中可以直接输入 DesignScript 的节点。可以通过双击鼠标左键,快…

代码随想录算法训练营第15天| 102. 二叉树的层序遍历、226. 翻转二叉树、101. 对称二叉树

102. 二叉树的层序遍历 题目链接 102. 二叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 思路 这道题的正常解法&#xff08;迭代法&#xff09;二刷时能做出来&#xff0c;bugfree&#xff0c;但是递归法没有掌握。 本人题解 class Solution { public:vector<…

Rust有没有信号量机制,在缓存有数据的时候才允许等待的进程取数据?

Rust提供了信号量&#xff08;Semaphore&#xff09;机制&#xff0c;尽管它并没有直接提供类似于某些其他编程语言中的Semaphore类。然而&#xff0c;你可以使用std::sync::Mutex和std::sync::Condvar&#xff08;条件变量&#xff09;组合来实现信号量的功能。 信号量通常用…

程序员书单推荐:从入门到精通的必读之作

在程序员的职业生涯中&#xff0c;阅读技术书籍是不断学习和提升自我的重要途径。本文将为你推荐一系列从入门到精通的程序员书单&#xff0c;帮助你系统地掌握编程知识、提高技能水平&#xff0c;并在职业生涯中取得更大的进步。 一、入门篇 《Head First C语言》&#xff1…

基于SpringBoot+Vue+ElementUI+Mybatis前后端分离管理系统超详细教程(一)

Vue.js 是一个流行的前端框架&#xff0c;用于构建用户界面和单页应用程序。Vue 2 是其第二个主要版本&#xff0c;它提供了数据绑定、组件化、虚拟DOM等核心特性。要搭建一个 Vue 2 的工程化项目&#xff0c;可以遵循以下步骤&#xff1a; 一、前端环境搭建 &#xff08;一&a…

Maven入门(作用,安装配置,Idea基础maven,Maven依赖,Maven构建项目)【详解】

目录 一. Maven的作用 1.依赖管理 2.统一项目结构 3.项目构建 二.Maven安装配置 1. Maven的仓库类型 2 加载jar的顺序 3. Maven安装配置 4.安装Maven 5.配置仓库 三.idea集成maven 1.给当前project集成maven 2.给新建project集成maven 3.创建maven项目 4.pom…

二维码门楼牌管理系统应用场景:地方社区管理的新利器

文章目录 前言一、地方社区管理部门的门牌信息利用二、与社区管理部门的联动效应三、结论 前言 随着信息技术的不断发展&#xff0c;二维码门楼牌管理系统逐渐成为地方社区管理的新宠。该系统通过集成二维码技术与门楼牌信息&#xff0c;为社区管理带来了前所未有的便利与高效…

git 最基本的几条命令

git 最基本的几条命令 初始化本地仓库和推送到远程仓库 打开命令提示符或PowerShell&#xff1a;在你的本地项目目录中&#xff0c;可以通过文件资源管理器地址栏输入cmd或PowerShell 并回车来打开初始化 Git&#xff1a;git init添加所有文件到新的Git仓库&#xff1a;git a…

Github 2024-03-07Go开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-07统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10TypeScript项目1Harbor - 开源的云原生注册表项目 创建周期:2908 天开发语言:Go协议类型:Apache License 2.0Star数量:21549 个For…

2024年JSON 面试题目-1

以下是一些可能在2024年JSON相关的热点面试题目&#xff1a; 请解释JSON是什么&#xff0c;以及它与其他数据交换格式&#xff08;如XML&#xff09;相比有哪些优势&#xff1f; JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式&#xff0c;它基于ECMAScript的一…

uniapp 解决请求出现 /sockjs-node/info?t=问题

1. uniapp请求出现 /sockjs-node/info?t问题 1.1. 问题 uniapp项目老是出现 http://192.168.2.106:8080/sockjs-node/info?t1709704280949 1.1. sockjs-node介绍 sockjs-node 是一个JavaScript库&#xff0c;提供跨浏览器JavaScript的API&#xff0c;创建了一个低延迟、全…

selinux规则

selinux状态 相关命令 进程要和文件的安全上下文相匹配&#xff0c;进程才能打开文件 查找这个命令从哪个安装包来的用 yum provides 命令 进程httpd 必须与ls -Z的文件类型一致&#xff0c;要不然在强制模式下面&#xff0c;打开不了 在终端2用此命令&#xff0c;把文件类型改…