java速成开始吧
java速成开始吧
绪论
一、能学到什么
思想,核心知识点,真题,综合项目,到底该怎么做,OA管理系统,阿里巴巴编码规范。提高性系统,内存结构,回收,tomcat服务器,虚拟机,数据结构
二、优势
- 不墨迹
- 分析讲解
- 趣味性:学习就是听故事一样简单
- 持续更新
- 资料免费:作业 讲解 笔记 代码 视频 资料 安装包
三、君子之约
坚持:最重要的,知识点可以学得慢,但是一定要扎实
java基础概念
人机交互:
打开中端:
mac:command + 空格
win:win + r
常用mac命令行
目录操作
命令名 | 功能描述 | 使用举例 |
---|---|---|
mkdir | 创建一个目录 | mkdir dirname |
rmdir | 删除一个目录 | rmdir dirname |
mvdir | 移动或重命名一个目录 | mvdir dir1 dir2 |
cd | 改变当前目录 | cd dirname |
pwd | 显示当前目录的路径名 | pwd |
ls | 显示当前目录的内容 | ls -la |
dircmp | 比较两个目录的内容 | dircmp dir1 dir2 |
文件操作
命令名 | 功能描述 | 使用举例 |
---|---|---|
cat | 显示或连接文件 | cat filename |
pg | 分页格式化显示文件内容 | pg filename |
more | 分屏显示文件内容 | more filename |
od | 显示非文本文件的内容 | od -c filename |
cp | 复制文件或目录 | cp file1 file2 |
rm | 删除文件或目录 | rm filename |
mv | 改变文件名或所在目录 | mv file1 file2 |
ln | 联接文件 | ln -s file1 file2 |
find | 使用匹配表达式查找文件 | find . -name “*.c” -print |
file | 显示文件类型 | file filename |
open | 使用默认的程序打开文件 | open filename |
选择操作
命令名 | 功能描述 | 使用举例 |
---|---|---|
head | 显示文件的最初几行 | head -20 filename |
tail | 显示文件的最后几行 | tail -15 filename |
cut | 显示文件每行中的某些域 | cut -f1,7 -d: /etc/passwd |
colrm | 从标准输入中删除若干列 | colrm 8 20 file2 |
paste | 横向连接文件 | paste file1 file2 |
diff | 比较并显示两个文件的差异 | diff file1 file2 |
sed | 非交互方式流编辑器 | sed “s/red/green/g” filename |
grep | 在文件中按模式查找 | grep “^[a-zA-Z]” filename |
awk | 在文件中查找并处理模式 | awk ‘{print $1 $1}’ filename |
sort | 排序或归并文件 | sort -d -f -u file1 |
uniq | 去掉文件中的重复行 | uniq file1 file2 |
comm | 显示两有序文件的公共和非公共行 | comm file1 file2 |
wc | 统计文件的字符数、词数和行数 | wc filename |
nl | 给文件加上行号 | nl file1 >file2 |
安全操作
命令名 | 功能描述 | 使用举例 |
---|---|---|
passwd | 修改用户密码 | passwd |
chmod | 改变文件或目录的权限 | chmod ug+x filename |
umask | 定义创建文件的权限掩码 | umask 027 |
chown | 改变文件或目录的属主 | chown newowner filename |
chgrp | 改变文件或目录的所属组 | chgrp staff filename |
xlock | 给终端上锁 | xlock -remote |
编程操作
命令名 | 功能描述 | 使用举例 |
---|---|---|
make | 维护可执行程序的最新版本 | make |
touch | 更新文件的访问和修改时间 | touch -m 05202400 filename |
dbx | 命令行界面调试工具 | dbx a.out |
xde | 图形用户界面调试工具 | xde a.out |
进程操作
命令名 | 功能描述 | 使用举例 |
---|---|---|
ps | 显示进程当前状态 | ps u |
kill | 终止进程 | kill -9 30142 |
nice | 改变待执行命令的优先级 | nice cc -c *.c |
renice | 改变已运行进程的优先级 | renice +20 32768 |
时间操作
命令名 | 功能描述 | 使用举例 |
---|---|---|
date | 显示系统的当前日期和时间 | date |
cal | 显示日历 | cal 8 1996 |
time | 统计程序的执行时间 | time a.out |
网络与通信操作
命令名 | 功能描述 | 使用举例 |
---|---|---|
telnet | 远程登录 | telnet hpc.sp.net.edu.cn |
rlogin | 远程登录 | rlogin hostname -l username |
rsh | 在远程主机执行指定命令 | rsh f01n03 date |
ftp | 在本地主机与远程主机之间传输文件 | ftp ftp.sp.net.edu.cn |
rcp | 在本地主机与远程主机 之间复制文件 | rcp file1 host1:file2 |
ping | 给一个网络主机发送 回应请求 | ping hpc.sp.net.edu.cn |
阅读和发送电子邮件 | ||
write | 给另一用户发送报文 | write username pts/1 |
mesg | 允许或拒绝接收报文 | mesg n |
Korn Shell 命令
命令名 | 功能描述 | 使用举例 |
---|---|---|
history | 列出最近执行过的 几条命令及编号 | history |
r | 重复执行最近执行过的 某条命令 | r -2 |
alias | 给某个命令定义别名 | alias del=rm -i |
unalias | 取消对某个别名的定义 | unalias del |
其它命令
命令名 | 功能描述 | 使用举例 |
---|---|---|
uname | 显示操作系统的有关信息 | uname -a |
clear | 清除屏幕或窗口内容 | clear |
env | 显示当前所有设置过的环境变量 | env |
who | 列出当前登录的所有用户 | who |
whoami | 显示当前正进行操作的用户名 | whoami |
tty | 显示终端或伪终端的名称 | tty |
stty | 显示或重置控制键定义 | stty -a |
du | 查询磁盘使用情况 | du -k subdir |
df | 显示文件系统的总空间和可用空间 | df /tmp |
w | 显示当前系统活动的总信息 | w |
安装
url:https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html
截图:
配置环境:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
1,下载
点击 官网 ,进入下载界面,
同意协议内容
找到对应的 Mac 版本,
2,安装
安装下载下来的文件,期间会要求输入一次电脑密码,然后自动安装完。
如果显示文件已经损坏,打开 终端 输入
sudo spctl --master-disable
表示可以安装非 app store 的软件。
3,配置环境变量
查看 JDK 在 Mac 系统上默认的安装位置,
打开 终端 app,输入
vim .bash_profile
回车以后,进入编辑,按键盘 i 键,进入编辑模式,输入
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
注意文件目录与上面的一致,(注意使用英文!)
输入完成以后,按键盘 esc 键,再输入 :wq
,表示保存编辑内容,并退出编辑页面。
4,确认配置正确
打开 终端 app,输入 java -version
,出现如下画面,表示配置成功。
5.运行第一个java文件
安装ij,这个比较简单不再赘述
线性结构
数组
-
数据结构
数据结构是数据项的结构化集合,其结构性表现在数据项之间的相互关系及作用,也可以理解为定义在数据项之间的某种逻辑次序。
1.1 数据结构分类
根据数据项之间逻辑次序的复杂程度,大致可以将数据结构划分为四类:集合、线性结构、树形结构、图形结构。可以使用数据项之间的前驱-后继关系来描述数据项之间的逻辑联系。
1.1.1 集合结构
集合的数据项之间具有非常松散的逻辑关系,并不存在前驱-后继关系,所以数据结构的研究重点主要在后面三种结构上。
1.1.2 线性结构
关于树形结构的数据项,除去根结点,前驱只有除去叶结点,后继对应多个,形成一种层一个,因次结构,树形结构也被称为半线性结构。
1.1.3树形结构
关于树形结构的数据项,除去根结点,前驱只有一个,除去叶结点,后继对应多个,形成一种层次结构,树形结构也被称为半线性结构。
1.1.4 图形结构
关于图形结构,数据项和其前驱后继之间的关系一对多的关系,即一个数据项对应多个前驱,多个后继,形成了网状结构,图形结构也被称为非线性结构。
1.2 总结
四种数据结构的学习难度也是依次递增的,往往低阶的数据结构可为高阶的数据结构提供研究思路和工具,比如可以用线性结构存储树形结构(用数组存储二叉树)。而图形结构的很多算法需要把图结构转换成树结构。本App为多种数据结构的算法提供了动态演示功能,尤其是树形结构和图形结构,为了不失一般性,也为线性结构提供了动态演示功能。
2.数组
2.1 数组定义
若集合S由n个元素组成,且各元素之间具有一个线性次序,则可将他们存放于起始于地址A、物理位置连续的一段存储空间,并统称作数组(array)。通常以 A 作为该数组的标识,数组A[]中的每一个元素都唯一对应于某一个下标编号。在绝大多数高级程序设计语言中,一般都是从0开始编号。在本 App 中凡是涉及到伪代码表示算法的,都从1开始编号。数组可表示为:A={a1,Qz,…,an}或者A[1,n]= {A[1],A[2],.,A[n]}
2.2 数组访问关于数组元素的访问,在逻辑上相邻的元素在物理存储上也是相邻的。数组元素可以被直接访问:从数组的起始位置A 出发,通过一次乘法运算和一次加法运算,便可得到元素的物理地址。假设数组每个元素占用个单位空间,则元素A i]对应的物理地址为:A+(i-1) Xs数组元素访问操作可在常数时间內完成,所以数组比其它线性结构拥有更高的元素访问效率。3. 数组接口在本 App 中每演示一个数据结构,都会使用伪代码来描述整个结构的 ADT,包括抽象方法的伪代码实现,并对关键的算法提供了动态演示功能。数组提供的接口如下:• SIZE()返回数组元素个数。• EMPTY()测试数组是否为空。• ORDERED()测试数组是否已经按照升序排列。• GET (pos)获取数组中特定位置的值。• SET (pos, e)设置数组中特定位置的值。• FIND (e)查找数组中是否包含特定元素,若包含则返回查找数组中是否包含特定元素,若包含则返回元素下标,否则返回 NotFond。BINARY - SEARCH (e)使用二叉搜索查找数组中是否包含特定元素,若包含则返回元素下标,否则返回 NotFond。在算法执行前要求数组元素已经按照升序排列,可以使用使用 SORT()算法对数组进行排序。REMOVE (pos)删除数组特定位置的元素。INSERT (pos, e)在数组特定位置插入元素。SORT()对数组元素进行排序,使用冒泡排序。排序有多种方法,其算法效率也不尽相同,这里使用了简单的冒泡排序,其它排序方法会在其它章节讨论。SHUFFLE()洗牌操作,打乱数组中元素的顺序。击伪代码部分的 info 按钮会弹出窗口显示相关节讨论。• SHUFFLE()洗牌操作,打乱数组中元素的顺序。点击伪代码部分的 info 按钮会弹出窗口显示相关算法的简介,如果该算法提供了动态演示功能,会在弹出窗口中有额外的按钮触发动态演示功能。4.C++实现数据结构和算法的学习是为了实践,最直接的应用便体现在程序代码中。本 App 实现了数据结构的C++代码。在C++代码中提供了更丰富的特性,使用 Class实现了 Array类。其中还包括内存管理,数组的扩、缩容,访问操作符重载,各类构造函数,以及对信息的封装和隐藏。C++代码不提供调试功能。同时为了方便App内代码的显示,C++类的声明和类方法实现放在了一起。并且 C++ 代码中涉及到编号索引的地方,均从0计数,这是与伪代码不同的地方。
链表
栈
队列
树形结构
图结构
问题锦集
you can get it from me on my phone with your friend
评论区 (0)
请 登录 后发表评论
暂无评论,来发表第一条评论吧!