在浙大OJ系统提交1978题代码一直出现Segmentation Fault!!!!!!! 10C

在Linux环境里编译运行都成功。但是在ACM平台上提交代码时就一直出现Segmentation Fault 错误。自己的代码看了很久都没发现错误,运行又都是正确的。好烦躁。ACM所用的编译器时C(gcc 4.7.2)
题号1978。。有哪位大侠有时间可以修改然后拿去试试能不能AC。跪谢。。
#include
#include
typedef struct List{ //构造链表,代表参赛者的队列。
int i;
struct List *next;
}List;
void Select(List *head,int *nNumber);
int main(void)
{
int nNumber[1000];
int i=0,j,w;
List *q,*p;
List head;
q=(List *)malloc(sizeof(List));
head.next=q;
q->i=2;
printf("Sample Input\n");
do{
printf("请输入第%d个n值:",i+1);
scanf("%d",&nNumber[i]);
i++;
}while(nNumber[i-1]!=0);
for(j=3;j {
p=(List *)malloc(sizeof(List));
p->i=j;
q->next=p;
p->next=NULL;
q=p;
}
Select(&head,nNumber);//调用Select函数,返回只有幸运参赛者存在的链表
q=head.next;
for(j=0;j {
for(w=1;w {
q=q->next;
}
printf("%d\n",q->i);
q=head.next;
}
}
void Select(List *head,int *nNumber)//通过遍历链表,删除所有的需要打工的参赛者结点。
{
int i=0,max=nNumber[i],j;
List *q,*p,*q1;
p=head->next;
while(nNumber[i]!=0){
if(max max=nNumber[i];
i++;
}
for(j=0;j {
q=p;
while(q->next!=NULL)//开始循环删除
{
for(i=1;ii;i++)
{
if(q->next!=NULL)
q=q->next;
else break;
}
if(q->next==NULL)
break;
q1=q->next;
q->next=q1->next;
free(q1);
}
p=p->next;
}
}

2个回答

Segmentation Fault
说明你访问到了未分配的空间
可能你数组开小了
或者你访问到了已经被释放的空间了

对了,可以告诉你个技巧,你链表不需要自己写的
c++的stl库提供了List类,你可以直接用,用法可以去百度~

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
在VS上运行没有问题,但提交oj出现段错误,在VS上该如何调试?
在VS上运行没有问题,但提交oj出现段错误,在VS上该如何调试?
这个代码提交到oj为什么时间超限?
![图片说明](https://img-ask.csdn.net/upload/202004/02/1585800487_582987.png) ``` #include <stdio.h> int main() { char y; int sum = 0; int a; do { scanf_s("%d", &a); sum += a; } while (y = getchar() != '\n'); printf("%d", sum); return 0; } ```
在OJ上程序提交出现RE错误,求解答
在oj上进行训练的时候,提交程序出现RE错误,不知道为何,由于代码篇幅较长,请各位大佬移步这里 [程序提交出现RE错误](http://blog.csdn.net/weixin_39684284/article/details/77197272 "")
oj 提问 矩阵转置题? 为什么可以算出正确答案,但是判题不通过?
为什么判题无法通过? ``` #include <stdio.h> #include <stdlib.h> int main() { int m,n,i,j; scanf("%d%d",&m,&n); char *p; p = (char*)malloc(n*m*sizeof(char)); for(i = 0;i<m;i++) { for(j = 0;j<n;j++) { scanf("%d",&p[i*n+j]); } } for(i = 0;i<n;i++) { for(j = 0 ;j < m;j++) { if(j == m-1) printf("%d\n",p[j*n+i]); else printf("%d ",p[j*n+i]); } } // free(p); return 0; } ```
代码在VC上运行正常,在OJ上运行失败
1.问题描述: 在一个暴风雨的夜晚,农民约翰的牛棚的屋顶、门被吹飞了。 好在许多牛正在度假,所以牛棚(牛棚的总数S:1<= S<=200)没有住满。 剩下的牛一个紧挨着另一个被排成一行安置在有屋顶的牛棚来过夜。 所以有些牛棚里有牛,有些没有。 所有的牛棚有相同的宽度,且宽度设为1。 因为有些门遗失,农民约翰需要架起新的木板作为门。 他的新木材供应者将会供应他任何他想要的长度,但是供应者只能提供有限数目的木板。 农民约翰想将他购买的木板总长度减到最少。 计算拦住所有有牛的牛棚所需木板的最小总长度。 输出所需木板的最小总长度作为的答案。 说明:拦住一个牛棚需要的木板长度为1,拦住相邻的三个牛棚则需要木板长度为3。 比如有牛的牛棚编号为: 3 5 8 10 11 并且只能使用两块木板, 则第一块木板从3到5,长度为3, 第二块木板从8到11,长度为4, 因此,需要木板的总长度为7。 2.输入说明: 第 1 行: M 和 C(用空格分开) 第 2 到 C+1行: 每行包含一个整数,表示牛所占的牛棚的编号。 其中: 可能买到的木板最大的数目:M(1<= M<=50); 需要安置的牛的数目C(1<= C <=S) 安置后牛所在的牛棚的编号stall_number(1<= stall_number <= S)。 3.自编代码 ``` int main(){ int m,c,t,n,min; int i,j,k=0; int s[201],a[120]; scanf("%d%d",&m,&c); for(i=0;i<=200;i++){ s[i]=0; } for(i=0;i<c;i++){ scanf("%d",&n); s[n]=1; } for(i=1;s[i]==0;i++); for(t=200;s[t]==0;t--); min=t-i+1; while(i<=t){//找出i到t内所有没有牛的位置长度 j=0; if(s[i]==0){ while(s[i+j]==0){ j++; } a[k++]=j; } i=i+j+1; } for(i=0;i<k-1;i++){//对位置长度进行从大到小排序 for(j=0;j<k-i-1;j++){ if(a[j]<a[j+1]){ t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } i=0; while(m>1 && i<k){ min=min-a[i]; m--; i++; } printf("%d\n",min); return 0; } ``` 4.运行结果: OJ上的结果: ![图片说明](https://img-ask.csdn.net/upload/202003/26/1585195124_271585.png) VC上的结果: ![图片说明](https://img-ask.csdn.net/upload/202003/26/1585195148_407920.png)
oj的练习题:多输入输出练习1
请教大家一个问题: 题目是这样的: ![图片说明](https://img-ask.csdn.net/upload/202002/26/1582718661_948414.png) 我的代码是这样的: ``` #include<iostream> using namespace std; int main() { int i, j,a[3][10]; for (i = 0; i < 3; i++) { for (j = 0; ; j++) { cin >> a[i][j]; if (a[i][j] != 0) continue; else break; } } int max = 0; for (i = 0; i < 3; i++) { for (j = 0; j < 10; j++) { if (max >= a[i][j]) continue; else max = a[i][j]; if (a[i][j] != 0) continue; else break; } cout << max << endl; max = 0; } return 0; } ``` 在vs上运行成功,但是oj上显示“答案错误”,可以帮我看看是什么问题吗? and 可以告诉我一点oj的技巧就更好了,我经常在vs上运行成功,但是oj过不了。
OJ上一道字母大小写转换的题
OJ上的一道题,题目是:cAPS lOCK ![图片说明](https://img-ask.csdn.net/upload/201507/19/1437277235_164047.png) 我写的代码链接:http://codepad.org/JrJrOGxQ 自己在编译器上编译时 没发现有什么错,但是在OJ上提交时出现:wrong answer on test 6 不知道哪里错了
请问一下这段代码提交到OJ平台为何报错RE?
纯小白,写代码不过几个月,不知道下面这段代码提交到OJ平台为何提示RE,有什么修改的措施吗? OJ平台的提示信息是:LinuxExecutorSeccomp.cpp(219): terminate signal: SIGSEGV 请问有什么办法补救吗?或者能否推荐一个好的编译平台以供自行检验错误呢?学校一直使用的是DEV-C++。 代码如下: ``` #include<stdio.h> #include<string.h> void compare(char a[],char b[]) { char t[1000]; memset(t,0,sizeof(t)); for(int i=0;i<1000;i++){ if(strcmp(a,b)<0){ strcpy(t,a); strcpy(a,b); strcpy(b,t); return; } } return; } int main(){ char a[1000][55],ch; int count[1000]={0}; int jj[1000]={0}; int n=0,m=0; memset(a,0,sizeof(a)); while((ch=getchar())!='\n'){ if(ch==' '){ m++; n=0; continue; } a[m][n++]=ch; } int i=0; for(i=0;i<=m;i++){ for(int j=0;j<=m-1;j++){ compare(a[j],a[j+1]); } } int e=1; for(i=0;i<=m;i++){ count[i]=1; for(int j=m;j>i;j--){ if(strcmp(a[i],a[j])==0){ count[i]++; } } } for(i=0;i<=m;i++){ for(int j=m;j>i;j--){ if(strcmp(a[i],a[j])==0){ jj[e++]=j; } } } int t=m+1; while(t>0){ t--; while(t>0&& a[t]==0)t--; int h=1; while(h<=e){ while(t>0&& t==jj[h]){ t--; h=0; } h++; } printf("%s %d\n",a[t],count[t]); } return 0; } ```
zzuli oj 1164题 为什么我的这种写法会判题为 答案错误呢? 我明明可以输出正确答案,问题在哪?
``` #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char a[1000]; scanf("%s",&a); int i,k,l,len; scanf("%d",&k); len = strlen(a); l = k%26; for(i = 0; i<len; i++) { if(a[i] >= 'a' && a[i] <= 'z') { if(a[i] + l <= 'z') a[i] = a[i] + l ; else a[i] = (l - 26) + a[i]; } else if(a[i] >= 'A' && a[i] <= 'Z' ) { if (a[i] +l <= 'Z') a[i] = a[i] + l ; else a[i] = (l - 26) +a[i]; } } for(i=0;i<len;i++) printf("%c",a[i]); return 0; } ```
有关 杭电 OJ 2093——考试排名 的问题
我的代码在本地运行“看起来”没问题(用题目中的用例测试),但是提交之后就显示 Wrong Answer。我已经折腾了大半天,但还是找不到问题出在了哪里,希望热心的大佬帮我看看,在此感激不尽。(由于没有C币,所以不能设置悬赏,请见谅。) 问题描述和输入输出说明如下: ![问题描述](https://img-ask.csdn.net/upload/202004/04/1585993172_159604.png) ![输入输出说明](https://img-ask.csdn.net/upload/202004/04/1585993212_837771.png) > [这里是题目链接](http://acm.hdu.edu.cn/showproblem.php?pid=2093) 我的代码如下: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define NAME_LENGTH 11 #define QUESTION_COUNT 13 #define STUDENT_COUNT 10000 typedef struct { char name[NAME_LENGTH]; int accepted; int time; } Student; Student students[STUDENT_COUNT]; int MyCompare(const void *q,const void *w); void PrintStudentRank(Student students[], int length); int main() { int questionCount, penalty; scanf("%d %d", &questionCount, &penalty); getchar(); // 读出回车符 int studentIdx = 0; // 读取每个学生的信息 while(scanf("%s", students[studentIdx].name) != EOF) { students[studentIdx].accepted = 0; students[studentIdx].time = 0; // 统计该学生这 questionCount 道题的解答情况 for(int i = 0; i < questionCount; i++) { int timeCost; scanf("%d", &timeCost); if(timeCost > 0) { students[studentIdx].accepted++; students[studentIdx].time += timeCost; if(getchar() == '(') { // 有括号的情况,加上惩罚时间 int faultTimes; scanf("%d", &faultTimes); students[studentIdx].time += penalty * faultTimes; getchar(); // 读出右括号 } } } // 排序后输出 qsort(students, studentIdx + 1, sizeof(Student), MyCompare); PrintStudentRank(students, studentIdx + 1); studentIdx++; getchar(); // 读出回车符 } return 0; } int MyCompare(const void *q,const void *w) { Student *s1=(Student*)q,*s2=(Student*)w; if(s1->accepted != s2->accepted) return s2->accepted - s1->accepted; if(s1->time != s2->time) return s1->time - s2->time; return strcmp(s1->name, s2->name); } void PrintStudentRank(Student students[], int length) { for(int i = 0; i < length; i++) printf("%-10s %2d %4d\n", students[i].name, students[i].accepted, students[i].time); } ```
python oj 超时,求优化。。
python oj 超时,求优化。。 时间限制:1.000s 内存限制:125MB 题目描述 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。 输入 每组输入数据包含n+1行; 第一行是整数n,表示自然数的个数; 第2~n+1行,每行一个自然数。 数据规模: 40%的数据满足:1<=n<=1000; 80%的数据满足:1<=n<=50000; 100%的数据满足:1<=n<=200000,每个数均不超过1500000000(1.5*109)。 输出 每组输出包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。 代码如下 ``` num0 = eval(input()) num1 = dict() for i in range(num0): try: num2 = int(input()) num1[num2] += 1 except: num1[num2] = 1 for i in sorted(num1.keys()): print("{} {}".format(i, num1[i])) ```
在oj系统中提交老是出现Runtime Error,怎么修改也不行,求指点
**__Description__** 给定两个字符串,将它们连接起来。不得使用strcat函数。 **Input** 测试数据有多组,第一行的正整数T表示测试数据的组数。每组有两个字符串,分别占两行,每个字符串不超过100个字符。 **Output** 对于每组测试数据,输出连接后的字符串,单独占一行。 **__Sample Input__** 2 abc 1234 xy oop **Sample Output** abc1234 xyoop ``` #include<stdio.h> #define M 100 int main() { char a1[M],a2[M]; int t,i1; scanf("%d",&t); for(i1=0;i1<t;i1++) { getchar(); int j=0; a1[j]=getchar(); while(a1[j]!='\n') { j++; a1[j]=getchar(); } static int i=0; a2[i]=getchar(); while((a1[j]=a2[i])!='\n') { i++,j++; a2[i]=getchar(); } a1[j]='\0'; for(j=0;a1[j]!='\0';j++) printf("%c",a1[j]); } return 0; } ```
杭电OJ2044小蜜蜂问题,萌新请教为啥一直报WA?
一只小蜜蜂… Problem Description 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。 其中,蜂房的结构如下所示。 Input 输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0<a<b<50)。 Output 对于每个测试实例,请输出蜜蜂从蜂房a爬到蜂房b的可能路线数,每个实例的输出占一行。 Sample Input 2 1 2 3 6 Sample Output 1 3 下面的是我的代码,一直在报错……怎么试都不知道哪里错的,哭了 ``` #include<stdio.h> int main(){ int i,j,num,a,b; long long int cnt[50]={0,1,2}; for(i=3;i<=50;i++) cnt[i]=cnt[i-1]+cnt[i-2]; scanf("%d",&num); while(num--){ scanf("%d%d",&a,&b); printf("%lld\n",cnt[b-a]); } return 0; } ``` 555谢谢大佬们了
c++ oj 题目,求大神帮忙
19:字符串移位包含问题 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。 给定两个字符串s1和s2,要求判定其中一个字符串是否是另一字符串通过若干次循环移位后的新字符串的子串。例如CDAA是由AABCD两次移位后产生的新串BCDAA的子串,而ABCD与ACBD则不能通过多次移位来得到其中一个字符串是新串的子串。 输入 一行,包含两个字符串,中间由单个空格隔开。字符串只包含字母和数字,长度不超过30。 输出 如果一个字符串是另一字符串通过若干次循环移位产生的新串的子串,则输出true,否则输出false。 样例输入 AABCD CDAA 样例输出 true 我的代码: ``` #include<bits/stdc++.h> using namespace std; int main() { char c[1001],s[1001]; cin>>s; cin>>c; if(strlen(s)<strlen(c)) swap(s,c); strcat(s,s); if(strstr(s,c)==0) cout<<"false"; else cout<<"true"; return 0; } ``` 本地运行是对的,一上oj就出现了Runtime error 啥原因。。
为什么这道题根据程序,样例可以正确输出,却不能在OJ上AC?是我的代码出问题了吗?
题目描述如下: ![图片说明](https://img-ask.csdn.net/upload/201912/28/1577529512_755416.png) ![图片说明](https://img-ask.csdn.net/upload/201912/28/1577529527_134470.png) 我的代码如下: ``` #include<stdio.h> int main() { int n,fin1,fin2; long a1=1,a2=1; char cx1,cx2; scanf("%d",&n); fflush(stdin); while((cx1=getchar())!='\n') { a1=a1*(cx1-64) /*计算出第一行的字母所代表的编号的乘积*/ } while((cx2=getchar())!='\n') { a2=a2*(cx2-64);/*计算出第二行的字母所代表的编号的乘积*/ } fin1=a1%n; /*用第一行的乘积取模*/ fin2=a2%n; /*用第二行的乘积取模*/ if(fin1==fin2) { printf("Attack!\n"); } else { printf("Stay\n"); } return 0; } ``` 自己测试了几组数据,都没有问题的,可是AC不了。来向各位大佬求助!
请问这个代码为什么oj上tuntime error了呀,小白求解?
![图片说明](https://img-ask.csdn.net/upload/202002/11/1581411651_49287.png) #include <iostream> using namespace std; int a[101]={0}; int main() { int n,i,j; cin>>n; for(i=2;i<=n;i++) for(j=1;j<=n;j++) { if(a[j]==0) { if(j==i||j%i==0)a[j]=1; } else { if(j==i||j%i==0)a[j]=0; } } for(i=1;i<=n;i++) if(a[i])cout<<i<<" "; return 0; }
OJ数据结构 Vector 谢谢大家
题目描述 你有一个基于动态分配数组的顺序表。表中的元素均为非负整数,且按照非递减的顺序排列,即对于任何相邻的前后两个元素,靠前的元素都小于等于靠后的元素。 动态分配数组的规则如下: 初始时,表中元素个数为 0,数组的容量为 2。 每当在表已满(元素个数等于数组容量)的情况下尝试插入新的元素,则将动态分配的数组容量扩容为原来的 2 倍。此次插入操作造成的表中已有元素移动的次数等于此操作发生之前表中元素的个数(也即扩容前的数组的容量)。 每当在删除元素的操作之前,如果表中的元素个数小于等于数组容量的四分之一,则将动态分配的数组容量缩减为原来的一半。此次删除操作造成的表中已有元素移动的次数等于此操作发生之前表中元素的个数减 1(因为要删除的元素不需要被移动)。 如果某次插入或删除操作没有引起数组容量的变化,则: 对于插入元素的操作,此次操作造成的表中已有元素移动的次数等于插入的位置之后原有元素的个数。如果表中有相同元素导致可插入的位置不唯一,则选择最靠后的位置插入,以便减小表中已有元素移动的次数。 对于删除元素的操作,此次操作造成的表中已有元素移动的次数等于被删除的元素之后原有元素的个数。同样地,如果表中有多个相同的元素,则选择最靠后的元素删除,以便减小表中已有元素移动的次数。 现在,给出一系列的操作,每个操作可以是插入一个元素或删除一个元素(保证要删除的元素一定存在),请你输出每次操作造成的表中已有元素移动的次数。 输入格式 从标准输入读入数据。 第一行输入操作的总次数 n。 接下来 n 行,每行输入一个操作。操作的格式可能是: A x 表示,在表中插入了一个值为 x 的元素; D x 表示,在表中删除了一个值为 x 的元素。 输入的所有元素都在 unsigned int 范围内,即 0≤x<232。 输出格式 输出到标准输出。 对于每次操作,输出一行。每行仅包含一个整数,表示此次操作造成的表中已有元素移动的次数。 样例1输入 9 A 10 A 20 A 10 A 10 D 10 D 20 D 10 D 10 A 0 样例1输出 0 0 2 1 1 0 0 0 0 样例1解释 第 3 次操作导致数组容量从 2 变为 4,造成了 2 次表中已有元素移动; 第 4 次操作造成了元素 20 的 1 次表中已有元素移动; 第 5 次操作造成了元素 20 的 1 次表中已有元素移动; 第 8 次操作导致数组容量从 4 变为 2,但是没有发生表中已有元素移动。 样例2输入 17 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 D 9 D 8 D 7 D 6 D 5 D 4 D 3 D 2 样例2输出 0 0 2 0 4 0 0 0 8 0 0 0 0 0 3 0 1 子任务 在所有的数据中,操作次数 n≤10000。 对于前 20% 的数据,输入中仅包含插入操作,且每次插入的元素是递增的。 对于前 60% 的数据,输入中仅包含插入操作。 (有兴趣的同学,可以思考 n 如果在 106 左右的规模,此题该怎么做?) 提示 你可以按照题意实现一个符合要求的顺序表,也可以采用其他方式,只要能够正确输出答案即可。
这个程序我自己在编译器上通过了,但是OJ上一直runtime error。各位大神可否帮我看看代码有什么问题吗?
这个程序我自己在编译器上通过了,但是OJ上一直runtime error。各位大神可否帮我看看代码有什么问题吗? #include <stdio.h> #include <string.h> #include <stdlib.h> #define MAX 1000 //对字符串进行拆分 void split(char shou[MAX],char flag[26][MAX][20],int num[26]){ //遍历整个数组 int i = 0; for(i = 0;i < 26;i++){ num[i] = 0; } char *p; char *q; p = q = shou;//初始化指针,使其指向shou的头部 while(*p){ if((*p >= 'a'&&*p <= 'z')||(*p >= 'A'&&*p <= 'Z')){ q = p; while((*p >= 'a'&&*p <= 'z')||(*p >= 'A'&&*p <= 'Z')){ if(*p >= 'A'&&*p <= 'Z'){ *p += 32; } p++; } int x = *q - 97;//得到应该储存的flag中的位置 strncpy(flag[x][num[x]],q,p-q);//实现复制操作 num[x] += 1; }else{ p++; } } } int comp(const void *a,const void *b) { // return *(char **)a - *(char **)b; return strcmp((char *)a,(char *)b) ; //字典序从小到大 } int main(){ //先想办法读入数组 char flag[26][MAX][20];//用flag做标志,省去排序的步骤 char shou[MAX]; int num[26];//用于储存每一个单词表里面存储的单词的数量 // gets(shou);//先将字符串读进来 //怎么把gets做一个替换 int m = 0; char ch; while((ch = getchar()) != EOF){ shou[m] = ch; m++; } split(shou,flag,num); int i,j,k; int count = 0; //找出其中num[i]不为零的总数量 for(i = 0;i < 26;i++){ if(num[i] != 0) count++; } for(i = 0;i < 26;i++){ if(num[i] != 0){ qsort(flag[i],num[i],sizeof(flag[i][0]),comp); //利用qsort函数进行快排 count--; printf("%c:",i + 65); for(j = 0;j < num[i];j++){ if(strcmp(flag[i][j+1],flag[i][j]) != 0){ printf(" %s",flag[i][j]); } } if(count!=0) printf("\n"); } } return 0; } 就是一个文本索引的题目,要求按字典排序,然后对于空格和换行有点特殊要求。
杭电oj第一题居然一直过不了
#include "stdio.h" int main() { int a,b; scanf("%d%d",&a,&b); printf("%d\n",a+b); return 0; } 运行不是好好的吗,怎么总是过不了
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
深析Synchronized关键字(小白慎入,深入jvm源码,两万字长文)
目录一、synchronized基础1.1synchronized的使用1.1示例1.2验证1.2.1 普通方法和代码块中使用this是同一个监视器(锁),即某个具体调用该代码的对象1.2.2 静态方法和代码块中使用该类的class对象是同一个监视器,任何该类的对象调用该段代码时都是在争夺同一个监视器的锁定1.2、synchronized的特点二、synchronized进阶2.1对象头2.2sy
GitHub 总星 4w+!删库?女装?表情包?这些沙雕中文项目真是我每天快乐的源泉!
大家好,我是 Rocky0429,一个喜欢在 GitHub 上瞎逛的蒟蒻… 好看的皮囊千篇一律,有趣的灵魂没有底线。作为全球最大的同性交友网站,GayHub GitHub 上不止有鲜活的代码,秃头的算法,还有很多拥有有(sha)趣(diao)灵魂的宝藏。 还记得我之前给大家介绍的 Sorry 项目嘛,一个可以自己做表情包的项目,这个的沙雕程度在下面这些项目面前只能算弟弟。虽然说沙雕不分国...
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
20道你必须要背会的微服务面试题,面试一定会被问到
这篇博客总结了面试中最常见的微服务面试题,相信对你有所帮助。
讲真,这两个IDE插件,可以让你写出质量杠杠的代码
周末躺在床上看《拯救大兵瑞恩》 周末在闲逛的时候,发现了两个优秀的 IDE 插件,据说可以提高代码的质量,我就安装了一下,试了试以后发现,确实很不错,就推荐给大家。 01、Alibaba Java 代码规范插件 《阿里巴巴 Java 开发手册》,相信大家都不会感到陌生,其 IDEA 插件的下载次数据说达到了 80 万次,我今天又贡献了一次。嘿嘿。 该项目的插件地址: https://github....
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
2020 年,大火的 Python 和 JavaScript 是否会被取而代之?
Python 和 JavaScript 是目前最火的两大编程语言,但是2020 年,什么编程语言将会取而代之呢? 作者 |Richard Kenneth Eng 译者 |明明如月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: Python 和 JavaScript 是目前最火的两大编程语言。然而,他们不可能永远屹立不倒。最终,必将像其他编程语言一...
C语言数字图像处理---1.4直方图拉伸和直方图均衡化
本篇将延续上一篇的内容,对直方图进行扩展,讲述直方图拉伸和直方图均衡化两个内容,并通过简单的C语言来实现这两个基础功能,让初学者通俗易懂。
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
没用过这些 IDEA 插件?怪不得写代码头疼
使用插件,可以提高开发效率。对于开发人员很有帮助。这篇博客介绍了IDEA中最常用的一些插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
推荐一些有趣的在线编程游戏
1.Robocode 让坦克们互相博弈的游戏,你可以看到它们飞奔,碾碎一切挡道的东西。机器人配有雷达与火炮,选手在躲避对手进攻的同时攻击对手,以此来较量得分的多少。这个游戏很有意思,曾经令我沉迷… 你可以用Java、Scala、C#等编程语言,编写人工智能程序,驱动机器人。 2.Code Combat Code Combat是一款学习编程的角色扮演游戏。每一关都用任务的形式设立目标,用实时的反馈...
工作十年的数据分析师被炒,没有方向,你根本躲不过中年危机
2020年刚刚开始,就意味着离职潮高峰的到来,我身边就有不少人拿着年终奖离职了,而最让我感到意外的,是一位工作十年的数据分析师也离职了,不同于别人的主动辞职,他是被公司炒掉的。 很多人都说数据分析是个好饭碗,工作不累薪资高、入门简单又好学。然而今年34的他,却真正尝到了中年危机的滋味,平时也有不少人都会私信问我: 数据分析师也有中年危机吗?跟程序员一样是吃青春饭的吗?该怎么保证自己不被公司淘汰...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
张朝阳回应迟到 1 分钟罚 500:资本家就得剥削员工
loonggg读完需要2分钟速读仅需 1 分钟大家我,我是你们的校长。前几天,搜狐的董事局主席兼 CEO 张朝阳和搜狐都上热搜了。原因很简单,就是搜狐出了“考勤新规”。一封搜狐对员工发布...
一个程序在计算机中是如何运行的?超级干货!!!
强烈声明:本文很干,请自备茶水!???? 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } ...
【蘑菇街技术部年会】程序员与女神共舞,鼻血再次没止住。(文末内推)
蘑菇街技术部的年会,别开生面,一样全是美女。
那个在阿里养猪的工程师,5年了……
简介: 在阿里,走过1825天,没有趴下,依旧斗志满满,被称为“五年陈”。他们会被授予一枚戒指,过程就叫做“授戒仪式”。今天,咱们听听阿里的那些“五年陈”们的故事。 下一个五年,猪圈见! 我就是那个在养猪场里敲代码的工程师,一年多前我和20位工程师去了四川的猪场,出发前总架构师慷慨激昂的说:同学们,中国的养猪产业将因为我们而改变。但到了猪场,发现根本不是那么回事:要个WIFI,没有;...
为什么程序猿都不愿意去外包?
分享外包的组织架构,盈利模式,亲身经历,以及根据一些外包朋友的反馈,写了这篇文章 ,希望对正在找工作的老铁有所帮助
Java校招入职华为,半年后我跑路了
何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...
立即提问