Java新手入门课

本文详细介绍了Linux的基础命令,包括目录操作和文件操作,如ls、cd、mkdir、rm等,并讲解了Java的基础知识,如JDK、main方法和简单的程序示例。此外,还阐述了Git的基本操作,如gitinit、gitadd、gitcommit、gitpush,以及如何解决gitclone的访问问题。最后,文章提供了GitHub仓库的连接和同步教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux常用命令

在这里插入图片描述

目录操作

1.ls查看目录中的内容 list的缩写
蓝色代表目录,白色代表文件
2.cd切换
3.cd … 回到上一级目录
4.cd - 回到上一次所在的目录
5.cd ~ 回到当前用户的主目录
6.cd / 进入根目录,一切目录的父目录
7.tree 列出文件夹中所有子文件夹和文件

Linux 进入目录的方式有绝对路径和相对路径两种
之前我们都是用 相对路径 进入目录的,这相当于你在 Windows 系统下,在当前文件夹中点击下一个文件夹进入;

绝对路径 是一个以根目录 / 为起点的完整路径,如: /home/shiyanlou/Code,可以类比 Windows 上的 C:\Users\电脑用户名\Desktop

8.pwd 命令用作显示工作目录的路径名称,全称是“Print Working Directory”
9.mkdir 创建目录,是 make directory 的缩写。
10.mkdir -p 递归创建多级目录
mkdir -p one/two/three

文件操作

1.touch 新建文件
2.cp 复制文件到指定目录下
3.cp -r 复制目录到指定目录下
mkdir test
cp -r test one/two
tree one
4.rm 删除一个目录中的一个或多个文件或目录–remove的缩写
rm -r 删除目录,会删除目录和删除目录下的所有内容
5.mv 移动文件和目录
mv还可以用来重命名 如 mv test1 test2
6. cat **(concatenate 的缩写)**可以将文件中的内容打印到屏幕上,使用方法是 cat 文件路径
cat -n 带行号打印文件内容
7. man 是 Manual pages 的缩写
例如输入 man cat ,可以获取 cat 命令的详细的帮助文件。进入到 man 的页面后,按 q 可以退出 man
8. --help 可以帮助查看文档
在这里插入图片描述

Java基础

基础知识

JDK 是 Java Development Kit 的简称,译作:Java 开发套件。简单来讲,我们只有在 JDK 开发平台上,才能正确运行 Java 代码。

system.out.println(“你好”); 打印你好
Java程序至少包括 : 类 ,方法,代码语句
在这里插入图片描述
最基础的 Java 程序由类组成,至少包含 1 个类,最多可以成千上万。对于每个类,都创建一个单独的 Java 文件存放,文件的名称必须和类的名称相同。单个类的结构如下:
在这里插入图片描述
可以看到:
一个类由包含声明类的规定写法 public class 开头。
然后紧接着是类的名称,这个由你自由取名,例如这里叫 HelloJava。
然后由一对花括号 {} 包裹类的主体。

类的里面是类主体,主要包裹着方法。方法,也就是函数,是程序的主要功能实现。但需要你记住的是,类必须包含至少一个方法/函数才能使程序运行,而这个方法必须命名为 main。

此外,main 方法是 Java 应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是 main 方法,这个方法名字必须是 main,方法必须是 public static void 类型的,方法必须接收一个字符串数组的参数等。这是规定!
在这里插入图片描述

public class HelloJava{
		public static void main(String[] args){
		system.out.println("你好");
		}
}

先进入刚刚保存的代码文件
cd /home/shiyanlou/Code
运行 Java 代码需要先执行编译步骤,即将 Java 源代码文件编译成字节码文件。执行编译的命令为 javac,步骤如下
javac HelloJava.java
编译之后,你可以看到目录下方多出了 HelloJava.class 文件,这就是编译之后的字节码文件。
在这里插入图片描述
最后,我们通过 java 命令运行代码:
java HelloJava
值得注意的是:执行的命令是 java HelloJava,而不是 java HelloJava.java
在这里插入图片描述
在这里插入图片描述
Java 编译器并不会直接把 Java 程序代码编译成一个机器代码。相反,它会先将程序代码编译成特殊的中间代码「字节码」。当程序启动时,该字节码再被编译成机器代码。而将字节码编译成机器代码的程序叫 Java 虚拟机,简称 JVM,而 JVM 也是 JDK 的组成部分。

