Java学习第一天:

Java学习第一天:

研0备战java第一天,听到组内还是开发多,直接java启动~


应用领域:

  • 企业级应用:
    • 企业的软件系统、各类型的网站。
  • Android平台应用:
    • Android开发水平的高低很大程度上取决于Java。
  • 移动领域:
    • 消费和嵌入式领域。

Java技术平台:

  • Java SE------标准版(面向桌面级应用),提供完整的Java核心API;
  • Java EE------企业版,是标准版的扩充;
  • Java ME------小型版,对API有所精简,现在用的不多,因为有Android了。

Java重要特性:

  1. 该语言是面向对象的(oop);
  2. 该语言是健壮的。Java的强类型机制、异常处理、垃圾自动收集等是Java程序健壮性的保证;
  3. Java语言是跨平台的,即一个编译好的class文件可以在多个平台上运行;
    1. .java编译后会得到一个.class文件;
    2. .class文件可以在不同的平台上运行,这就叫做跨平台性。
  4. Java是解释性语言。(编译后的代码不能够直接被机器执行,需要解释器来执行)。

这些特性只是对于初学者来说最为重要的,而不是说重要的特性只有那么多,要注意。


Java开发工具:


Java运行机制及运行过程:

运行流程:

  1. 编写.java文件;
  2. 编译为.class文件;(命令为javac)
  3. 通过不同平台上的JVM(Java 虚拟机)实现了跨平台特性------这是跨平台能够实现的本质。(运行命令为java)

Java核心机制------JVM:

  1. JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器等,包含在JDK中;
  2. 对于不同的平台有不同的虚拟机;
  3. 其屏蔽了底层运行平台的差别,实现了"一次编译,到处运行"的效果

什么是JDK、JRE?

JDK基本介绍::

  1. 全程为Java Development Kit,即Java开发工具包,JDK = JRE + java的开发工具【java,javac等】
  2. 是提供给开发人员使用的,包含了java的开发工具,也包括了JRE。

JRE基本介绍:

  1. 全程为Java Runtime Environment,Java运行环境;JRE = JVM + Java的核心类库【类】
  2. 如果想要运行一个开发好的Java程序,安装JRE即可。

JDK、JRE和JVM的包含关系:

  1. JDK = JRE + 开发工具集;
  2. JRE = JVM + Java SE标准类库;
  3. JDK = JVM + Java SE标准类库 + 开发工具集。

JDK安装:

Java Downloads | Oracle 中国

就不下载jdk8了,spingboot好像已经不支持了,就下载jdk21了,也是长期支持版。

下载完成后发现好像没有jre这个文件夹,去搜索了下,需要在命令行窗口中调出,方法如下:

  1. 点开你安装jdk的文件夹;
  2. 在该文件夹的搜索栏中输入cmd;
  3. 然后运行 bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre就可以看到我们的JRE文件啦(不知道是不是必须)

关于jdk的配置,不知道是因为新版还是windows11的缘故,环境变量已经配置完成,不知道有没有配置完成的,在主界面进入命令行窗口运行java看看能不能正常运行即可。


Java_快速入门:

每个语言的必备环节"Hello,world!"

开发步骤:

  1. 将Java代码编写到扩展名为Hello.java的文件中;
  2. 通过javac命令对该java文件进行编译,生成.class文件;
  3. 通过java命令对生成的class文件进行运行。
java 复制代码
// 这是Java的快速入门;演示Java的开发步骤:
// 对代码的相关说明
// 1.public class Hello表示Hello是一个类,是一个public公有的类
// 2.Hello{}表示一个类的开始和结束
// 3.main方法在这边不做讲解,在oop时讲解,现在就理解一个框架即可,主方法即程序的入口
// 4.main(){}表示方法的开始和结束也是成对出现的
// 5.System.out.println("Hello,world~");表示输出"hello,world~"到屏幕
// 6.;表示语句的结束
public class Hello{
	// 编写一个主方法:
	public static void main(String[] args){
		System.out.println("Hello,world~");
	}
}

现在我们完成了代码的编写,下一步就是要进行编译了,怎么做呢,找到文件所在的位置,在文件搜索栏进入cmd,命令行中输入 javac Hello.java,然后我们就得到了Hello.class。(如果说没有生成,需要将文件编码转换为GBK,但是我的时UTF-8就可以了);

然后我们就可以运行了,输入 java Hello即可不要带后缀了,这个代码的意思是找到Hello组类,所以不需要带上.class。

如果我们想要修改文件的内容,修改完.java文件后,保存,然后重新编译一次再运行即可。

流程分析:

  1. 编写.java文件(源文件);
  2. 编译(javac).java文件获得.class文件(字节码文件);
  3. 运行(java)组类获得结果。

什么是编译:

将Java源文件通过编译器编译成JVM可以识别的字节码文件;若程序无错误,会在源目录下生成一个.class文件,成为字节码文件,也是可执行的java文件

什么是运行:

有了可执行的字节码文件,通过运行工具java.exe对字节码文件进行执行,其本质就是将.class装载到JVM机上。

