先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
正文
name() {
statements
[return value]
}
如果写了function关键词,可以省略函数名后面的括号:
function name {
statements
[return value]
}
1.2举例:加到多少键盘输入决定
我们自己写一个函数,还是之前的从1加到100的循环。但这次我们用函数来实现, 不过不再是从1加到100了,而是让用户自己决定加到多少:
通过调用函数名的方式来调用到整个函数里的所有程序
[root@xiaopeng ~]# cat function.sh
#!/bin/bash
function 函数名 () {
s=0
for (( i=0;i<=$1;i=i+1 ))
do
s=$(( i + i+ i+s ))
done
echo “$s”
}
read -p “请输入最大的数值:” num
y=$(echo $num | sed ‘s/[0-9]//g’)
if [ -z “$y” ]
then
函数名 $num
else
echo “警告,请输入阿拉伯数字!”
fi
1.3Shift参数左移指令
作用:每执行一次,参数序列顺次左移一个位置,$#的值减1,用于分别处理每个参
数,移出去的参数,不再可用。
1.4举例:加法计算器
[root@xiaopeng ~]# cat shift.sh
#!/bin/bash
if [ $# -le 0 ];then
echo “没有足够的参数”
exit
fi
sum=0
while [ $# -gt 0 ] ; do
sum= [ [ [sum+$1]
shift
shift 2 一次移动2个参数
done
echo result is $sum
测试:
[root@xiaopeng ~]# bash a shift.sh 11 2 3 4
result is 20
2.trap命令
命令格式为:
trap “执行动作” SIGINT(检测信号)
用于指定在接收到信号后将要采取的动作,常见的用途是在脚本程序被中断时完成清理工作。
trap -l:查询trap能够接收的信号。和kill -l相似
trap命令格式为:trap “执行动作” SIGINT(检测信号)整体命令为检测到SIGINT
信号或INT信号时会去执行echo 999的命令。但是只在命令行中执行可能会遇到的 问题是。trap命令在当前命令生效, 而一些比如tail -f /var/log/message命令在 子shell生效,所以并不能看到echo 9999的效果。而且,命令行中能够执行的 命令 有限,通常情况下trap命令会写到脚本中并且"执行动作"会用函数来代替。
2.1trap用法举例:
[root@xiaopeng ~]# cat test.sh
#!/bin/bash
#trap ‘mytrap’ SIGINT INT #执行动作为函数mytrap,接收信号为SIGINT或INT
#trap ‘mytrap’ SIGINT #执行动作为函数mytrap,接收信号为SIGINT
trap ‘mytrap’ INT #执行动作为函数mytrap,接收信号INT
mytrap() { #定义函数mytrap
echo “Now,you are doing the QUIT” #输出字符串到h.txt中
tail -5 /var/log/messages >> /root/h.txt #追加message后5行到 h.txt
exit 1 #退出
}
while true #while循环输出数字1111
do
/usr/bin/echo “111111”
done
[root@localhost ~]# ./test.sh
111111
^C111111
Now,you are doing the QUIT
[root@xiaopeng ~]# cat h.txt
Oct 22 18:00:01 localhost systemd: Started Session 27 of user root.
Oct 22 18:01:01 localhost systemd: Started Session 28 of user root.
**3.**cgroup详解
cgroup:全称Linux Control Group,是Linux内核的一个功能,用来限制,控制与分离 一个进程组群的资源(比如CPU、内存、磁盘IO等)。
在Linux内核中,容器(container)一词太过广泛,为避免混淆被重新命名为cgroup,
并被合并到2.6.24版本内核中。
Linux Cgroup可以为系统运行进程的用户自定义群组分配资源,比如CPU时间、系统内 存、网络带宽等。可以监控配置的cgroup,拒绝cgroup访问某些资源,甚至在运行 的系统中配置cgroup
3.1cgroup****主要功能:
1.限制资源使用。如内存使用上限以及文件系统的缓存限制。
2.优先级控制,CPU利用率和磁盘IO吞吐。
3.挂起进行,恢复执行进程。
3.2cgroup子系统:
1.CPU子系统,主要限制进程的CPU使用率。
2.CPUacct子系统,可以统计cgroups中进程的CPU使用报告。
3.cpuset 子系统,可以为 cgroups 中的进程分配单独的 cpu 节点或者内存节点。
4.memory 子系统,可以限制进程的 memory 使用量。
5.blkio 子系统,可以限制进程的块设备 io。
6.devices 子系统,可以控制进程能够访问某些设备。
7.net_cls 子系统,可以标记 cgroups 中进程的网络数据包,然后可以使用 tc 模 块
(traffic control)对数据包进行控制。
8.net_prio — 这个子系统用来设计网络流量的优先级
9.freezer 子系统,可以挂起或者恢复 cgroups 中的进程。
10.ns 子系统,可以使不同 cgroups 下面的进程使用不同的 namespace
11.hugetlb — 这个子系统主要针对于HugeTLB系统进行限制,这是一个大页文件系
统。
3.3****限制进程使用系统CPU百分比。
mount -t cgroup #cgroup的挂载点。
mkdir /sys/fs/cgroup/cpu/cpu_test/ #在cgroup目录下创建cpu隔离组。
注意:在cpu_test目录创建完成后会自动生成一些文件。
使用语言编写一个能够实现死循环的程序或者脚本:
首先使用C语言进行编写:
[root@xiaopeng ~]# cat xh.c
int main(void)
2021年Java中高级面试必备知识点总结
在这个部分总结了2019年到目前为止Java常见面试问题,取其面试核心编写成这份文档笔记,从中分析面试官的心理,摸清面试官的“套路”,可以说搞定90%以上的Java中高级面试没一点难度。
本节总结的内容涵盖了:消息队列、Redis缓存、分库分表、读写分离、设计高并发系统、分布式系统、高可用系统、SpringCloud微服务架构等一系列互联网主流高级技术的知识点。
目录:
(上述只是一个整体目录大纲,每个点里面都有如下所示的详细内容,从面试问题——分析面试官心理——剖析面试题——完美解答的一个过程)
部分内容:
对于每一个做技术的来说,学习是不能停止的,小编把2019年到目前为止Java的核心知识提炼出来了,无论你现在是处于什么阶段,如你所见,这份文档的内容无论是对于你找面试工作还是提升技术广度深度都是完美的。
不想被后浪淘汰的话,赶紧搞起来吧,高清完整版一共是888页,需要的话可以点赞+关注
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
对于每一个做技术的来说,学习是不能停止的,小编把2019年到目前为止Java的核心知识提炼出来了,无论你现在是处于什么阶段,如你所见,这份文档的内容无论是对于你找面试工作还是提升技术广度深度都是完美的。
不想被后浪淘汰的话,赶紧搞起来吧,高清完整版一共是888页,需要的话可以点赞+关注
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-Vej51jvf-1713592228349)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!