3.1415926535
初识java
本文字数: 4.3k 阅读时长 ≈ 4 分钟
java-1
头文件
1 | import java.util.Arrays; |
学习笔记
++n/n++
1 | int n = 5, post = 1, pre = 1; |
上例中,++n 的值等于 n 自增后的值,即 6,所以 pre 最后得到的值为 7。n++ 的值等于 n 自增前的值,即 5,所以 post 最后得到的值为 6。
位移运算
1 | int n=7;//00000111=7 |
仔细观察可发现,左移实际上就是不断地×2,右移实际上就是不断地÷2。
位运算
位运算是按位进行与、或、非和异或的运算。
与运算的规则是,必须两个数同时为1
,结果才为1
:
1 | n = 0 & 0; // 0 |
或运算的规则是,只要任意一个为1
,结果就为1
:
1 | n = 0 | 0; // 0 |
非运算的规则是,0
和1
互换:
1 | n = ~0; // 1 |
异或运算的规则是,如果两个数不同,结果为1
,否则为0
:
1 | n = 0 ^ 0; // 0 |
关于转型
要注意,超出范围的强制转型会得到错误的结果,原因是转型时,int
的两个高位字节直接被扔掉,仅保留了低位的两个字节
浮点数
溢出
整数运算在除数为0
时会报错,而浮点数运算在除数为0
时,不会报错,但会返回几个特殊值:
NaN
表示Not a NumberInfinity
表示无穷大-Infinity
表示负无穷大
强制转型
可以将浮点数强制转型为整数。在转型时,浮点数的小数部分会被丢掉。如果转型后超过了整型能表示的最大范围,将返回整型的最大值。例如:
短路运算
布尔运算的一个重要特点是短路运算。如果一个布尔运算的表达式能提前确定结果,则后续的计算不再执行,直接返回结果。
因为false && x
的结果总是false
,无论x
是true
还是false
,因此,与运算在确定第一个值为false
后,不再继续计算,而是直接返回false
。
如果没有短路运算,&&
后面的表达式会由于除数为0
而报错,但实际上该语句并未报错,原因在于与运算是短路运算符,提前计算出了结果false
。
字符
还可以直接用转义字符\u
+Unicode编码来表示一个字符:
1 | // 注意是十六进制: |
字符串连接
Java的编译器对字符串做了特殊照顾,可以使用+
连接任意字符串和其他数据类型,这样极大地方便了字符串的处理。
1 | public class Main { |
多行字符串
从Java 13开始,字符串可以用"""..."""
表示多行字符串(Text Blocks)了。
1 | public class Main { |
输入
和输出相比,Java的输入就要复杂得多。
我们先看一个从控制台读取一个字符串和一个整数的例子:
1 | import java.util.Scanner; |
然后,创建Scanner
对象并传入System.in
。System.out
代表标准输出流,而System.in
代表标准输入流。直接使用System.in
读取用户输入虽然是可以的,但需要更复杂的代码,而通过Scanner
就可以简化后续的代码。
有了Scanner
对象后,要读取用户输入的字符串,使用scanner.nextLine()
,要读取用户输入的整数,使用scanner.nextInt()
。Scanner
会自动转换数据类型,因此不必手动转换。
要判断引用类型的变量内容是否相等,必须使用equals()
方法:
1 | public class Main { |
for each循环
for
循环经常用来遍历数组,因为通过计数器可以根据索引来访问数组的每个元素:
但是,很多时候,我们实际上真正想要访问的是数组每个元素的值。Java还提供了另一种for each
循环,它可以更简单地遍历数组:
1 | public class Main { |
label(类goto)
当我们需要跳出或结束多重循环时,除了在每一个循环体后面加一个break(continue)外,还可以通过label(标号)跳出多重循环(有点类似与goto语句),如下例:
1 | import java.util.Scanner; |
快速打印数组内容
Java标准库提供了Arrays.toString()
,可以快速打印数组内容
1 | import java.util.Arrays; |
关于面对对象编程
class的作用有点类似于struct
逐个读取string
1 | a=(int)str.charAt(i)-'0'; |
初识前端
本文字数: 7.1k 阅读时长 ≈ 6 分钟
浏览器可能会这样显示:
注意:这个空的单元格的边框没有被显示出来。为了避免这种情况,在空单元格中添加一个空格占位符,就可以将边框显示出来。
1 | <table border="1"> |
横跨两列/行的单元格:
1 | <h4>横跨两列的单元格:</h4> |
133 | 415 |
本例演示如何使用 Cell padding 来创建单元格内容与其边框之间的空白。
本例演示如何使用 Cell spacing 增加单元格之间的距离。
未解决
1 | <!DOCTYPE html> |
1 | <!DOCTYPE html> |
请把鼠标移动到单词上,以查看指针效果:
autocrosshair
default
e-resize
help
move
n-resize
ne-resize
nw-resize
pointer
progress
s-resize
se-resize
sw-resize
text
w-resize
wait
(鼠标高亮效果)tr:hover {background-color:#f5f5f5;}
(斑马纹效果)tr:nth-child(even) {background-color: #f2f2f2;}
1 |
|
水平菜单
1 | <!DOCTYPE html> |
水平导航链接
1 | <!DOCTYPE html> |
用section为节和子节编号
1 | <!DOCTYPE html> |
获取位置
1 | <!DOCTYPE html> |
初识后端
本文字数: 1.6k 阅读时长 ≈ 1 分钟
后端1
网络配置
下面介绍几个常用的命令。
ifconfig
netstat
hostname
ping
traceroute
ifconfig
管理员权限
su root/sudo
top
top(显示运行进程)
%us:表示用户空间程序的cpu使用率(没有通过nice调度)
%sy:表示系统空间的cpu使用率,主要是内核程序。
%ni:表示用户空间且通过nice调度过的程序的cpu使用率。
%id:空闲cpu
%wa:cpu运行时在等待io的时间
%hi:cpu处理硬中断的数量
%si:cpu处理软中断的数量
%st:被虚拟机偷走的cpu
linux创建用户
添加用户:useradd -m 用户名 然后设置密码 passwd 用户名
删除用户:userdel -r 用户名
查看文件权限
查看文件权限可以通过ls -l命令查看
如果只想查看某一个文件的权限,可以使用grep
**可读权限(read)、可写权限(write)以及可执行权限(execute)**,三者分别对应的字符为r、w和x
修改文件权限使用chmod指令
1.chmod abc filename
指令中的a、b、c分别表示一个数字,其中a对应文件所有者权限,b对应文件所有者所在组权限,c对应其他身份权限。
2.chmod u/g/o/a +/- r/w/x filename
该指令除了chmod和filename之外,还有三个部分:
①描述文件权限身份。u表示文件所有者、g表示文件所有者所在组、o表示其他用户、a表示三者全部。可以搭配使用,如ug表示文件所有者及其所在组;
②指定权限配置行为。‘+’表示添加权限,‘-’表示删除权限;
③权限类型。分别对于可读可写可执行。
未完成:倒数两个
error
管理员权限设置,用学号设置用户名显示无效,root用户下chmod后test.txt不见了!!!
extra
1.进程:一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度运行的基本单位
2.lsof(list open files)是一个列出当前系统打开文件的工具。(ps -ef)
挂起CTRL+z
jobs
查看当前有多少在后台运行的命令
jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。
fg
将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber(是命令编号,不是进程号)将选中的命令调出。
bg
将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出。
kill
法子1:通过jobs命令查看job号(假设为num),然后执行kill %num
法子2:通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid
前台进程的终止:Ctrl+c
3.
5.貌似从已停止变成了已终止???
pstree貌似是个树状进程显示程序???(我看不懂,但我大为震撼)
关于jobnum:为前面的的数字号
用ls ‐ahl命令可以看到文件的所有者
关于组与文件
改变所有者(chown)和用户组(chgrp)命令
chgrp 组群 文件名/目录
用chown 用户名 文件名来修改文件的所有者
chown xiaoming abc:改变abc的所有者为xiaoming
chgrp root abc:改变abc所属的组为root
chown root ./abc:改变abc这个目录的所有者是root
chown ‐R root ./abc:改变abc这个目录及其下面所有的文件和目录的所有者是root
Linux下用户组、文件权限详解 - 打伞的鱼 - 博客园 (cnblogs.com)
ANS
1.“Linux” 是内核,而 “Linux 发行版”是操作系统.
学习日志
本文字数: 821 阅读时长 ≈ 1 分钟
web前端
注:一般的广播地址(直接广播地址)能够通过某些路由器(当然不是所有的路由器),而受限的广播地址(255.255.255.255)不能通过路由器
5)0.0.0.0
常用于寻找自己的IP地址,例如在我们的RARP,BOOTP和DHCP协议中,若某个未知IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组。
6)回环地址
127.0.0.0/8被用作回环地址,回环地址表示本机的地址,常用于对本机的测试,用的最多的是127.0.0.1。
7)A、B、C类私有地址
私有地址(private address)也叫专用地址,它们不会在全球使用,只具有本地意义。
A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255
B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255
C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255
子网掩码的计算:
对于无须再划分成子网的IP地址来说,其子网掩码非常简单,即按照其定义即可写出:如某B类IP地址为 10.12.3.0,无须再分割子网,则该IP地址的子网掩码255.255.0.0。如果它是一个C类地址,则其子网掩码为 255.255.255.0。其它类推,不再详述。下面我们关键要介绍的是一个IP地址,还需要将其高位主机位再作为划分出的子网网络号,剩下的是每个子网的主机号,这时该如何进行每个子网的掩码计算。
问题
type=”hidden”
draggable 属性规定元素是否可拖动
iframe
figure/figcaption
svg/canvas
css:top
一些发现
ins/u
b/strong
s/del
目前进度
多媒体
css
cursor(鼠标图像类型)
z-index(图片上下)
初识python
本文字数: 311 阅读时长 ≈ 1 分钟
定义的不是tuple,是1
这个数!这是因为括号()
既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1
。
所以,只有1个元素的tuple定义时必须加一个逗号,
,来消除歧义:
1 | >>> t = (1,) |
爬虫
name=“main”
普通=
2,800
3,570
/html/body/div[4]/div[3]/div[2]/main/div[3]/div/div/div[15]/div[2]/div/div
《div class=”infocard clearfix” style=”” id=””>
glimmer task(daily4)
本文字数: 213 阅读时长 ≈ 1 分钟
Question
本文字数: 373 阅读时长 ≈ 1 分钟
关于个人Git使用过程中的问题
背景:在依据知乎搭建了个人blog后,按照glimmer daily task-3出现了冲突现象
1 | error: remote origin already exists. |
1 | error: failed to push some refs to "" |
解决方案
暂无(有点尴尬)
error: failed to push some refs to如何解决_尘客-追梦的博客-CSDN博客
进程
学习了关于Git的一些基本概念与操作(【狂神说Java】Git最新教程通俗易懂_哔哩哔哩_bilibili)
对 gitlab/GitHub/gitee 有了一个大概了解(见上)
待办
Git 提示fatal: remote origin already exists 错误解决办法_Ricky-CSDN博客(已完成)
提醒
建立新的 blog 时用 ‘—‘ 及 ‘title: ’ 建立标题
Glimmer Task-1
本文字数: 206 阅读时长 ≈ 1 分钟
Hello World
本文字数: 367 阅读时长 ≈ 1 分钟
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick Start
Create a new post
1 | $ hexo new "My New Post" |
More info: Writing
Run server
1 | $ hexo server |
More info: Server
Generate static files
1 | $ hexo generate |
More info: Generating
Deploy to remote sites
1 | $ hexo deploy |
More info: Deployment