总结:
在这里插入图片描述
标识符规则:名字命名时可以使用字母、数字、下划线、美元符,但必须以字母、下划线和美元符开头。

两种类型是整数(使用 int 来声明)和文本(使用 String 来声明)
在这里插入图片描述
boolean 类型数据用来表示只有两种值,即 true 和 false ,分别代表现实生活中的特定条件成立与否,即“是”和“非”

String 类型存储的文本需要用双引号括起来,双引号中可以包含 0 到多个字符。
在这里插入图片描述
在这里插入图片描述
continue 表示忽略本次循环剩下的语句,去执行下一轮循环

public class JavaControlDemo{
    public static void main(String[] args){
        for(int i = 1; i <= 10; i++){
            if(i == 5){
                // 当 i 等于 5 时,循环体中剩下的语句将会被忽略,也就以下的输出语句不被执行。
                continue;
            }
            System.out.println(i);
        }
    }
}

在这里插入图片描述
如果所需要操作的循环,对于循环次数无法确定时,我们会使用 while 循环来进行操作,然后配合 break 语句来确定何时结束循环,例如:

while(true){
    if(循环结束条件){
        break;
    }
}

如果无法确定循环结束条件,那么就会变成无限循环,这个一定要注意,尽量避免无限循环的书写。

逢7就跳过:从1到100中,输出不是7的倍数,且不含7

public class Jump7{
	public static void main(String[] args){
		for(int i=1;i<=100;i++)
			if(i%7==0||i%10==7||i/10==7)
				continue;
			System.out.println(i);
	}
}	 

Git和GitHub

git基础知识

README 自述文件
.md 是markdown文件
README.md
gedit是Linux下一中自用编辑器 一个GNOME桌面环境下兼容UTF-8的文本编辑器

linux下写

mkdir Demo
cd Demo
gedit README.md

即可打开文件,并在文件中输入#Demo,保存文件后关闭gedit

在这里插入图片描述
在这里插入图片描述
创建文件 OK 了,但现在,Demo 目录还只是一个普通的目录,我们如何用 Git 来控制这个目录?

你只需在 Demo 目录中,输入 git init 即可.

git init

这是 Git 的初始化操作,作用是将一个已存在文件夹,置于 Git 的控制管理之下

再 ls -la 命令,会发现一个名叫 .git 的目录被创建了,这意味着仓库初始化成功。可以进入到 .git 目录查看下有哪些内容。
在这里插入图片描述
Git 提交代码的基本流程是这样的:

创建或修改 本地文件
使用 git add 命令,将创建或修改的文件添加到本地的 暂存区,这里保存的是你的临时更改
使用 git commit 命令,提交文件到 本地仓库
使用 git push 命令,将本地代码库同步到 远端仓库

在这里插入图片描述
目前为止,我们实现了第一步,创建了一个文件,我们的最终目标是:将本地的 Demo 仓库,同步到 GitHub 上的 Demo 仓库中。

git add

使用 git add + 文件名/目录名 命令,可以将你需要同步的文件,添加到本地的暂存区。我们先进入 Demo 目录,然后把 README.md 文件添加一下:

cd /home/shiyanlou/Demo
git add README.md

输入 git status ,可以检测当前目录和暂存区的状态,查看哪些修改被暂存了:

在这里插入图片描述

git commit

git commit 提交是你工作的一个里程碑 —— 每当你完成一些工作,都可以创建一次提交,保存当前的版本。

这样一来,无论你何时修改了文件,都创建一个新版本的文件,你可以很方便地查看以往所有版本的文件和内容

在提交之前,你必须先设置你的名字和 email,这是你在提交 commit 时的签名,每次提交记录里都会包含这些信息。

使用 git config 命令进行配置:

git config --global user.name "YourName"
git config --global user.email "YourEmail@xxx.com"

完成配置后,我们可以创建提交了,请输入:

git commit -m "first commit"

commit 的语法结构是 git commit -m “注释”,通过上个命令,你创建了一条注释为 “first commit” 的 Git 提交。
在这里插入图片描述

git config 常用配置选项

