2021年度总结
2022年来了,我又长大了一岁。
过去这一年,有快乐有失落,有收获有遗憾。
伤感的话不再说,遗憾的事不再提,新的一年继续好好生活。
等等,在好好生活之前还是写一下年终总结吧,虽然今天已经是2022年……
回顾过去的这一年,**每一天都很平常,有时很快乐,有时会难过,也许有成长,难免有遗憾。**就在这平凡的一天又一天中,平凡的我又长大了一岁。
我没有写日记的习惯,很多事过去了就过去了,也许以后就再也不会想起。比如现在我想写一个年度总结,我不知道写些什么。好在有这样一个博客,或多或少能留存一些当时的记忆。
2021年3月29日,新博客建成,发布第一篇博客: 新学期,新博客,新开始!
在此之前也搭建过其他博客,总是写着写着感觉没啥意思,最终都删库跑路了。这是我持续时间最长的博客,我会一直让它活下去(希望别被打脸)。
回看第一篇博客,感慨万千。当时写到“我想学计算机相关专业,但无奈被调剂到了应用物理”,现在我已经是计算机科学与技术专业的学生了,2021/9/17 收到了转专业成功的消息,这个可以算是今年很开心的一件事。当时我提到“一直对编程感兴趣,尤其是前端”,现在我已经俩月没学前端 ...
【JavaSE】方法及递归的使用
初识方法
Java中的方法类似于c语言中的函数
观察下面代码,体会方法的好处。
123456789101112//求两个数的最大值public static int maxTwoNum(int a,int b) { return a>b ? a : b;}//求三个数的最大值public static int maxThreeNum(int a,int b,int c) { int max=maxTwoNum(a,b); return maxTwoNum(max,c);}public static void main(String[] args) { int a=10,b=23,c=4; System.out.println(maxThreeNum(a,b,c));
灵活使用方法,可以减少重复代码,使代码更简单。
实参、形参的关系
Java当中只有按值传递
分析如下代码:交换两个整型变量
12345678910111213public static void swap(int x,int y) ...
【JavaSE】程序逻辑控制练习
输入1-7,输出工作日或休息日
1234567891011121314151617Scanner scan = new Scanner(System.in);switch(scan.nextInt()) { case 1: case 2: case 3: case 4: case 5: System.out.println("工作日"); break; case 6: case 7: System.out.println("休息日"); break; default: System.out.println("输入错误"); break;}
switch 中的值只能是 整数|枚举|字符|字符串,long、double、float、boolean不能作为switch参数的类型。
判断一个数是否为素数(3种方法)
1234567891011121314Scanner scan = ...
【JavaSE】数据类型与运算符
初识Java
第一个java程序
12345public class HelloWorld { public static void main(String[] args) { System.out.println("HelloWorld"); }}
一个java文件中,只能有一个public类,且类名要与文件相同。
类存在于源文件里面;方法存在于类中;语句存在于方法中。
类名要采用大驼峰形式(首字母均大写)命名。
面试问题:
main方法为什么是static:main方法是程序的入口,如果不是静态的话,要启动就必须创建一个实例,但是main是程序入口,创建一个实例又得从main开始。如果一个方法不是静态的,则要先实例化该类,比如要这样 test t=new test();
然后才能调用 t.main(); 而这对于运行一个程序的主函数来说是不现实的,所以比如把main函数定义为static,使t.main()可以直接被调用。
String[] args的作用是什么:运行时命令行参数, ...
c语言:指针误区总结
4个二进制位可以表示一个16进制数字
1111 -->f
指针类型的意义:
指针类型决定了:指针解引用的权限有多大(整型指针解引用访问4个字节,字符型指针解引用只能访问1个字节)
指针类型决定了,指针走一步,能走多远(步长)
例题1:
123456 int a = 0x11223344;char* pc = &a;*pc = 0; //只改变一个字节int* pa = &a;*pa = 0;//改变了四个字节
char* 的指针解引用就只能访问一个字节,而 int* 的指针的解引用能访问四个字节。
例题2:
1234567int arr[10] = { 0 };int* p = arr;char* pc = arr;printf("%p\n", p);printf("%p\n", p + 1);//加了4,因为int4字节printf("%p\n", pc);printf("%p\n", pc + 1);//加了1,因为char1字节
野指针:指 ...
Vue笔记:指令
什么是vue
构建用户界面
用vue往html里填充数据
框架
框架是一套现成的解决方案,只能遵守框架规范写自己的业务功能
vue的特性
数据驱动视图
数据的变化会驱动视图自动更新
双向数据绑定
在网页中,form表单负责采集数据,Ajax负责提交数据
js数据的变化,会被自动渲染到页面上
页面上表单采集的数据发生变化时,会被vue自动获取到,更新到js数据中
数据驱动视图和双向数据绑定的底层原理是MVVM(Mode数据源、View视图、ViewModel就是vue实例
vue的基本使用
1234567891011121314151617<body> <!-- 希望vue控制div,把数据填充到div内部 --> <div id="app">{{ username }}</div> <!-- 1.导入Vue库文件,在window全局就有了vue这个构造函数 --> <script src=". ...
Python笔记:条件、循环及其他语句
Python基础教程(第三版)第5章:条件、循环及其他语句
print()
end='' //不换行
sep='' //自定义分隔符
123print("my name is",end='')print("panghu") //打印结果:my name is panghuprint("I","love","you",sep="!") //I!love!you
import
当你确定要导入模块中的一切时,可使用from somemodule import *如果有两个模块,都包某一函数时,可使用as
12import math as foobarprint(foobar.sqrt(4)) //2.0
序列解包
1234values=1,2,3x,y,z=valuesprint(values) //(1,2,3)print(z) //3
*元素符:分配多余的值
12345values=1,2,3,4x,*y,z=valuesprint(x) ...
ECMAScript 6入门
let
var和let声明变量的区别:
let声明的变量是块级变量,只存在{}内。
1234if(true){ let a=0;}console.log(a);
会出现Uncaught ReferenceError: a is not defined的报错,而在{}内打印console.log(a)而不会报错。
let声明的变量没有变量提升
12console.log(a);let a=0;
如上代码会报错Uncaught ReferenceError: Cannot access 'a' before initialization
let声明的变量会出现暂时死区
在{}外用var声明变量,{}内用let声明一个相同的变量,{}外用var声明的变量便没有意义。
12345var a=10;if(true){ console.log(a); let a=20;}
如上代码依旧会报错Uncaught ReferenceError: Cannot access 'a' before initialization
const
具有 ...
c语言:操作符误区总结
左移操作符:<<
左边丢弃,右边补0
12345678int main(){ int a = 2; //把a的二进制位向左移动一位 int b = a << 1; printf("b = %d\n", b);//输出为4 return 0;}
右移操作符:>>
1.算术右移:右边丢弃,左边补原符号位
2.逻辑右移:右边丢弃,左边补0
1234567#include<stdio.h>int main(){ int a = -3; int b = a >> 1; printf("%d", b); //输出为-2}
负数在内存中存放的是二进制的补码。
原码:直接根据数值写出的二进制序列
反码:符号位不变,其他位按位取反
补码:反码+1
以-3为例:
原码:10000000000000000000000000000011
反码:11111111111111111111111111111100
补码:11111111111111111 ...
c语言:数组误区总结
创建数组时,数组的长度必须用常量表达式进行定义,较好的方法是用宏来定义数组。
12#define N 10;int arr[N];
但在C99中的变长数组,也可以使用非常量表达式。
关于字符数组的初始化,使用方法2初始化数组会在末尾自动创建\0。
12char ch1[] = { 'p','a','n','g','h','u' };char ch2[] = "panghu";
这就会导致打印结果、字符串长度的不同。
strlen() 函数从字符串的开头位置依次向后计数,直到遇见\0,然后返回计时器的值。最终统计的字符串长度不包括\0。
12345678910#include <stdio.h>#include<string.h>int main(){ char ch1[] = { 'p','a','n',' ...