Java开发注意事项和细节说明:

  1. Java文件以.java为扩展名,源文件的基本组成部分是类(class),如上文写的Hello;

  2. Java的程序入口为main()方法,有固定的书写格式: public static void main(String[] args){...}

  3. Java严格区分大小写;

  4. Java方法由一条条语句构成,每个语句以";"结束;

  5. 大括号都是成对出现的,缺一不可(可以先写好大括号在进行内部的编程);

  6. 一个源文件最多只能有一个public类,其它类的个数不限,也可以将main方法写在非public类中,然后指定运行非public类,这样入口方法就是非public的main方法;

  7. 若源文件包含一个public类,那么文件名必须按照该public类的名字命名;

    java 复制代码
    // 这是Java的快速入门;演示Java的开发步骤:
    // 对代码的相关说明
    // 1.public class Hello表示Hello是一个类,是一个public公有的类
    // 2.Hello{}表示一个类的开始和结束
    // 3.main方法在这边不做讲解,在oop时讲解,现在就理解一个框架即可,主方法即程序的入口
    // 4.main(){}表示方法的开始和结束也是成对出现的
    // 5.System.out.println("Hello,world~");表示输出"hello,world~"到屏幕
    // 6.;表示语句的结束
    public class Hello{
    	// 编写一个主方法:
    	public static void main(String[] args){
    		System.out.println("Tr is studying Java.");
    	}
    }
    
    // 一个源文件最多只能有一个public类,但是其他类的个数是不限制的;
    // 若是进行编译,每一个类编译后都对应一个.class文件
    class Dog{
    	public static void main(String[] args){
    		System.out.println("Hello,Dog~");
    	}
    }
    
    class Cat{
    	public static void main(String[] args){
    		System.out.println("Hello,Cat~");
    	}
    }

    与C++不同的是Java可以有多个main函数只要他们不在一个类中。


学习方法:

需求:

  1. 工作需要;------为我的需求,想找后端开发工作,以及想要有一门主语言,脚本语言选择了Python
  2. 跳槽,对方要求;
  3. 技术控。

看看能否使用传递技术解决:

  1. 能解决,但是不完美;
  2. 解决不了

引出我们需要学习的新技术和知识点:

学习新技术或者知识点的基本语句和基本语法(先不考虑细节)

为什么,因为一开始就直接关注到细节,会非常繁琐,一下就失去动力了。

快速入门(基本程序,crud------增删改查)

开始研究技术的注意事项,使用细节,如何优化(决定工资高低)

这一项时永无止境的,所以放在最后,是没有止境的。


转义字符:

常用的转义字符如下:

  • \t:一个制表符;
  • \n:换行符;
  • \ \:一个\符号;
  • \ ":一个"符号;
  • \ ':一个'符号;
  • \r:一个回车。与换行符不一样,其只是将光标挪动到了这行的起始位置,没有到下一行
java 复制代码
// 转义符的使用演示:
public class ChangeChar{

	// main()
	public static void main(String[] args){
//		\t:一个制表符,实现对齐的功能;
		System.out.println("北京\t上海\t天津");
//		\n:换行符;
		System.out.println("红楼梦\n水浒传\n西游记");
//		\\:一个\;
		System.out.println("D:\\Code\\Project\\javacode");
//		\":一个";
		System.out.println("神说:\"要有光。\"");
//		\':一个';
		System.out.println("神说:\'要有光。\'");
//		\r:一个回车;回车和换行是不一样的
//		解读:
//		1、输出 学习Java
//		2、读取到换行符号,将光标挪至这行的最前面,用后面的字符替换光标指向及其后的几个字符
		System.out.println("学习Java。\r江弦");

	}

}

运行结果:

北京    上海    天津
红楼梦
水浒传
西游记
D:\Code\Project\javacode
神说:"要有光。"
神说:'要有光。'
江弦Java。
java 复制代码
// 转义符的使用演示:
public class ChangeChar{

	// main()
	public static void main(String[] args){
//		\t:一个制表符,实现对齐的功能;
		System.out.println("北京\t上海\t天津");
//		\n:换行符;
		System.out.println("红楼梦\n水浒传\n西游记");
//		\\:一个\;
		System.out.println("D:\\Code\\Project\\javacode");
//		\":一个";
		System.out.println("神说:\"要有光。\"");
//		\':一个';
		System.out.println("神说:\'要有光。\'");
//		\r:一个回车;回车和换行是不一样的
//		解读:
//		1、输出 学习Java
//		2、读取到换行符号,将光标挪至这行的最前面,用后面的字符替换光标指向及其后的几个字符
		System.out.println("学习Java。\r\n江弦");

	}

}
java 复制代码
北京    上海    天津
红楼梦
水浒传
西游记
D:\Code\Project\javacode
神说:"要有光。"
神说:'要有光。'
学习Java。
江弦

初学Java容易犯的错误:

  • 找不到文件:
    • 检查文件名是否写对;
    • 路径有问题,不在该目录下。
  • 主类名和文件名不一致;
  • 缺少;号。
  • 常见错误总结:初学易犯的错是语法错误,不要慌。
    • 把数字1写成了字母l;
    • 数字0写成o;
    • 英文字符写成中文字符;
    • 拼写错误;
    • 业务逻辑错误以及环境错误(最不好修改的错误)。

