JAVA基础(JAVA SE)学习笔记(一)JAVA学习路线、行业了解、开发环境JDK17安装配置 和 JDK8同时配置

news2024/9/20 8:04:40

前言

1. 学习视频:

尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)_哔哩哔哩_bilibili

2023最新Java学习路线 - 哔哩哔哩

2. 一步一个脚印,踏踏实实再学一遍!

这个世界上有的人输在不能开始,有的人输在不断开始,有的人输在不能坚持;学习一门新技术不是一件轻松的事,但只有你坚持了别人无法坚持的坚持,你才能拥有别人无法拥有的拥有。

3. 学习计划路线:

4. 每天看视频之后,要把学习的代码敲3遍,敲得很熟!

5. Java神书:学完java基础之后可以看看

《Java核心技术》:查阅工具

《Effective Java》

《Java编程思想》。

编程语言概述及Java学习路线

1.1 软件开发,进入互联网IT行业最好的选择之一。

  • 起始薪资高(12K-15k)
  • 工作环境好(其实加班也挺多,但是什么职业不加班啊,都要加班还不给钱)
  • 涨薪幅度高(二年涨薪3-5k)
  • 行业更公平(实力说话)
  • Python、C、Java、C++、C#。

TIOBE Index - TIOBE编程语言排行榜,每月更新。

Python简单易学(一周学会),上手快,但是不够专一,所以只能作为工具之一。

1.2 软件开发之Java开发

  • 移动应用领域(集成Android平台):Java在Android端是主要开发语言,占有重要地位。
  • 企业级应用领域(JavaEE后台):用来开发企业级的应用程序,大型网站如淘宝、京东、12306,以及各大物流、银行、金融、社交、医疗、交通、各种OA系统等都是用JavaEE技术开发的。
  • 大数据分析、人工智能领域:流行的大数据框架,如Hodoop、Flink都是用Java编写的。Spark使用Scala编写,但是可以用Java开发应用。
  • 游戏领域、桌面应用、嵌入式领域:很多大型游戏的后台、桌面应用等也是Java开发的。

1.3 Java中高级程序员全程学习路线图

1.3.1 第一阶段:基础部分

1.3.2 第二阶段:网站前后台技术

1.3.3 第三阶段:经典框架

1.3.4 第四阶段:分布式项目

1.3.5 第五阶段:高级和前沿技术

1.3.6 第六阶段:全栈项目

1.3.7 第七阶段:就业加薪课

1.3.8 第八阶段:微服务架构项目

1.3.9 第九阶段:面试指导

1.3.10 第十阶段:进阶(上)(计算机科学的精华)

1.3.11 第十阶段:进阶(下)

1.4 Java 职业晋升路线图(年薪)

系统软件:windows 10 、Mac OS、Linux、Android、IOS。项目在企业端,会部署到Linux中。

人机交互方式:图形化界面(GUI,Graphical User Interface)、命令行方式(CLI,Command Line Interface)。

1.5 常用的DOS命令

d:                             进入D盘

dir                           显示文件目录

md class1               创建新文件夹calss1

cd class1                进入这一级目录中的class1文件夹

cd..                         回退到上一级目录

cd\  或 cd/               回退到盘符根目录

rd tream1                删除文件夹tream1

del moon.txt                删除文件moon.txt 

del *.txt                删除文件所有.txt 文件

cls                        清屏

exit                        退出命令提示符窗口

正文

第一阶段:Java基本语法

1. Java 语言概述

1.1 java语言发展概述

学完Java基础,可以看看这本书:

1.2 java技术体系平台

java基础也可以称为Java SE。

java后台,也可以说就是Java EE。

Java ME也不怎么使用,现在也被Android开发替代了。(Android开发不等于Java ME开发)

1.3 Java开发环境搭建

1.3.1 选择安装jDK 17

1.3.2 JDK 下载和安装(可以安装多个版本的JDK)
JDK17:

Java Downloads | Oracle 中国

现在JDK21也已经出来了!!

安装:网上有很多安装方法

JAVA17---安装+配置环境变量 | JAVA安装完整教学_java runtime environment 17 / jre-17_Xunlan_的博客-CSDN博客

JAVA_HOME  

CLASSPATH(不需要配置)

JDK8:

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

JDK17:

.;;%JAVA_HOME%\lib\jrt-fs.jar

path中添加:

%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin (只有JDK8需要配置)

