Java SE 1.基础常识

1.计算机语言

  • 1.机器语言: 二进制的01组成的编码
  • 2.汇编语言: 英文标识符组成的编码
  • 3.高级语言: 接近自然语言

2.Java技术平台

1.JAVA SE

  • 1.Java Platform Standard EditionJava标准版
1.JDK
  • 1.Java开发工具集:包括JRE和命令行开发工具(编译,运行,调试Java程序所需要的基本工具)
2.JRE
  • 1.Java运行环境:提供Java虚拟机和运行Java应用程序所必需的类库
3.JRE与JDK的区别
  • 1.如果只需要在某种操作系统下运行Java应用程序,则安装支持该操作系统的JRE即可
  • 2.如果不仅要运行Java应用程序,还要开发Java应用程序,则需要安装支持该操作系统的JDK
4.SDK与JDK的区别
  • 1.SDK:软件开发工具包(soft development kit),sdk是一个大的概念,比如开发安卓应用需要安卓开发工具包(android sdk);开发java程序需要用到java sdk,一般使用sdk这个概念需要在前面加上限定词
  • 2.JDKJava开发工具集,包括JRE和命令行开发工具(编译,运行,调试Java程序所需要的基本工具)
5.JVM
  • 1.运行Java字节码的Java虚拟机,源码先通过编译器编译成二进制字节码文件,然后JVM把每条要执行的字节码交给Java解释器翻译成对应的机器码,最后由解释器执行
  • 2.JVM屏蔽了底层操作系统的差异,使Java程序只需生成在Java虚拟机上运行的字节码,就可在多种平台上运行,为跨平台提供了支持
6.Java编译器
  • 1.将Java源文件(.java)编译成二进制字节码文件(.class)
  • 2.jdk安装包bin录下的javac.exeJava编译器
7.Java解释器
  • 1.Java解释器是JVM的一部分,Java解释器用来解释执行Java编译器编译后的.class文件
  • 2.jdk安装包bin录下的java.exeJava解释器
8.注意
  • 1.通常一个平台上的二进制可执行文件不能在其他平台上工作,因为此可执行文件包含了对目标处理器的机器语言,而.class文件这种特殊的二进制文件可以运行在任何支持Java虚拟机的硬件平台和操作系统上

2.JAVA EE

  • 1.Java Platform Enterprise EditionJava企业版

3.JAVA ME

  • 1.Java Platform Micro EditionJava微型版

