- 博客(31)
- 资源 (22)
- 收藏
- 关注
原创 线程中的并发锁
CAS的全称是: Compare And Swap(比较再交换),它体现的一种乐观锁的思想,在无锁情况下保证线程操作共享数据的原子性。在JUC( java.util.concurrent )包下实现的很多类都用到了CAS操作AbstractQueuedSynchronizer(AQS框架)AtomicXXX类例子:我们还是基于刚才学习过的JMM内存模型进行说明线程1与线程2都从主内存中获取变量int a = 100,同时放到各个线程的工作内存中。
2024-05-28 14:26:22
751
原创 线程相关基础知识
start(): 用来启动线程,通过该线程调用run方法执行run方法中所定义的逻辑代码。为了确保三个线程的顺序你应该先启动最后一个(T3调用T2,T2调用T1),这样T1就会先完成而T3最后完成。一个线程就是一个指令流,将指令流中的一条条指令以一定的顺序交给 CPU 执行。()方法在一个线程中启动另一个线程,另外一个线程完成该线程继续执行。每个核(core)都可以调度运行线程,这时候线程可以是并行的。在多线程中有多种方法让线程按特定顺序执行,你可以用线程类的。notifyAll:唤醒所有wait的线程。
2024-05-27 14:50:32
809
原创 4-28 算法总结
堆排序的最佳实现,没有什么算法思想,把堆排序的算法背下来,然后buildmaxheap,求第k大个元素只需要溢出k-1次头部,在重新堆排序,取堆头元素即可。
2024-05-13 13:53:06
184
原创 4-22 算法刷题思路总结
考虑添加结果的时间点 不是在递归出口, 而是在每次更新path的时候,每次递归会使得横向遍历的结果缩小变成i+1,回溯阶段删除path的末尾。待取值数组为(),每一次向下递归不会改变,for循环01 0为( 1 为),递归出口 l》n||r》n||r>l则直接退出不保存结果。递归出口为结果等于target,如果大于target也退出递归 因为 输入数字串是从小到大排列。选取完回溯 将暂时保存的path删除尾部 将used重置为0。每次都是从0开始,digit的长度为几就递归深度为几。n 则保存结果并退出。
2024-04-22 20:55:16
290
原创 4-20 刷题思路
1.统计所有节点的入度,统计所有节点的临界节点,利用广度优先搜索,将入度为0 的课程如队,然后出队,删除该节点所有的边,即邻接节点的入度减一,判断是否还有度为0的则入队。
2024-04-20 17:56:41
216
原创 4-19 算法思路总结
利用递归算法,从上而下递归,遇到false直接返回无需递归到叶子节点,从上往下递归时,传递并改变两个参数,对于当前节点的最大值以及最小值,对于根节点来说,初始化的最大值以及最小值可以为long的MAX_VALUE和MIN_VALUE如果向左走,则更改最大值为当前节点的值,如果向右走则最小值为当前节点的值。利用层序遍历,一次遍历一层的版本,然后把每一层的最后一个节点保存。利用中序遍历,第k个被遍历到的元素就是第k小的元素。左节点置空,右节点指向左孩子。
2024-04-19 20:54:56
264
原创 腾讯暑期实习一面凉经
上来手撕一道算法,快排(看到快排以为稳了,结果好久没写了,写了半小时没写出来。°(°¯᷄◠¯᷅°)°。)面试官表示要有一定代码能力的(此时我已经心凉了)hashtable 和hashmap什么区别。jvm有哪些结构组成,有几种内存溢出的情况。总共就1个小时,没怎么问,感觉是kpi了。hashmap怎么保证线程安全。什么是序列化什么是反序列化。==和equals区别。
2024-04-17 21:10:47
372
原创 Java的深拷贝和浅拷贝思考
在Java面试中,深拷贝和浅拷贝的概念是经常被问到的。虽然已经看过一些相关的文章,但我觉得它们并没有讲得很清楚。我希望通过这篇文章,能够更深入地理解并解释深拷贝和浅拷贝的概念,以便更好地应对面试。
2023-11-22 17:07:15
199
原创 java中基本数据类型的最大值最小值理解
这是因为在二进制补码表示法中,最高位是用来表示符号的(0 表示正数,1 表示负数),其余位表示数值部分。所以,如果我们要表示最大的正数,我们需要把除了最高位之外的所有位都设为 1。如果仅仅是用第一位作为符号为,但是用普通的二进制表示法的话,对于正数来说,可以表示的最大数并没有变化,但是对于负数则变成了。而补码表示法中正数的补码等于其二进制表示也就是说int类型的最大值为01111111.。而最小值为其绝对值的二进制表示法取反加1,最终可以获得的最小数即为10000.。-2的31次方-1,少表示了一个数。
2023-11-21 21:26:58
391
原创 第一章 Java反射机制(韩顺平老师Java基础学习记录)
每一项新技术以及新概念的提出都是源于存在着新“问题”,放在代码领域可以说是存在着新需求,那么为了解决这个需求,我们不断的去更新我们的技术。有了这个概念,我们就要去思考一个问题,反射机制的提出是为了解决什么问题,它又是如何解决的?例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
2023-08-18 13:40:31
145
原创 用KMP的方法解决《重复的子字符串》
步骤一:因为 这是相等的前缀和后缀,t[0] 与 k[0]相同, t[1] 与 k[1]相同,所以 s[0] 一定和 s[2]相同,s[1] 一定和 s[3]相同,即:,s[0]s[1]与s[2]s[3]相同。步骤三: 因为 这是相等的前缀和后缀,t[2] 与 k[2]相同 ,t[3]与k[3] 相同,所以,s[2]一定和s[4]相同,s[3]一定和s[5]相同,即:s[2]s[3] 与 s[4]s[5]相同。解释: 可由子字符串 “ab” 重复两次构成。输入: “abab”图片来源于代码随想录。
2023-08-18 13:38:26
225
1
原创 KMP算法详解,以及如何求next数组的个人理解思路
说到KMP,先说一下KMP这个名字是怎么来的,为什么叫做KMP呢。因为是由这三位学者发明的:Knuth,Morris和Pratt,所以取了三位学者名字的首字母。所以叫做KMP。
2023-08-17 17:42:16
228
1
原创 剑指 Offer 05. 替换空格
接下来就是循环中的判断条件,如果发现first指针指向的不是空格,那么直接将该值赋值给sceond指针指向的位置,也就是char[second] = char[ first]如果first指针指向的是空格,那么second指针需要依次复制0 2 %,一边赋值一边向前移动。second指向扩容后的字符串的末尾,也就是s2.length()-1的位置。先将空间添加到字符串替换为%20后的大小,再利用双指针从后往前边对比边替换。first指针指向初始字符串的末尾也就是s.length()-1的位置。
2023-08-01 17:49:43
184
1
原创 541. 反转字符串 II 学习记录
于是接下来我们就需要先取出前k位的字符,再进行反转,取前k位只需要,s.substring(beging,end),然后将其append到stringBuffer中,在调用stringBuffer的reverse函数进行反转,这样我们就得到了反转后的前k 位。这样就处理完了一个2k区间中的所有情况,下一个2k就可以让i=i+2k进行循环处理。再找这两个位置的时候,进行判断,剩余字符是否少于k个,如果在找第一个k的位置的时候,剩余字符少于k个那么firstk = s.length(),
2023-07-31 17:10:45
219
1
原创 Java线程同步机制
比如对于卖票程序来说,同一时间只能有一个窗口在执行卖票程序,即只能有一个线程对ticketNum进行操作。上锁时需要考虑,被上锁对象是否为同一个,即对象是否为共享对象。当其修饰方法时,同一时间只能有一个对象执行该方法。
2023-03-28 13:19:41
127
原创 mysql关系模式作业
1、设教学数据库中有4个关系 教师关系T(T#,TNAME,TITLE) 课程关系C(C#,CNAME,T#) 学生关系S(S#,SNAME,AGE,SEX) 选课关系SC(S#,C#,SCORE)使用关系代数 表达式和SQL语言来表示各个查询语句(1)检索年龄小于17岁的女学生的学号和姓名Πs,sname(δage<17(S))Select s,sname from s where age<17;(2)检索男同学所学的课程号和课程名Πc,cname(δc=πc(δs
2020-05-28 09:15:36
4452
原创 mysql数据完整性实验
教案首页(以2课时为单元)课 序 授课日期 授课班次 授课教师 批准人4 课题 实验四 数据完整性目的要求 1. 掌握使用SQL语句CREATE TABLE定义约束的方法。2. 掌握使用SQL语句ALTER TABLE增加或删除约束的方法。3. 了解约束的各种类型。4. 掌握使用SQL语句CREATE TRIGGER创建触发器的方法。5. 掌握引发触发器的方法。6. 掌握使用SQL语句DROP TRIGGER删除触发器的方法。教学内容 1. SQL语句CREATE TAB
2020-05-28 09:13:56
9376
4
原创 mysql存储过程和存储函数练习题
课 序 授课日期 授课班次 授课教师 批准人5 课题 实验五 存储过程和存储函数目的要求 1. 掌握通过SQL语句CREATE PROCEDURE创建存储过程的方法。2. 掌握使用SQL语句CALL调用存储过程的方法。3. 掌握使用SQL语句ALTER PROCEDURE修改存储过程的方法。4. 掌握使用SQL语句DROP PROCEDURE删除存储过程的方法。5. 掌握使用CREATE FUNCTION创建存储函数的方法。6. 掌握使用SQL语句ALTER FUNCTION修
2020-05-28 09:12:28
16494
5
原创 python安装及Pydev环境搭建
浏览器访问 https://www.python.org/downloads/windows/ ,一般就下载 executable installer,x86 表示是 32 位机子的,x86-64 表示 64 位机子的。官网下载速度慢的话可以复制链接到迅雷上下载,速度提升明显双击打开.exe文件记得勾选add to path若要自定义安装位置则选择 customize installation,进入后改变自己的安装位置,其 u哦余的皆默认即可installnow则是傻瓜一键式操作安装完成后
2020-05-20 23:05:49
1535
原创 mysql 索引练习题
课 序 授课日期 授课班次 授课教师 批准人3 课题 实验三 索引和视图目的要求 1. 学会使用SQL语句CREATE INDEX创建索引。2. 学会使用SQL语句DROP INDEX删除索引。3. 学会使用SQL语句CREATE VIEW创建视图的用法。4. 掌握使用SQL语句ALTER VIEW修改视图的方法。5. 了解删除视图的SQL语句DROP VIEW的用法。...
2020-03-29 20:59:49
1760
1
原创 Mysql添加和删除唯一索引、主键
Mysql添加和删除唯一索引、主键1、PRIMARY KEY(主键索引)添加 ALTER TABLE table_name ADD PRIMARY KEY ( column );删除 ALTER TABLE table_name DROP PRIMARY KEY;2、UNIQUE(唯一索引)添加 ALTER TABLE table_name ADD UNIQUE ( column );...
2020-03-28 12:47:44
422
原创 mysql练习题
【例3-1】查询stuinfo表所有姓张同学的信息。select * from stuinfo where left(s_name,1)=‘张’;【例3-2】创建一个和stu_info视图字段结构一样的表stuinfo,把C语言的学分都修改成6分。update stuinfo set 学分=6 where 课程名=‘C语言’;【例3-2.1】查询学分是等于4分或6分的课程信息,按降序排列...
2020-03-24 12:48:55
654
1
原创 keil 软件安装报错
关于老师发的keil软件报错如下:— Error: failed to execute ‘d:\Keil\C51\BIN\C51.EXE’错误是因为老师直接拷贝的安装目录,里面的TOOLS.INI配置文件仍然保留了他电脑的路径,与你放置Keil的实际路径不符。解决办法:找到自己的keil安装目录,下面有个TOOLS.INI文件。用记事本打开这个文件,找到:[C51] PATH=“d:\K...
2020-03-23 12:17:35
13038
15
原创 c语言/的用法
C语言中“/”(除号)应用时的注意问题今天,写了一个多项式的函数问题,发现无论如何更改,结果总是0.后来发现是数据类型整错了,进行除法时一定要注意数据类型。用了两种算法一种是暴力解法一种是秦九韶算法下面将常用的int,float类型分别做除数,被除数看得出的结果如何。1.int/int 毫无疑问,结果为int型,如1/2,结果为02.int/float 结果仍为03.flo...
2020-03-21 21:24:41
11187
2
原创 mysql 练习题
一、上机内容使用SQL语句创建数据库studentsdb。、Create database studentdb;2.使用SQL语句选择studentsdb为当前使用数据库。Use studentdb;3.使用SQL语句在studentsdb数据库创建数据表student_info、curriculum、grade,三个表的数据结构如表1-表3所示。create table stude...
2020-03-19 10:37:00
24098
3
原创 linux练习题
4-1使用命令切换到/etc目录,并显示当前工作目录路径。cd /etcPwd4-2使用命令显示/root目录下所有文件和子目录的详细信息,包括隐藏文件。ls -a /root4-3使用命令创建空文件/root/ab,并将该文件的时间记录更改为8月8日8点8分。touch /root/abTouch -m -d “2020-08-08 08:08” /root/ab4-4使用命令创...
2020-03-19 10:34:56
3141
1
原创 java最新版下载地址
JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.htmleclipse下载地址:https://www.eclipse.org/downloads先下载jdk配置完成后在下载eclipse
2020-03-15 14:16:23
29285
1
原创 mysql 查询group by 后的 总组数
对目标表分组如: select count(*) from grade group by s_id;若此时想知道分组后总共有几组,可以利用count函数,将上一个表代入。select count(*) from(select count(*) FROM grade GROUP BY s_id) s;需注意第二条代码的表必须取别名...
2020-03-15 12:26:53
8953
1
原创 redhat7安装时报错256
一种方式是用最小化安装,但后期安装gui挺麻烦的这种情况发生大多数是由于安装包下载过程中安装包损坏导致的,建议重新下载一丛
2020-03-03 12:42:11
655
原创 出现The type javax.swing.JFrame is not accessible或The type XXX is not accessible类似包无法导入的情况
如果发现出现The type javax.swing.JFrame is not accessible等包无法导入等情况,在排除了jre等设置错误后只需要将module-info.java文件删除即可,在初学者或者大部分情况下这个文件用不到,这个文件主要用于模块化操作。要是需要此文件只需要在module-info.java文件中写入requires java.desktop;即可...
2020-03-02 12:05:50
6726
9
基于动态图构建LeNet-5训练mnist.py
2020-06-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人