git config -e 编辑配置文件 
git config --local -e 编辑仓库级别配置文件
git config --global -e 编辑用户级别配置文件
git config --system -e 编辑系统级别配置文件
git config 添加配置项目 
git config --global user.email “you@example.com”
git config --global user.name “Your Name”

连接GitHub仓库

使用如下命令,将本地仓库连接到 GitHub 仓库中:

git push

以下是老版(不能用)

git remote add origin 仓库链接

仓库链接请在这里复制,并用剪切板功能粘贴进去:

在这里插入图片描述
add 很容易明白 —— 添加。git remote add 表示通知 Git 去添加一个远程仓库,后面接上的 origin 是这个仓库的小名,方便以后沟通,通常默认用 origin 来表示;最后再接上远程仓库的地址,即你刚刚创建的 Github 仓库链接。
在这里插入图片描述

push 顾名思义,就是推送, 使用 push 可以把本地仓库推送到远端仓库中。
具体命令如下:

git push origin master

执行后,GitHub 服务器 需要验证你的身份,按提示输入你的用户名和密码即可完成 push 同步。
⚠️ 注意:在 Linux 中输入密码是不可见的,输完后直接按回车键即可。

在这里插入图片描述

以下是新版(github新发布的)

使用应用令牌:

将生成的令牌拷贝下来(不要拷贝我的,拷贝你自己生成的!),记得保存,下次你就看不到了。

修改现有项目的url:

git remote set-url origin  https://<your_token>@github.com/<USERNAME>/<REPO>.git

分别是 : 你的token ,你的用户名 , 项目名

然后再输入: git push origin master
在这里插入图片描述
刷新下自己的github,就会发现文件已经被上传!
在这里插入图片描述

git clone

最后一个知识点是 git clone 命令,它可以帮你拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。
在这里插入图片描述
如果你想要复制一个项目,看看代码,或者把自己的远程仓库复制到本地,可以执行命令:

git clone [url]

[url] 指的就是你想复制的仓库,我们在 github.com 上提供了一个名字为 gitproject 的公开仓库, 供大家测试,现在你要把这个仓库复制到实验环境中,只需输入:

cd /home/shiyanlou/
git clone https://github.com/shiyanlou/gitproject

操作完成后,会发现 /home/shiyanlou 目录下多了一个 gitproject 文件夹,这个文件夹里的内容就是我们刚刚 clone 下来的代码。
在这里插入图片描述

总结git常用操作

在这里插入图片描述

git clone 出现 falta:无法访问问题解决

在这里插入图片描述
在这里插入图片描述
原本是:

git clone https://github.com/li17855320680/Loupuls.git

在中间加一个gitclone.com/ 即可

git clone https://gitclone.com/github.com/17855320680Loupuls.git

进入本地的仓库目录

git init

输入以下命令,下载我们之前的学习脑图(可以用剪切板一口气把四行命令粘贴进去)

wget https://labfile.oss.aliyuncs.com/courses/1330/linux.png
wget https://labfile.oss.aliyuncs.com/courses/1330/python1.png
wget https://labfile.oss.aliyuncs.com/courses/1330/python2.png
wget https://labfile.oss.aliyuncs.com/courses/1330/git.png

使用 git add --all 命令,添加仓库内的所有文件
使用 git commit、git remote、git push 命令,将本地仓库同步到 Github 中
完成后,再次刷新你的 Github 仓库,4 张图片就这么被上传了~

