- 博客(31)
- 收藏
- 关注
原创 设计模式讲解
设计原则单一职责原则> 一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中>//一个人类public class People { /** * 人类会编程 */ public void coding(){ System.out.println("int mian() {"); System.out.println(" printf(\"Holle Wrold!\");"); Syste
2024-10-23 12:13:03 1123
原创 多线程&并发性
在同步代码块执行过程中,拿到了我们传入对象或类的锁(传入的如果是对象,就是对象锁,不同的对象代表不同的对象锁,如果是类,就是类锁,类锁只有一个,实际上类锁也是对象锁,是Class类实例,但是Class类实例同样的类无论怎么获取都是同一个),但是注意两个线程必须使用同一把锁!当两个线程同时读取value的时候,可能会同时拿到同样的值,而进行自增操作之后,也是同样的值,再写回主内存后,本来应该进行2次自增操作,实际上只执行了一次!方法后,被挂起的线程才能继续,从而其它被阻塞在这个锁的线程才可以继续执行。
2024-09-03 15:00:09 550
原创 函数式编程
而在底层,Java编译器会创建一个实现 了目标接口的类的实例,并将我们的方法弓I用或lambda表达式包果在其中。我们接受了未绑定引用,然后以X为参数在 其上调用了 transformO,最终以某种方式调用了 x.f(),Java知道它必须接受第一个参数, 事实上就是this,并在它的上面调用该方法。到目前为止,我们看到的对方法的引用,与其关联接口的签名是相同的。我们必须再做一次心理调节:在未绑定引用的情况下,函数式方法(接口中的单一方法)的 签名与方法引用的签名不再完全匹配。外部变量会变成什么呢?
2024-07-17 00:06:49 703
原创 蓝桥杯
4月21日 9:00 - 13:00 B组看不到测试结果, 没有罚时, 但是看算法优化程度两道填空 [5’ * 2]六道大题 [10’ * 2 + 15’ * 2 + 20’ * 2]根据数字范围确定算法。
2024-04-21 00:08:23 933 1
原创 java教程
/ 模拟驾驶的行为交通工具是一个抽象的概念, Vehicle用abstract修饰Vehicle的run也用abstract修饰, 意味着它是一个没有被实现的抽象方法, 仅仅声明了交通工具应该有的功能发动引擎, 带动车轮滚动蹬踏板, 车轮滚动// 非法, 不允许访问方法的局部内部类class Inner { // 局部内部类int v1, v2;// 合法int a;class Inner { // 局部内部类int b1 = a;
2024-04-09 18:54:43 819
原创 HeadFirstJava
如果不希望实例化一个类, 就用abstract标记抽象类所有抽象方法必须在继承树种的第一个具体子类中实现抽象方法没有方法体, 而且声明以一个分号结尾Java中的每个类要么是类Object的直接子类, 要么是他的间接子类如果不做强制类型转换, Object类型的引用变量不能赋给任何其他引用类型Dog d = (Dog) x.getObject(aDog);不能多重继承, 会带来"致命的死亡菱形", 一个类只能有一个直接超类。
2024-03-24 20:27:11 632 1
原创 竞赛模版
本来存进long long会炸掉的值先进行计算,用long double暂时存下,然后再把差值——一个不会超过long long的数字塞回去,再特判一下精度问题。Log(x)表示ln(x) ,其他例如:log10(x) ,log2(x),用exp(x)来表示e^x。base是要转化的数的进制,非法字符会赋值给endptr,nptr是要转化的字符。快速幂里的x是指数级增长,而龟速乘变成了翻倍,仅此而已。这里求到的数和原本的实际值相差不大,故求位数不影响。Eg:给定n种颜色篮子和n种颜色球,求全放错情况数。
2024-01-28 11:52:11 151
原创 树状数组
打个比方,也就是说我们要给区间[1,3]的每个数加上4,我们只需要给差分数组的a[1]加上4,给差分数组的a[4]减去4。只有当某一条线段的上端点大于(没有等于的情况)当前的线段的上端点,而且下端点<= 当前的线段的下端点时两线才会交叉。黑色表示原来的数组(a[i]), 红色是树状数组(c[i]), 每个位置存的是子节点的和。问题转化为 a[j] ≤ a[i] (i < j) 的方案数, 即求逆序对的个数。更新a[1]时, 需要向上更新C[1], C[2], C[4], C[8]条线段,到下面的终端中第。
2024-01-25 21:38:02 836
原创 PTA题目测试
Pn,以空格分隔,其中1≤Pi≤100(0≤i≤n),第i个矩阵Ai是阶为Pi−1∗Pi的矩阵。矩阵的乘法定义如下:设A是m×p的矩阵,B是p×n的矩阵,则A与B的乘积为m×n的矩阵,记作C=AB,其中,矩阵C中的第i行第j列元素cij可以表示为:cij=Σk=1paik×bkj=ai1b1j+ai2b2j+⋯+aipbpj.,An为矩阵序列,Ai是阶为Pi−1∗Pi的矩阵(1≤i≤n)。例如,A是50×10的矩阵,B是10×20的矩阵,C是20×5的矩阵,
2024-01-16 11:48:03 420 1
原创 2023下半年总结
e 也有递归入门–跳台阶飞飞目前位于第 0 级台阶上,他想要前往第 n 级台阶。飞飞每一步可以向上走一级台阶,两级台阶或者四级台阶。问飞飞恰好走到第 n 级台阶的不同方法数。
2023-12-04 23:22:52 1058
原创 算法算法~
动态规划基本步骤穷举分析确定边界找出规律,确定最优子结构写出状态转移方程Tips为了不爆表, 数组都开到全局变量里背包只考虑第 i 件物品放或不放,转化为一个只牵扯前 i - 1 件物品的问题。不放第 i 件物品,转化为“前 i - 1 件物品放入容量为 v 的背包中”果放第 i 件物品,转化为“前 i - 1 件物品放入剩下的容量为 v - c[i] 的背包中”,此时能获得的最大价值就是 dp[i -1]v - c[i]再加上通过放入第 i 件物品获得的价值 w[i]从
2023-12-01 15:32:30 1442 1
原创 STL快速讲解
i++)it!= a.end();++it)a.begin()是一个迭代器,指向的是第一个元素a.end()是一个迭代器,指向的是最后一个元素再后面一位上述迭代器具有自增运算符,自增则迭代器向下一个元素移动迭代器与指针相似,如果对它使用解引用运算符,即*it,就能取到对应值了。
2023-11-11 20:06:49 64 1
原创 ACM入队150题总结
7.21开始前90道题总结T8判断一个数x是不是完全平方数。Tips: sqrt(x)后 平方,看是否与x相等if ((int)sqrt(n) * (int)sqrt(n) == n)计算一个数x是几位数(int)(log10(x)) + 1%llu 读入unsigned long long 类型ULL后缀 防止数据溢出T14 循环找到两个值的最小差值labs 获取长整数(long类型)的绝对值。llabs 获取长长整数(long long类型)的绝对值。//时
2023-09-01 16:41:14 209 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人