注释(comment):

提高代码的可读性,是一个写代码的良好习惯。将自己的思想总结出来,再用代码去体现。

单行注释:

格式------ //一行语句

多行注释:

格式------ /*多条语句可以换行*/

对多行注释,不允许嵌套多行注释。

这两个的注释的语法和C++中很像

文档注释:

注释内容可以被JDK提供的工具javadoc解析,生成一套以网页文件形式体现的该程序的说明文档,一般写在类内。

  • 基本格式:

    java 复制代码
    /**
     *@
    */
  • 如何生成对应的文档注释

    javadoc -d 文件夹名 -xx -yy 文件名.java
    // -xx和-yy就是我们@后面跟随的
    

    这里面发生了一些问题,由于我们之前没有配置环境变量,在这步的时候会出现javadoc不是内部命令的错误,我们要做的就是将jdk下的bin目录添加到系统环境的path目录下,然后点击多次确定。之后便可以正常运行了。

  • 应用实例

    java 复制代码
    // 文档注释
    /**
     * @author 江弦
     * @version  01
     */
    public class Comment{
    	public static void main(String[] args){
    
    	}
    }

    然后生成好的文件,我们点击index.html便可以看到了

  • 文档标签:太多了,自己找下复制下把,以后写文件还听常用的

    • 标签 含义
      @author 指定作者
      {@code} 使用代码字体以原样显示信息,不处理HTML样式
      @deprecated 指定程序元素已经过时
      {@docRoot} 指定当前文档的根目录路径
      @exception 标识由方法或构造函数抛出的异常
      {@inheritDoc} 从直接超类中继承注释
      {@link} 插入指向另外一个主题的内联链接
      {@linkplain} 插入指向另外一个主题的内联链接,但是链接以明文显示
      {@literal} 以原样显示信息,不处理 HTML 样式
      @param 文档化参数
      @return 文档化方法的返回值
      @see 指定到另一个主题的链接
      @serial 文档化默认的可串行化文本域
      @serialData 文档化由 writeObject()或writeExternal()方法写入的数据
      @serialField 文档化ObjectStreamField组件
      @since 当引入特定的变化时,声明发布版本
      @throws 与@exception 相同
      {@value} 显示常量的值,常量必须是static 类型
      @version 指定类的版本

Java代码规范:

  1. 类、方法的注释,要以javadoc的方式来写;

  2. 非javadoc的注释,往往是给代码维护者看的,着重告诉代码为什么这样写,如何修改,注意什么问题;

  3. 使用tab操作,实现缩进,默认整体向右;向左使用shift+tab

  4. 运算符和=两边习惯各加一个空格;

  5. 源文件(.java)使用utf-8的编码;

  6. 行宽度不要超过80字符;

  7. 代码编写次行风格和行尾风格。

    java 复制代码
    // 行尾风格:
    public class a {
    }
    
    // 次行风格:
    class b
    {
        
    }

    我个人喜欢行尾,次行感觉有点看不清楚,不过两种都是对的看个人喜好。


DOS原理:

介绍:

Dos------Disk Operating System 磁盘操作系统。在控制台输入的指令会交给DOS。

路径:

在编程领域,文件夹也叫做目录。

相对路径:

从当前目录开始定位形成的路径就是相对路径。

举例:

​ 从javacode下的文件到python(都在project下)...\Project\Python

绝对路径:

从顶级目录(根目录)生成的就是绝对路径

举例:

​ D:\Code\Project\python

常用的dos命令:

  • 查看当前目录有什么内容:dir
    • dir
    • dir 绝对路径
  • 切换到其它盘下:盘符号cd
    • 切换到C盘:cd /D c:
  • 切换到当前盘的其它目录(使用绝对路径和相对路径):
    • 相对路径:cd ...\ ...\project\python(两个...\中间没有空格,markdown的语法会有影响只能加个空格)
    • 绝对路径:cd D:\Code\Project\Python
  • 切换到上一级:
    • cd ...
  • 切换到根目录:
    • cd \
  • 查看指定目录下的全部子目录 tree
    • tree 绝对路径
  • 清屏:cls
  • 退出:exit
相关推荐
ProtonBase5 分钟前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构
乐之者v11 分钟前
leetCode43.字符串相乘
java·数据结构·算法
QQ同步助手12 分钟前
如何正确使用人工智能:开启智慧学习与创新之旅
人工智能·学习·百度
流浪的小新19 分钟前
【AI】人工智能、LLM学习资源汇总
人工智能·学习
A懿轩A1 小时前
C/C++ 数据结构与算法【数组】 数组详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·数组
suweijie7683 小时前
SpringCloudAlibaba | Sentinel从基础到进阶
java·大数据·sentinel
公贵买其鹿4 小时前
List深拷贝后,数据还是被串改
java
xlsw_7 小时前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
神仙别闹8 小时前
基于java的改良版超级玛丽小游戏
java
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭9 小时前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员