注意:

  • JDK17安装之后,会自动在path中添加一个环境变量:使用JDK17,强烈建议把 %JAVA_HOME%\bin 置顶,方便系统寻找并选择。

  • 建议JAVA_HOME的值也设置的是JDK17的位置。电脑默认选择JDK17,方便配合后续使用。

  • JAVA_HOME的值是JDK的安装路径,我一般安装在C盘下,方便运行。

  •  配置环境变量的原因:

设置JAVA_HOME:

  一是为了方便引用,比如,JDK安装在C:\jdk17目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串;

  二则是归一原则, 当JDK路径改变的时候, 仅需更改JAVA_HOME的变量值即可, 否则,就要更改任何用绝对路径引用JDK目录的文档, 要是万一没有改全, 某个程序找不到JDK, 后果是可想而知的----系统崩溃!
  三则是第三方软件会引用约定好的 JAVA_HOME 变量, 不然, 你不能正常使用该软件。
  在系统环境变量那一栏中点 -> 新建 JAVA_HOME (JAVA_HOME指向的是JDK的安装路径)

path 变量:

  path 变量用于保存一系列路径,每个路径之间用分号隔开。当命令行运行一个可执行文件时,操作系统会在当前目录下查找是否存在该文件,找不到时会在path路径下找这个文件,也找不到,就会报错。

所以我们配置path系统环境变量路径的值,告诉计算机java可执行程序都放在bin目录下,使得我们能够在系统中的任何地方运行java应用程序,比如 javac.exe、java.exe、javadoc.exe 等等。

        JDK17也没有jre文件夹,所以,也不需要%JAVA_HOME%\jre\bin