目 录 第一章 JAVA入门 10 计算机语言发展史 10 机器语言 10 汇编语言 10 高级语言 10 其他高级语言 11 JAVA发展简史 12 JAVA为什么能够流行? 13 JAVA各版本的含义 13 JAVA技术体系架构 14 JAVA的特性和优势 14 JAVA应用程序的运行机制 15 JVM(JAVA VIRTUAL MACHINE) 16 Java运行时环境JRE(Java Runtime Environment) 17 JAVA语言应用范围 18 第一个JAVA程序 18 JAVA开发环境搭建 18 一个典型的JAVA程序的编写和运行过程 19 第一个程序常见错误 20 第一个JAVA程序的总结和提升 20 常用Java开发工具 20 常用dos命令 21 本章笔试作业 21 本章上机操作 21 第二章(1) 编程的基本概念 22 注释 22 标识符 22 关键字/保留字 23 变量(variable) 24 常量(Constant) 25 命名规则(规范) 25 基本数据类型(primitive data type) 26 整型变量 26 浮点型 27 字符型(2个字节): 28 boolean类型 29 运算符(operator) 29 二元运算符 29 一元运算符 30 布尔逻辑表达符 30 位运算符 30 扩展运算符 31 字符串连接符 31 三目条件运算符 31 运算符优先级的问题 31 自动类型转换 32 基本类型转化时常见错误和问题 33 方法 33 简单的键盘输入和输出 33 本章思考作业 34 上机操作 34 第二章(2) 控制语句 35 顺序结构 35 选择结构 35 if单选择结构 35 if-else双选择结构 35 If-elseif-else多选择结构 36 switch多选择结构 37 循环结构 39 While和dowhile的区别 41 For循环 42 break语句和continue语句 47 语句块 48 递归结构 49 本章作业 50 本章上机操作 51 第三章 JAVA面向对象程序开发 52 编程语言发展史 52 类和对象是如何产生发展的?如何进化的? 52 面向对象思想初步(OOP初步Object Oriented Programming) 53 面向对象编程的语言的三大特征简介 56 对象和类的概念 56 类和对象初步 57 测试类的定义方式 57 简单的学生类编写示例 58 内存分析 59 属性(field,或者叫成员变量) 59 引用类型 60 类的方法 60 对象的创建和使用 60 构造器(或者叫做构造方法,constructor) 60 垃圾回收机制(Garbage Collection) 63 方法的重载(overload),构造方法的重载 63 this关键字 65 static 关键字 66 静态初始化块(经常用来初始化类,加载类信息时执行!) 67 package 68 JDK中的主要包 68 import 68 eclipse的使用 69 继承(extend, inheritance) 70 为什么需要继承?继承的作用? 70 继承介绍 70 如何实现继承? 70 继承使用要点 71 Object类 72 toString方法 72 equals方法 73 super关键字 74 方法的重写(override) 74 隐藏/封装(encapsulation) 75 为什么需要封装?封装的作用和含义? 75 使用访问控制符,实现封装 76 封装的使用细节 76 多态(polymorphism) 76 为什么需要多态? 76 如何实现多态? 77 方法绑定(method binding) 77 静态绑定 77 动态绑定 77 多态的使用要点 78 对象的转型(casting) 79 final 81 抽象类 82 抽象类的使用要点 83 接口 83 为什么需要接口? 84 如何定义接口? 84 接口的本质探讨 84 接口使用要点 85 接口的多继承 86 面向接口编程 87 OOP更多应用 87 组合 87 内部类(innerclasses) 88 字符串(java.lang.String类)的使用 90 字符串相等的判断 92 思考作业 93 上机作业 94 第四章 异常机制 95 导引问题 95 异常(Exception)的概念 96 异常分类 96 Error 97 Error和Exception的区别 97 Exception 97 异常的处理办法之一,捕获异常 99 try块 99 catch 99 finally 100 try, catch,finally ,return 执行顺序 100 异常的处理办法之二,声明异常: throws子句 101 方法重写中声明异常原则 102 异常的处理办法之三,手动抛出异常,throw子句 103 自定义异常 103 使用异常机制建议 104 总结 105 思考作业 105 上机作业 105 第五章 数组 106 数组概述和特点 106 创建数组和初始化 106 数组常见操作 108 数组的拷贝 108 数组排序 109 多维数组 110 附录(面试前复习一下!!) 111 冒泡排序 111 二分法查找 112 命令行参数的问题 113 增强for循环 114 思考作业 114 上机作业 115 第六章 常用类的使用 117 基本数据类型的包装类 117 包装类基本知识 117 包装类的用途 118 自动装箱和拆箱?autoboxing,unboxing 119 字符串相关类(String、 StringBuffer 、 StringBuilder) 120 String类的常用方法(已讲过,不再讲!) 120 StringBuffer和StringBuilder 121 String和StringBuffer和StringBuilder使用要点 123 时间处理相关类 124 Date时间类(java.util.Date) 124 DateFormat类和SimpleDateFormat类 125 Calendar日历类 126 可视化日历的编写 128 Math类 131 File类 132 File类的基本用法 132 树状结构展现文件结构 133 枚举 133 上机作业 135 第七章 容器(Collection) 136 容器的作用和概览 136 容器中的接口层次结构 136 Collection接口 137 LIST接口 137 SET接口 138 Map接口 138 Iterator接口 139 遍历集合 140 Collections工具类 141 Comparable接口 141 equals和hashcode方法 143  泛型 144 思考作业 145 上机作业 145 第八章 IO技术 146 为什么需要学习IO技术 146 基本概念 146 数据源 146 流的概念 146 第一个简单的IO流程序及深入(将文件中的数据读入) 146 Java中流的概念细分 148 Java中IO流类的体系 149 四个IO基本抽象类 150 InputStream 150 OutputStream 150 常用InputStream和OutputStream子类用法 150 FileInputStream和FileOutputStream 150 ByteArrayInutStream和ByteArrayOutputStream 154 BufferedInputStream和BufferedOutputStream 156 DataInputStream和DataOutputStream 157 ObjectInputStream和ObjectOutputStream 158 PrintStream 158 Reader 158 Writer 159 FileReader和FileWriter 159 BufferReader和BufferWriter 159 InputStreamReader和OutputStreamWriter 161 JAVA对象的序列化和反序列化 161 为什么需要序列化和反序列化 161 对象的序列化主要有两种用途 161 序列化涉及的类和接口 162 序列化/反序列化的步骤和实例 162 综合的序列化和反序列化练习 163 JAVA.IO包相关流对象用法总结(尚学堂1002班王鑫) 165 IO中其他常用类 165 File类 165 RandomAccessFile 166 思考作业 166 上机作业 166 提高外作业 166 第九章 多线程技术 167 基本概念 167 程序 167 进程 167 线程 167 线程和进程的区别 167 进程与程序的区别 168 JAVA中如何实现多线程(重点!!) 168 通过继承Thread类实现多线程 168 通过Runnable接口实现多线程 169 线程状态和sleep/yield/join/stop/destroy方法 170 新生状态 170 就绪状态 170 运行状态 170 死亡状态 170 终止线程的典型方法(重要!!!) 171 阻塞状态(sleep/yield/join方法) 171 线程基本信息和优先级别 173 线程同步和死锁问题 175 死锁及解决方案 179 生产者/消费者模式 181 线程回顾总结 184 任务调度(补充内容,了解即可!) 184 思考作业 185 上机作业 185 第十章 网络编程 186 基本概念 186 什么是计算机网络 186 计算机网络的主要功能 186 什么是网络通信协议 186 网络通信接口 186 为什么要分层 186 通信协议的分层规定 186 数据封装 188 数据拆封 188 IP 188 端口 188 URL 189 TCP协议和UDP协议 189 区别 189 TCP协议 189 UDP协议 190 JAVA网络编程 190 InetAddress 190 InetSocketAddress 191 URL类 191 基于TCP协议的SOCKET编程和通信 193 UDP通讯的实现 201 思考作业 203 上机作业(分组完成,3人一组,周末完成) 204 第十一章 JAVA多媒体编程 205 字体 205 字体示例和效果 205 颜色 206 颜色编程示例 206 图形绘制 206 绘制各种图形示例 207 图像处理 208 加载图片示例 208 图片任意缩放并输出新图片 209 使用JMF处理音频和视频 211 JMF的下载 211 JMF的安装和配置 211 使用JMF播放音频文件 212 上机作业 213 第十二章 GUI编程之AWT 214 为什么需要GUI?GUI是什么? 214 AWT是什么? 214 AWT的优势 214 AWT的缺点 214 为什么还需要学习AWT? 215 AWT各组件的整体关系 215 组件 215 容器 216 布局管理器 218 为什么需要布局管理器? 218 FlowLayout布局管理器 218 BorderLayout布局管理器 219 CardLayout布局管理器 220 GridLayout布局管理器 220 GridBagLayout布局管理器 221 综合应用组件和容器和布局管理器 221 AWT事件处理模型 223 问题 223 事件处理模型是什么? 223 最简单的事件处理程序 224 AWT中事件处理代码编写 225 编写过程 225 处理过程 225 简化理解上面过程 225 事件和事件源对象 225 事件适配器 232 为什么需要事件适配器 232 事件监听器常见的定义形式 233 AWT其他组件 233 菜单的实现 233 特点 233 代码示例和效果 233
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值