3.Java语言特点

  • 1.简单性
    • 1.Java使用引用而非指针
    • 2.Java提供自动分配和回收内存空间
  • 2.健壮性
    • 1.Java具有的强类型、异常处理、垃圾自动收集等机制
  • 3.安全性
    • 1.Java对通过网络下载的类具有一个安全防范机制(类 ClassLoader
    • 2.Java提供安全管理机制(类 SecurityManager)让应用设置安全哨兵
  • 4.面向对象
    • 1.Java是一种完全面向对象的编程语言
    • 2.Java支持动态绑定
  • 5.网络分布式计算
    • 1.Java是面向网络的编程语言,具有基于网络协议的类库
    • 2.Java应用编程接口中有一个网络应用编程接口(java net),其提供用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket
  • 6.并发性(多线程)
  • 7.平台无关性(可移植性)

4.Java开发工具

  • 1.基础开发工具
    • 1.JDKJava Development Kit): 编写Java程序时,可用文本编辑器编辑Java源码,然后运用JDK中的命令编译和运行程序
      在这里插入图片描述
      javac 类名.java //编译
      java 包名.类名 //执行
      
  • 2.集成开发环境(IDE
    • 1.Eclipse
    • 2.IntelliJ IDEA

5.JDK下载安装

  • 1.官网下载jdk8.0及以上Windows版本
  • 2.安装并设置安装路径
  • 3.Linux下载安装参考Linux软件安装

1.配置环境变量

此电脑->计算机->属性->环境变量->系统变量
// 用于指定jdk的安装目录,可以通过%%被引用
新建:JAVA_HOME:jdk的安装路径
// 用于告诉计算机其他可执行文件的位置
Path%JAVA_HOME%\bin
// 注意:更改Java版本时还需要更改系统变量Path中的C:\ProgramData\Oracle\Java\javapath

2.windows中的两种环境变量

1.环境变量不区分大小写(windows中环境变量包括用户变量和系统变量)
2.系统用户变量对所有用户有效,用户变量只对当前用户有效
3.用户变量与系统变量:名称是变量,值是里面的内容,通过变量存储想要的内容,方便调用
4.系统变量和用户变量的PATH:告诉系统可执行文件.exe放在什么路径(可执行程序的路径要放在PATH里,不能新建一个变量,否则cmd会提示不是内部或外部命令,或者不是可执行程序)
5.windows系统在执行用户命令时,若用户未给出文件的绝对路径,则首先在当前目录下寻找相应可执行文件,批处理文件等,若当前目录找不到对应文件名的程序,则在系统变量的Path的路径中,依次寻找对应的可执行程序文件(查找顺序是按照路径的录入顺序从左往右寻找的,最前面一条的优先级最高,如果找到程序就停止寻找,后面的路径不再执行)
6.如果系统变量的Path路径找不到,再到用户变量的Path路径中寻找(如果系统变量和用户变量的Path中同时包含了同一个命令,则优先执行系统变量Path中的命令)
7.每次新加了命令以后,要确定保存再重启CMD,否则命令不生效
8.CMD里要输出环境变量可以通过 echo %变量名%
9.%JAVA_HOME%%的意思表示JAVA_HOME是定义过的一个环境变量,这里通过%%引用

1.首先打开“运行”输入cmd,再输入“java -version”如果有内容说明你的jdk安装成功
2.java命令可用说明你配置的classpath是正确的,因为java命令可以看作是Java解释器用来执行字节码(.class)文件,而classpath则是用来指定类库(存放.class文件)的位置
3.classpath原配置代码:%Java_Home%\lib\dt.jar;%Java_Home%\lib\tools.jar
4.JDK1.5之前,我们没有办法在当前目录下加载类文件(找不到 JDK目录下lib文件夹中的.jar文件),所以我们需要通过配置classpath在当前目录加载类文件
5.JDK1.5之后,JRE能自动搜索目录下类文件,并且加载dt.jar和tool.jar的类。所以配置Java环境变量时不再需要配置classpath,只需要配置JAVA_HOME以及Path即可
6.使用javac命令出现javac不是内部或外部命令,说明Path配置有问题,先检查下Path路径是否配置正确。如果确定没有问题的话,打开jdk的安装目录,在bin文件夹里查找下是否有javac.exe程序,如果有,说明你的path配置的有问题,如果没有,那说明你下载的jdk不是正规渠道下载的,建议去java官网上重新下载安装
7.dt.jar是关于运行环境的类库,主要是用于swing的包,如果不使用可以不配置。
8.tools.jar是工具类库,它在编译和运行一个类时被使用
9.当我们配置classpath后,系统会根据我们所配置的classpath加载类
10.例如:在我们使用javac命令编译程序时,系统加载tools.jar其实就封装了下面这样一条命令
javac XXX.java
java -classpath=%JAVA_HOME%\lib\tools.jar xx.xxx.Main XXX.java

6.Java工作原理

在这里插入图片描述

  • 1.计算机高级语言类型主要有编译型解释型两种,java是两种类型的结合
  • 2.Java源文件名称的后缀为:.java
  • 3.通过编译使.java 源文件生成后缀为.class字节码文件
  • 4.再由JavaJVM解释执行.class文件

7.JVM

  • 1.JVM(Java Virtual Machine)是Java跨平台的保证
  • 2.所有的.class文件都在JVM上运行,不同的操作系统只需安装符合其类型的JVM,那么程序无论在哪个操作系统都可以正确执行
  • 3.具体JVM内容参考JVM文章

8.安装类库源代码

  • 1.Java类库源文件在JDK中以压缩文件src.zip的形式发布,将其解压缩后才能够访问源代码,src.zip中包含了所有公共类库的源代码
  • 2.步骤
    • 1.确保JDK已安装,并且jdk/bin目录在执行目录中
    • 2.进入JDK目录并建立一个子目录src
    • 3.在src目录下的cmd中执行解压缩命令:jar xvf . ./src.zip
      在这里插入图片描述
      在这里插入图片描述

9.通过命令行编译并运行Java程序

  • 1.打开一个cmd窗口,进入到Java程序所在目录
  • 2.然后输入下列命令
    • 1.javac 程序名.java
    • 2.java 程序名
      在这里插入图片描述
  • 3.带包编译
    • 1.javac -d . 源文件.java
    • 2.java 包名.类名

10.注意事项

  • 1.Java严格区分大小写

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

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

相关文章

Python实现双向链表:从基础到应用

一、引言 双向链表是一种比单向链表更复杂的数据结构,每个节点除了包含数据和指向下一个节点的指针外,还包含一个指向前一个节点的指针。这种结构使得我们可以从链表的任何节点开始,向前或向后遍历链表。 目录 一、引言 二、节点定义 三、…

黑猫的牌面

解法&#xff1a; 桶 #include <iostream> #include <vector> #include <algorithm> using namespace std; #define endl \nint main() {ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);vector<int> tong(1001);int t 4;int k, pai;long lon…

vue3+ts+vite使用mock数据

安装以下命令 npm i vite-plugin-mock --save-dev npm i mockjs --save-dev 在根路径下创建mock文件夹 mock\user.ts const menuList [{path: /system,component: Layout,name: system,meta: {title: 系统管理,icon: Setting,roles: [sys:manage]},children: [{path: /depar…

leetcode--接雨水(双指针法,动态规划,单调栈)

目录 方法一&#xff1a;双指针法 方法二&#xff1a;动态规划 方法三&#xff1a;单调栈 42. 接雨水 - 力扣&#xff08;LeetCode&#xff09; 黑色的是柱子&#xff0c;蓝色的是雨水&#xff0c;我们先来观察一下雨水的分布情况: 雨水落在凹槽之间&#xff0c;在一个凹槽的…

前端Vue3项目如何打包成Docker镜像运行

将前端Vue3项目打包成Docker镜像并运行包括几个主要步骤&#xff1a;项目打包、编写Dockerfile、构建镜像和运行容器。下面是一个基本的流程&#xff1a; 1. 项目打包 首先&#xff0c;确保你的Vue3项目可以正常运行和打包。在项目根目录下执行以下命令来打包你的Vue3项目&am…

《PyTorch深度学习实践》第十三讲RNN进阶

一、 双向循环神经网络&#xff08;Bidirectional Recurrent Neural Network&#xff0c;BiRNN&#xff09;是一种常见的循环神经网络结构。与传统的循环神经网络只考虑历史时刻的信息不同&#xff0c;双向循环神经网络不仅考虑历史时刻的信息&#xff0c;还考虑未来时刻的信息…

14:00面试,14:07就出来了,问的问题过于变态了。。。

我从一家小公司转投到另一家公司&#xff0c;期待着新的工作环境和机会。然而&#xff0c;新公司的加班文化让我有些始料未及。虽然薪资相对较高&#xff0c;但长时间的工作和缺乏休息使我身心俱疲。 就在我逐渐适应这种高强度的工作节奏时&#xff0c;公司突然宣布了一则令人…

Leetcode : 数组拆分 I

给定长度为 2n 的整数数组 nums &#xff0c;你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) &#xff0c;使得从 1 到 n 的 min(ai, bi) 总和最大。返回该 最大总和 。 思路&#xff1a;2n长度数组&#xff0c;共有n对&#xff0c;原有思路暴力破解法…

centos7安装jdk8、maven3.9

jdk8安装 下载安装包 下载安装包地址 下载的时候需要注册oracle账号&#xff0c;没有的可以使用现成的 账号&#xff1a;2028056560qq.com 密码&#xff1a;Oracle1234 放到指定的目录 解压 tar -xvzf jdk-8u401-linux-i586.tar.gz 配置环境变量 添加JAVA_HOME变量 vim…

Linux之gcc和makefile的使用详细解析

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 算法 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂 目录 一.gcc/g安装 二.gcc运行代码 三.gcc是如何完成的 3.1预处…

【Leetcode每日一刷】贪心算法|122.买卖股票的最佳时机 II、55. 跳跃游戏

一、122.买卖股票的最佳时机 II 力扣题目链接 &#x1f984;解题思路&#xff1a; 首先需要明确的几个点&#xff1a; 当前只能有最大一支股票每一天操作只能3选1&#xff1a;买or卖or休息 此外&#xff0c;对于贪心&#xff0c;总有像下面图示的一种直觉&#xff1a;如果…

11.盛最多水的容器

题目&#xff1a;给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 解题思路&#xff1a;可以…

算法打卡day5|哈希表篇01|Leetcode 242.有效的字母异位词 、19.删除链表的倒数第N个节点、202. 快乐数、1. 两数之和

哈希表基础知识 哈希表 哈希表关键码就是数组的索引下标&#xff0c;然后通过下标直接访问数组中的元素&#xff1b;数组就是哈希表的一种 一般哈希表都是用来快速判断一个元素是否出现集合里。例如要查询一个名字是否在班级里&#xff1a; 要枚举的话时间复杂度是O(n)&…

【开源】JAVA+Vue.js实现天沐瑜伽馆管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 瑜伽课程模块2.3 课程预约模块2.4 系统公告模块2.5 课程评价模块2.6 瑜伽器械模块 三、系统设计3.1 实体类设计3.1.1 瑜伽课程3.1.2 瑜伽课程预约3.1.3 系统公告3.1.4 瑜伽课程评价 3.2 数据库设计3.2.…

【C语言】动态内存管理常用函数

前言 我们在之前学习的数组开辟的空间是固定不变的&#xff0c;有时候我们需要的空间⼤⼩在程序运⾏的时候才能知道~ c语言中的动态内存开辟&#xff0c;让程序员⾃⼰可以根据实际需求申请和释放相应空间&#xff0c;这使得空间的开辟变得灵活了许多。 欢迎关注个人主页&#x…

【C++进阶】哈希表的闭散列和开散列(哈希桶)的代码实现

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;C航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1…

mariadb数据库——安装,创建数据库

MariaDB是一个流行的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它是MySQL的一个分支。 安装 apt -y install mariadb-servervi /etc/mysql/mariadb.conf.d/50-server.cnf character-set-server utf8mb4 collation-server utf8mb4_general_c…

什么时候要用到Reflect API?

参考文档 https://www.zhihu.com/question/460133198 https://cn.vuejs.org/guide/extras/reactivity-in-depth.html https://juejin.cn/post/7103764386220769311 Reflect API 一般搭配 Proxy API 一起使用。什么是 Proxy API 呢&#xff1f; 先回顾下 vue 的数据响应性是如何…

【已解决】卸载软件时显示“无法使用此产品的安装源,请确认安装源存在,并且你可以访问它”报错截图如下

卸载软件时显示“无法使用此产品的安装源&#xff0c;请确认安装源存在&#xff0c;并且你可以访问它”报错截图如下 使用Uninstall Tool软件强制删除&#xff0c;绕过软件自带的uninstall程序。&#xff08;小白推荐&#xff0c;如下图&#xff09; Uninstall Tool - Unique…

【DAY06 软考中级备考笔记】数据结构:树

数据结构&#xff1a;树 3月1日 – 天气&#xff1a;晴 之前在B站看的视频讲的是在太过简单&#xff0c;弃了。现在换了新的视频继续&#xff0c;后续会重新看前面的视频补过来。https://www.bilibili.com/video/BV1pT4m1S7uH/ 1. 树的基本概念 需要注意的是&#xff1a; 并不是…
最新文章