classpath变量 :(强烈建议不配置

        classpath环境变量也用于保存一系列路径。当java虚拟机需要运行一个类时,会在classpath所定义的路径下寻找class文件。

但是JDK5.0开始,classpath变量没有进行配置,java虚拟机自动将其设置为“.”,也就是当前目录。所以不用配置classpath变量!

JDK8:

JDK中包含JRE,但是还是会询问是否安装JRE,(可以不装,JDK17也不会有这个询问)如果安装,需要新建一个安装目录:

然后下一步,就安装好啦。再配置环境变量就好了。下面是jdk的文件目录:

lib:library的缩写,Java类库或库文件,是开发工具使用的归档包文件。

src文件:放置JDK核心类的源代码。

bin目录:存放着很多java可执行程序,其中最重要的就是javac.exe和java.exe文件。

  • javac.exe :Java编译器工具,将编写好的Java文件编译Java字节码文件(可执行的Java程序)。也就是将.java文件编译成.class文件。.class文件的名称由.java文件中的类名决定。
  • java.exe :Java运行工具,会启动一个Java虚拟机(JVM)进程,专门运行.class文件。

.text文件可以修改为.java文件,需要勾选显示文件扩展名

1.3.3 JDK8与JDK17同时进行环境配置

为两个JDK新建两个JAVA_HOME,分别指定安装路径。
然后创建JAVA_HOME指定用的JDK(以后用8或17在这里切换)

Path中添加%JAVA_HOME%\bin 。

  • JDK17安装之后,会自动在path中添加一个环境变量:

可以不删掉,只将%JAVA_HOME%\bin 移至最上。(Path中删掉自动添加的C:\..\Oracle\Java\javapath这条变量配置)。

CLASSPATH要手动更改:(也可以不配置这个,强烈建议不配置

JAVA_HOME   %JAVA17_HOME%  或 %JAVA8_HOME%  

CLASSPATH (不需要配置)

JDK8:

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

JDK17:

.;;%JAVA_HOME%\lib\jrt-fs.jar

path中添加:

%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin (只有JDK8需要)

JDK17中的lib下已经没有dt.jar和tool.jar两个包了。只剩一个jrt-fs.jar。

所以其实classpath的配置不用要(上面讲过classpath默认路径为“.”,即当前目录),且可省去 %JAVA_HOME%\jre\bin(建议不省去,否则切换jdk8时,要再配置一次!有这个配置jdk17平时也不影响使用。)

到此,配置完成。

完成后,win+R输入cmd,用java -version和javac命令验证一下就可。

1.3.4 不用配置classpath变量

有classpath变量可能会出现问题:(我没有出现这个问题,但是我把它删除了

编译器编译完java文件后的字节码文件默认放在当前.java文件相同文件夹下。但是classpath变量编写完以后,java.exe运行.class文件的时候,会去classpath变量下的路径下找.class文件,会找不到。但是JDK5.0开始,classpath变量没有进行配置,java虚拟机自动将其设置为“.”,也就是当前目录。所以不用配置classpath变量!

1.3.5 JDK17的卸载 与 重装

由于我的JDK版本是17.0.4.1不是长期支持版本的最新版的版本17,所以我现在卸载并重新下载长期支持版本的最新版17.0.8:

配置环境变量:

安装成功:

之前的17.0.4.1:

1.3.6 命令行运行java程序Hello.java  

java文件编写、编译、运行都要严格区分大小写。

在命令行窗口(Home+R)中,进入.java文件所在文件目录,然后javac编译生成类名的.class文件。

然后输入“java 字节码文件名(.class文件名)”运行。

.java文件想要在javac.exe 中编译成功,需要在类class中写main主方法。

  • main方法可以编写为:

Java中的String[] args 和String args[]都可以运行,String[] args 和String args[]一般包含在main主类方法中,表示给主方法传一个字符数组args只是字符串数组的变量名,是arguments的缩写,是个默认名,一般情况下照着写。(arguments中文就是参数的意思,其值可以手动赋值)

JAVA中的String[] args和String args[]详解。_string args[ ]和string[ ] args-CSDN博客

class HelloChina {

    public static void main (String args[]){
    
        System.out.print("Hello China! 你好中国!");
    
    }
}

或

class HelloChina {

    public static void main (String[] args){
    
        System.out.print("Hello China!");
    
    }
}
  • 编码字符集不一致:

可在.text文件可以修改为.java文件时,打开txt文本的另存为设置编码格式:

  • 一个java源文件中可以编写多个class类,java编译器编译之后,会生成多个.class文件。但是一个java源文件中只能有一个main方法。

1.4 java 语言的特点:

  • 简单
  • 面向对象
  • 安全
  • 跨平台
  • 支持多线程(多任务并发执行)

java程序的跨平台性:

Java程序是由虚拟机负责解释执行的,而非操作系统。所以只要在不同的操作系统中安装不同的虚拟机,就可以编译产生不同的机器代码,实现跨平台性(“一次编写,到处运行”)。

Java编译器(Javac.exe).java文件编译成字节码文件.class之后,不同平台的java虚拟机 JVM for(Window、Linux、UNIX、others等不同平台。)启动类加载器加载类到内存,然后不同平台的java虚拟机再对加载到内存中的java类进行解释执行,就可以看到结果。

缺点:

1.5 开发工具:

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

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

相关文章

计算机视觉开源代码汇总

1.【基础网络架构】Regularization of polynomial networks for image recognition 论文地址:https://arxiv.org/pdf/2303.13896.pdf 开源代码:https://github.com/grigorisg9gr/regularized_polynomials 2.【目标检测:域自适应】2PCNet: Two-Phase Cons…

出行OTA渠道规则

1、目前出行行业的OTA主要有以下9个平台 携程(携程包车)、飞猪、航旅、曹操、同程、12306、高德、美团、南航 2、渠道对接 1、商务沟通:找到渠道对接负责人,洽谈对接事宜 2、资质审核:根据对接沟通中的平台线上所需…

QT基础入门——项目案例(七)

前言: 前面我们已经把基础的QT知识学习了一遍,已经足够运用这些知识做一个简单的小项目了,那么现在就让我们将所学的知识运用到现实操作中,来做一个简单的翻硬币小项目练练手吧 目录 一、项目简介: 二、项目的基本…

PyPy+Cython对Python进行加速,以及乱码问题

在之前测试了使用Cython对代码进行优化加速 https://blog.csdn.net/qq_43199509/article/details/133860665 PyPy具体是啥可以看之前的知乎介绍,个人理解就是Python的另一种解释器 https://www.zhihu.com/question/266096929/answer/2383570933 PyPy下载 https://…

知名低代码公司有哪些?最新国内十大低代码平台排名

什么是低代码和低代码平台 低代码(Low-Code)是一种软件开发方法,它使得开发人员能够通过图形界面、拖放组件和模型驱动的逻辑,快速地构建和部署应用程序,而无需编写大量的代码。 而低代码开发平台(LCDP&am…

Sync Folders Pro for Mac文件夹数据同步工具

Sync Folders Pro for Mac 是一款功能强大的文件夹同步工具,旨在帮助用户在 Mac 计算机和移动设备之间创建双向同步。这款软件支持各种文件系统和设备,如 iPhone,iPad,iPod,Android 等。通过这款软件,用户可…

众和策略:几点开盘和收盘股票?

股票开盘和收盘时间是投资者有必要知道的要害信息,因为它们挑选了股票生意的初步和结束时间。在此文章中,咱们将从多个视点分析股票开盘和收盘时间,包括全球商场开盘时间、技术分析对开盘前后价格不坚决的影响、以及日内生意者如安在开盘和收…

【社区小程序制作】便捷社区服务的新选择

社区小程序的出现为居民提供了便捷的社区服务,促进了社区内的信息共享和互动。下面将介绍社区小程序的优点和制作流程。 优点 便捷的社区服务:社区小程序为居民提供了便捷的社区服务。居民可以通过小程序查询社区通知、报修维修等,高效且节省…

字符与数字的相互转换

一、字符转数字 char类型字符转换为数字,其实是转换为ASCII码值 有两种方式: 1.强制类型转换,结果为对应的ASCII码值 char v1 a;char v2 z;char v3 1;char v4 9;int num1 (int)v1;int num2 (int)v2;int num3 (int)v3;int num4 (int)v…

word字间距突然变大怎么办?

文章目录 原因:word字间距突然变大,是文字布局设置造成的。 解决方法如下: 1、首先在打开的文档中,可以看到如下图所示部分字间距变大。 2、这时鼠标选中字间距变大的区域、或者全选该部分文字。命令选项卡内一般选择文字靠左设置…

微信视频发出去后无法播放怎么办?解决办法来了

微信作为现今生活工作使用最频繁的软件之一,发送文档、播放视频、分享照片截图等是经常操作的,然而当我们向对方发送一个视频文件的时候,电脑端播放器播放正常,通过微信发出去之后结果无法播放了。其实微信无法播放视频有很多原因…

(三十四)大数据实战——scala运行环境安装配置及IDEA开发工具集成

前言 本节内容我们主要介绍一下scala运行环境的安装配置以及在idea开发工具中集成scala插件,便于scala项目的开发。 在开始scala安装配置之前,我们要先安装好jvm运行环境,scala运行于Java虚拟机(JVM)上,并…

JS中欺骗词法作用域的eval和with

1、词法作用域 简单地说,词法作用域就是定义在词法阶段的作用域。换句话说,词法作用域是由你在写代码时将变量和块作用域写在哪里来决定的,因此当词法分析器处理代码时会保持作用域不变(大部分情况下是这样的)。 考虑…

上抖音热搜榜需要怎么做?

抖音热搜榜是根据用户的搜索行为和搜索量数据进行排名的榜单。具体排名规则如下: 1. 关键词匹配度:抖音搜索引擎会根据用户搜索的关键词与视频标题、标签、内容等进行匹配,匹配度越高,排名越靠前。 2. 视频质量:抖音…

6-k8s-控制器版本管理

文章目录 一、概念介绍二、配置介绍三、版本生成测试四、版本回滚测试 一、概念介绍 什么是控制器:在k8s中,控制器是一种用于控制和管理Pod的管理器,包括Deployment、ReplicaSet、StatefulSet等。 什么是控制器版本管理:是指对于…

django无法导入第三方库

引子 有的人可能会很困惑,为什么自己在pip中安装了某个包,但是在django中死活无法导入。 在cmd中能够导入。 启动django,总是无法导入。 本文将会用一分钟解决你的困惑。 正文 那么本文以上述的第三方库dj_db_conn_pool为例,…

Android:展锐T760平台camera驱动调试

一、模块平台框架 平台介绍 基于UMS9620x平台集成Camera时,共有四类信号需要了解: 1、MIPI CSI信号:该平台有DPHY和CPHY两种MIPI信号。  DPHY配置:包括数对差分数据信号DP/N,和一对差分时钟信号CKP/N。  …

超全面的前端工程化配置指南

前端工程化配置指南 本文讲解如何构建一个工程化的前端库,并结合 Github Actions,自动发布到 Github 和 NPM 的整个详细流程。 示例 我们经常看到像 Vue、React 这些流行的开源项目有很多配置文件,他们是干什么用的?他们的 Commit…

Typora+PicGo+Github+CSDN梦幻联动

文章目录 一、快速搭建个人免费图床二、Typora图片实现自动上传三、Typora图片上传到CSDN出现错误 一、快速搭建个人免费图床 之前写过一篇 快速搭建个人免费图床 的文章,但是每次都要把图片拖到PicGo里面才能生成链接很麻烦,而且在本地用Typora写的文章…

C++ —— Tinyxml2在Vs2017下相关使用2(较文1更复杂,附源码)

相关链接 C —— Tinyxml2在Vs2017下相关使用1(附源码) tinyxml2简介 TinyXML2是一个简单,小巧,高效,CXML解析器,可以很容易地集成到其他程序中。TinyXML-2解析一个XML文档,并从中构建一个 可以…