两个for循环,下一个for的变量不能是上一个for的变量?

不太懂为什么?

import java.util.Scanner;

public class B1022 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int A = in.nextInt();
        int B = in.nextInt();
        int P = in.nextInt();
        int C = A + B;
        int []numD = new int[100];


        while(C != 0)
        {
            for (int i = 0; i < 100; i++)
            {
                numD[i++] = C % P;
                C = C / P;              
            }           
        }
         /*如何把未知长度的数组倒着输出*/
        for (int x = i - 1; x >= 0; x--)   /*error: i cannot be a variable*/
        {
            System.out.print(numD[x]);
        }       
        in.close();
    }

}


6个回答

括号{}标记了变量i的作用域,超出作用域之后就不能被解析器识别。

import java.util.Scanner;

public class B1022 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int A = in.nextInt();
int B = in.nextInt();
int P = in.nextInt();
int C = A + B;
int []numD = new int[100];

    while(C != 0)
    {
        for (int i = 0; i < 100; i++)
        {
            numD[i++] = C % P;
            C = C / P;              
        }           
    }
     /*如何把未知长度的数组倒着输出*/
    for (int x = 100 - 1; x >= 0; x--)   /*error: i cannot be a variable*/
    {
        System.out.print(numD[x]);
    }       
    in.close();
}
sinat_38214562
女青年与西西 所以对于for循环的变量只可以在这个for循环内使用是么?
2 年多之前 回复

我觉得在第一个for循环可以定义一个count次数,这样数组的长度就有了。

这是一个 作用域的问题,你可以在看下 相关资料。每个变量的作用域。

sinat_38214562
女青年与西西 谢谢!
2 年多之前 回复

我觉得你可以在上面的for循环定义一个count次数,这样你就可以循环了多少次,数组的长度就有了。

我觉得你可以在上面的for循环定义一个count次数,这样你就可以循环了多少次,数组的长度就有了。

外循环循环的是内循环,当外循环循环一次,内循环循环完所有的次数,外循环循环几次,内循环就把所有的循环循环几次,就想秒针走六十个小格分针才走一格,分针就等于外循环,秒针就是内循环

我都佩服自己完美的解释

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Php for循环有2个变量?

<div class="post-text" itemprop="text"> <p>is it possible to do this? (here is my code)</p> <pre><code>for ($i = 0 ; $i &lt;= 10 ; $i++){ for ($j = 10 ; $j &gt;= 0 ; $j--){ echo "Var " . $i . " is " . $k . "&lt;br&gt;"; } } </code></pre> <p>I want something like this:</p> <p>var 0 is 10</p> <p>var 1 is 9</p> <p>var 2 is 8 ...</p> <p>But my code is wrong, it gives a huge list. Php guru, help me !!</p> </div>

关于Java语言for循环内外变量定义的问题

今天被TeamLeader批了一顿,本来想和他争论争论的,后来感觉自己也不清楚,遂只有来Iteye讨教讨教了。 这是个关于在for循环内外变量定义的问题,先看代码: [code="java"] public class Test2 { public static void main(String[] args) { // 放入10000000的元素 List<Object> list = new ArrayList<Object>(10000000); for(int i = 0; i < 10000000; i++) { list.add(i, new Object()); } // 做10次循环,求均值 for(int j = 0; j < 10; j++) { // 变量在循环内定义 long t1 = System.currentTimeMillis(); for(Iterator<Object> iterator = list.iterator(); iterator.hasNext();) { Object object = iterator.next(); } long t2 = System.currentTimeMillis(); System.out.println("循环内" + (j + 1) + "次, 时间:" + (t2 - t1) + ";"); // 变量在循环外定义 t1 = System.currentTimeMillis(); Object object = null; for(Iterator<Object> iterator = list.iterator(); iterator.hasNext();) { object = iterator.next(); } t2 = System.currentTimeMillis(); System.out.println("循环外" + (j + 1) + "次, 时间:" + (t2 - t1) + ";"); } } } /*其中一次的运行结果 * * 变量在循环内定义 变量在循环外定义 *1次循环 359 359 *2次循环 360 343 *3次循环 344 360 *4次循环 359 359 *5次循环 344 359 *6次循环 360 359 *7次循环 360 359 *8次循环 344 359 *9次循环 344 359 *10次循环 344 359 */ [/code] 我在工作中有一段代码是放到循环内定义的,主要是习惯,以及变量最小作用域的理念。但teamleader告诉我要放到循环外面,放在里面性能不好,不太理解。这个问题发生后,我也在网络寻找答案,但结果差不多一半一半,有建议在内部定义,也有建议在外部定义,所以就更糊涂了...我现在所知道的有:在内部定义,满足变量最小作用域的理念,循环外没有使用这个变量,该变量就不会在循环外定义;但teamleader说在内部定义会多次申请栈内存,影响性能,但我写了上面的例子和查了下资料,也没有弄太清这里面是如何影响性能的,请帮助详细讲解下两种定义方式的好坏,及其原因,和jdk版本是否有关系。

为什么这两个for循环变量会给我不同的行为?

<div class="post-text" itemprop="text"> <p>I'm seeing different behavior in my program that's tied to this particular loop in my program but I'm not sure I understand why it's behaving the way it is. </p> <pre class="lang-golang prettyprint-override"><code>//global variable var cmds = []string { "create", "delete", "update", } func loop1() { actions := make(map[string]func()) for _, cmd := range cmds { actions[cmd] = func() { fmt.Println(cmd) } } for _, action := range actions { action() } } func loop2() { actions := make(map[string]func()) for i, cmd := range cmds { command := cmds[i] actions[cmd] = func() { fmt.Println(command) } } for _, action := range actions { action() } } </code></pre> <p>The output for <code>loop1()</code> is </p> <pre><code>update update update </code></pre> <p>The output for <code>loop2()</code> is </p> <pre><code>delete update create </code></pre> <p>I went looking on the <a href="https://tour.golang.org/moretypes/16" rel="nofollow noreferrer">internet</a> and read the following</p> <blockquote> <p>When ranging over a slice, two values are returned for each iteration. The first is the index, and the second is a copy of the element at that index</p> </blockquote> <p>It says a copy, so does that mean it returns a copy of the string but it's really a pointer to variable <code>cmd</code>? In which case any references to <code>cmd</code> will by the end of the loop all actually reference the last element in the array, e.g. <code>update</code>? Does this mean that elements of an array should always be referenced by their index when using the <code>range</code> method, and what's the use case for using the element it returns since it's always updating the pointer?</p> </div>

在Golang中,为什么我可以在for循环中多次重定义相同的变量,但是不能在循环之外?

<div class="post-text" itemprop="text"> <p>I have the following program.</p> <pre class="lang-golang prettyprint-override"><code>package main import ( "fmt" ) func main() { for i := 0; i &lt; 2; i++ { x := 77 fmt.Println(x) } } </code></pre> <p>When executed I got:</p> <pre><code>77 77 </code></pre> <p>As we can see, the <code>x := 77</code> has been execute 2 times. However, If I modify it slightly like this:</p> <pre class="lang-golang prettyprint-override"><code>package main import ( "fmt" ) func main() { a := 77 fmt.Println(a) a := 77 fmt.Println(a) } </code></pre> <p>I will get the error "no new variables on left side of <code>:=</code>". Why this? Can anyone help to explain it please? Thanks in advance.</p> </div>

高分悬赏-java语言里for循环中间有一个冒号是什么意思

java语言里for循环中间有一个冒号是什么意思,有两个分号是什么意思

c++里面的两个for循环的问题?

为什么不能运行?大佬们![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/12.gif)![图片](https://img-ask.csdn.net/upload/201703/03/1488531705_410944.jpg)

R语言中for循环与图片变量的问题

我是一个R语言初学者,在使用For循环画图遇到一个问题,首先我有两个基因名,利用For语言画图得到p1,p2;最后我想要使用CombinePlots将得到的所有的p1,p2....组合起来, 我希望能够根据我输入基因的数量n,在plots = list()里自动生成p1,p2,p3...到pn,不需要手动去输入p1,p2,p3...到pn,但是一直找不到方法实现,我不知道我阐述的够不够清楚 ``` a = 0 for (i in c("Gene1","Gene2")){ a = a+1 assign(paste("p",a,sep=""),VlnPlot(pro, features = i, pt.size=0,use.raw = TRUE, y.log = TRUE)+labs(x = "", y = i, title = "")) } pic <- CombinePlots(plots = list(p1,p2),ncol=ncols,legend = "none") ``` 下面这个命令纯粹只是一个画图的命令,得到p1这张图与第一个基因Gene1对应 ``` assign(paste("p",a,sep=""),VlnPlot(pro, features = i, pt.size=0,use.raw = TRUE, y.log = TRUE)+labs(x = "", y = i, title = "")) ```

关于Java变量的值以及一个简单的for循环语句

for(int i=2,j=1; j<10; i=(i==9)?(((++j)/j)+1):(i+1)){ System.out.printf("%d*%d=%2d%c",i,j,i*j, ((i==9)?'\n':' ')); } 打印九九乘法表。 (++j)/j+1中j和++j的值是怎么变化的?每一次循环j的值不是都应该加1吗? 谢谢各位

两个FOR循环嵌套的小代码,求运算过程

public static void main (String args[]) { int i,j; first_loop; for(i=1;i<50;i++) { for(j=2;j<i;j++) if(i%j==0) continue first_loop: System.out.println(i): } }

如何做到只有两个变量在while里循环输入

说不大清楚看一下代码吧 写的有点乱 我对这个问题的理解是 通过scanf函数给一个变量A “赋值”后这个值能不能在后面被替换掉 第一个函数是我想自己创一个函数用来输入 但是发现本质是一样的 while 里的第一次循环是对的 但是第二次输入数据到两个变量时就输出不了了 求大神解答 我知道其他的解决办法 比如跳到外面输入或者goto语句 #include "stdio.h" #include "stdlib.h" float scan(void); float scan(void) { float a; scanf("%f",&a); return a; } void cls(); void cls() { getchar(); getchar(); system("cls"); } float jiafa(float a,float b); float jiafa(float a,float b) { return a+b; } int main() { int i,a,b; char jiafachoose; float a,b,c; while(1) { printf("\t1.+fa\n\t2.-fa\n\t3.*fa\n\t4./fa\n"); scanf("%d",&i); switch (i) { case 1 : printf("please input tuo number\n"); a=scan(),b=scan(); printf("%f",jiafa(a,b)); while (1) { printf("continue? y or n\n"); while((jiafachoose=getchar())!='\n'){ continue; } if((jiafachoose=getchar())=='y') { printf("please input two number\n"); a=scan(); b=scan(); printf("%f",jiafa(a,b)); } else if((jiafachoose=getchar())=='n') { break; } cls(); } break; } } return 0; }

matlab的for循环产生一个二维数组,如何把每一次的数据存到一个大数组里,以备后用?

请大神帮忙看看如何修改一下这份1程序代码,for产生数据如何放入大数组。 这是自己编的一个程序,其中有两个输入,一个是alpha,一个是gamma,范围都是1-90°,现在是我的循环是是根据三个方程求解[x,y,z],但求解的xyz都是二维的数组,我如何将每次循环的这些数组里的值存放到一个大的数组里,以备后面根据xyz进行空间绘图,因为老提醒索引超出维数,或产生全是0的结果![图片说明](https://img-ask.csdn.net/upload/201811/08/1541683504_818045.png)

为什么在同一个for语句中,另个for语句不能通用一个字符串数组

Scanner input = new Scanner(System.in); int dataCount = input.nextInt();//数据组数 int dataline = input.nextInt();//数据行数 int x = 0;//用于计算机器人移动距离 String[] dataStr = new String[dataline + 1];//用于存储数据 for(int i = 0;i < dataCount;i++){ for(int n = 0;n < dataStr.length;n++){ dataStr[n] = input.nextLine();//将控制面板的信息进行存储 } /*测试字符串内容是否为null for(int n = 0;n < dataStr.length;n++){ System.out.println(dataStr[n]); }*/ for(int n = 0;n < dataStr.length;n++){//机器人移动判定 System.out.println(dataStr[n]); while(!dataStr[n].equals("LEFT") && !dataStr[n].equals("RIGHT")){ char[] c = dataStr[n].toCharArray(); int lastNumber = Integer.parseInt(String.valueOf(c[c.length - 1])); dataStr[n] = dataStr[lastNumber - 1]; } if(dataStr[n].equals("LEFT")) x--; if(dataStr[n].equals("RIGHT")) x++; } System.out.println(x); x = 0; } ``` ``` 我在for语句中嵌套了两个独立的for循环语句,第一个用来从控制面板输入字符串,第二个用来判定,但是字符串数组在第二个for语句里面为null,而在注释掉的那个for 语句里面输出的字符串数组里面的内容,又是我在控制面板输入的

sh脚本怎么循环读取文件的每一行,切割并且赋值给不同的变量呢?

有一个文件知道它的路径,里面有下面这些内容, 123456 233445 244556 想用sh脚本做一个 循环读取这个文件的每一行,(只需要读取文件第一个字符是2的,第一条1的不读取) 然后吧读到的内一行的内容进行切割 第2-3个字符 赋值给一个变量 第4-5个字符 赋值给另外一个变量 第6个字符 再赋值给一个变量 字符每行的位置是固定的 请问各位大神怎么实现?sh脚本从来没有接触过,最好麻烦帮忙注释一下,菜鸟可能看不懂,谢谢了!

PHP:根据foreach循环中另一个变量的变化增加变量

<div class="post-text" itemprop="text"> <p>I have a foreach loop that prints the history of line item changes in my application. Each line item has a number, and each line item can have multiple changes.</p> <p>What I want to do is display the line number alongside each change when my loop executes. <code>$i</code> will hold the line number.</p> <pre><code>$i = 1; foreach($lineItem as $line) { echo $i; //line number echo $line['field_changed']; echo $line['change_date']; echo $line['change_from']; echo $line['change_to']; } </code></pre> <p>The code reads from a DB table called <code>line_item_changes</code> with the following structure:</p> <pre><code>id line_id parent_id -- ------- --------- 1 2401 521 2 2401 521 3 2401 521 4 2500 521 5 2502 521 6 2502 521 </code></pre> <p>I want to increment <code>$i</code> every time the value in <code>$line['line_id']</code> changes. So that, when the results display, they look something like this:</p> <pre><code>Line #: 1 field: notes date: 10/9/2018 from: test to: test2 Line #: 1 field: quantity date: 10/1/2018 from: 4 to: 3 Line #: 2 field: need_date date: 10/1/2018 from: 10/24/2018 to: 10/27/2018 </code></pre> <p>etc.</p> </div>

C语言 数据结构 创建链表的时候,在for循环中的变量是否每次循环结束都被销毁

如题,先谢谢大神解答。 ![图片说明](https://img-ask.csdn.net/upload/201610/04/1475513733_456747.png) ![图片说明](https://img-ask.csdn.net/upload/201610/04/1475513745_903732.png)

C语言如何用for循环构建2*2矩阵

2*2矩阵: 1 2 3 4 很简单的矩阵 不过不用scanf输入 直接用for循环输出 我想的方法是定义一个变量x=1,然后在for循环里面,每一次x++存入数组 代码: ``` #include<stdio.h> int main() { int a[2][2]; int i,j,x=1; for(i=0;i<2;i++) for(j=0;j<2;j++) { a[i][j]=x; x++; } printf("%d\n",a[i][j]); return 0; } ``` 输出结果只有1,实在不解

在Go中循环两个变量

<div class="post-text" itemprop="text"> <p>The following for loop in Go isn't allowed,</p> <pre><code>for i := 0, j := 1; i &lt; 10; i++, j++ {...} </code></pre> <p>What's the correct equivalent of the for-loop of two variables below?</p> <pre><code>for (int i = 0, j = 1; i &lt; 10; i ++ , j ++) {...} </code></pre> </div>

for循环中i变量 i++与++i

此时的先加和后加会不会影响到for循环 应该是没有影响把? 因为我做了测试 代码如下 ``` # include <stdio.h> # include <stdlib.h> # include <windows.h> int main () { int sum = 0; int i ; printf("(i++)后加的结果为\n"); for(i =1;i<=100;i++) { sum=sum+i; printf("i=%d\n",i); } printf("退出循环后i的值为:%d\n",i); printf("------------------------\n"); printf("(++i)先加的结果为"); sum=0; for(i=0;i<=100;++i) { sum=sum+i; printf("i=%d\n",i); } printf("退出循环后i的值为:%d\n",i); return 0; } ``` 运行结果: (i++)后加的结果为 i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8 i=9 i=10 i=11 i=12 i=13 i=14 i=15 i=16 i=17 i=18 i=19 i=20 i=21 i=22 i=23 i=24 i=25 i=26 i=27 i=28 i=29 i=30 i=31 i=32 i=33 i=34 i=35 i=36 i=37 i=38 i=39 i=40 i=41 i=42 i=43 i=44 i=45 i=46 i=47 i=48 i=49 i=50 i=51 i=52 i=53 i=54 i=55 i=56 i=57 i=58 i=59 i=60 i=61 i=62 i=63 i=64 i=65 i=66 i=67 i=68 i=69 i=70 i=71 i=72 i=73 i=74 i=75 i=76 i=77 i=78 i=79 i=80 i=81 i=82 i=83 i=84 i=85 i=86 i=87 i=88 i=89 i=90 i=91 i=92 i=93 i=94 i=95 i=96 i=97 i=98 i=99 i=100 退出循环后i的值为:101 ----------------------- (++i)先加的结果为i=0 i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8 i=9 i=10 i=11 i=12 i=13 i=14 i=15 i=16 i=17 i=18 i=19 i=20 i=21 i=22 i=23 i=24 i=25 i=26 i=27 i=28 i=29 i=30 i=31 i=32 i=33 i=34 i=35 i=36 i=37 i=38 i=39 i=40 i=41 i=42 i=43 i=44 i=45 i=46 i=47 i=48 i=49 i=50 i=51 i=52 i=53 i=54 i=55 i=56 i=57 i=58 i=59 i=60 i=61 i=62 i=63 i=64 i=65 i=66 i=67 i=68 i=69 i=70 i=71 i=72 i=73 i=74 i=75 i=76 i=77 i=78 i=79 i=80 i=81 i=82 i=83 i=84 i=85 i=86 i=87 i=88 i=89 i=90 i=91 i=92 i=93 i=94 i=95 i=96 i=97 i=98 i=99 i=100 退出循环后i的值为:101

2重for循环,如何循环赋值,以及判定求和的条件

我这里先给个程序的样板,有可能是错误的啊,老铁,帮忙给看看啊。谢谢啦。 #include "stdafx.h" #include #include int main() { int a, b, i = 0; int sum = 0; int b1[4] = {2,4,3 }; int b2[4] = { 3,4,2 }; for (a = 1; a <= 3; a++) b1[a] = 2; b1[a] = 4; b1[a] = 3; /* 这里是第一个for循环,就是希望能够循环赋值给一个数组,具体想要实现的功能是: 当a=1的时候,b1[1]=2,然后把这个数字存储到数组,方便下面做sum求和用。 当a=2的时候,b1[2]=4,然后把这个数字存储起来,方便下面做sum求和用。 当a=3的时候,b1[3]=3,然后把这个数字存储起来,方便下面做sum求和用。 */ for (b = 1; b <= 3; b++) b2[b] = 3; b2[b] = 4; b2[b] = 2; /* 这里是第二个for循环,就是希望能够循环赋值给一个数组,具体想要实现的功能是: 当b=1的时候,b1[1]=3,然后把这个数字存储到数组,方便下面做sum求和用。 当b=2的时候,b1[2]=4,然后把这个数字存储起来,方便下面做sum求和用。 当b=3的时候,b1[3]=2,然后把这个数字存储起来,方便下面做sum求和用。 */ sum = b1[a] + b2[b] ; /* 刚刚是希望能够循环给for 赋值,现在是希望能够根据刚刚的不同的值,来循环判定sum的和。*/ if (sum == 6) { printf("A:%2d B:%2d ", b1[a], b2[b]); /* 如果sum等于6,那么把b1[a],b2[b]的值打印出来。*/ i++; if (i % 1 == 0) printf("\n"); /* i用了统计次数,看看总共有多少种组合方法。每一种方法i都自动加1*/ } printf("共有%d种办法\n", i); return 0; } 希望看见的运行结果是 :( b1[1] = 2 + b2[2] = 4 ) ==6 ==sum ( b1[3] = 3 + b2[1] = 3 ) ==6 ==sum ( b1[2] = 4 + b2[3] = 2 ) ==6 ==sum ...... 共有x种办法; 注意:1 : 可以不用数组来赋值。也可以用变量,但是我要求的值是特定的值,比如当 b ==1的时候,某一个变量要等于3,然后要用这个变量来参与sum求和。判定为6的时候,把该变量打印出来。 2 :帮我看看sum 和那个等式有没有循环来判定,我是希望每一次循环都能判定一次sum求和 4:帮我看看我用for循环,循环赋值的时候是不是错啦?因为那个数组好像是从0开始的,我希望能够从1开始,如果要是从1开始,我给数组赋初值的时候是不是也赋值错啦。可以不用我的程序,我只是想演练一下自己的要实现的功能。 3 :小程序,也不难,希望能够帮我写一个完整的小程序。希望能够保留的功能是,有多少种办法也就是i能够算清楚。然后,sum=6所涉及的2个变量的值的全部组合情况能够全部打印出来。最后希望程序能够尽量简单一点,有个main函数就可以啦。最好是在我原来代码的基础上简单的改动一下。不要用count 这些编译器会报错。我用的是vs2015。希望用的包能够提醒一下。我好导入进去。 下面我把注释删掉:给一个完整程序,帮我修改一下: #include "stdafx.h" #include #include int main() { int a, b, i = 0; int sum = 0; int b1[4] = {2,4,3 }; int b2[4] = { 3,4,2 }; for (a = 1; a <= 3; a++) b1[a] = 2; b1[a] = 4; b1[a] = 3; for (b = 1; b <= 3; b++) b2[b] = 3; b2[b] = 4; b2[b] = 2; sum = b1[a] + b2[b] ; if (sum == 6) { printf("A:%2d B:%2d ", b1[a], b2[b]); i++; if (i % 1 == 0) printf("\n"); } printf("共有%d种办法\n", i); return 0; } 有的朋友给出啦如下的解决方案: #include "stdafx.h" #include "windows.h" int main() { int c = 0; int sum = 0; int b1[4] = { 2,4,3 }; int b2[4] = { 3,4,2 }; for (int i = 0; i<4; i++) { for (int j = 0; j<4; j++) { sum = b1[i] + b2[j]; if (sum ==6) { printf("A:%2d B:%2d \n ", b1[i], b2[j]); c++; } } } printf("共有%d种办法\n", c); system("pause"); return 0; } 运行结果为: ![图片说明](https://img-ask.csdn.net/upload/201803/07/1520415307_142968.png) 但是我把参数修改成sum ==4的时候,运行结果为: ![图片说明](https://img-ask.csdn.net/upload/201803/07/1520415345_376426.png) 4+0 ==4。这个不是我想要看到的结果,我只是希望能看到2+2==4,也就是说 sum要求的和值4,必须的出自b1[]和b2[]这两个数组。但是4是出自于数组b1[],0是从哪里跑出来的呀?我不需要这个0。 能不能不用数组来赋值,用变量。用数组的话,感觉数组很复杂。

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

ArrayList源码分析(入门篇)

ArrayList源码分析 前言: 写这篇博客的主要原因是,在我上一次参加千牵科技Java实习生面试时,有被面试官问到ArrayList为什么查找的速度较快,插入和删除的速度较慢?当时我回答得不好,很大的一部分原因是因为我没有阅读过ArrayList源码,虽然最后收到Offer了,但我拒绝了,打算寒假学得再深入些再广泛些,下学期开学后再去投递其他更好的公司。为了更加深入理解ArrayList,也为

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

玩转springboot启动banner定义所得

最近接手了一个springboot项目,不是不熟悉这个框架,启动时打印的信息吸引了我。 这不是我熟悉的常用springboot的打印信息啊,我打开自己的项目: 还真是的,不用默认的感觉也挺高大上的。一时兴起,就去研究了一下源代码,还正是有些收获,稍后我会总结一下。正常情况下做为一个老程序员,是不会对这种小儿科感兴趣的,不就是一个控制台打印嘛。哈哈! 于是出于最初的好奇,研究了项目的源代码。看到

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

你打算用Java 8一辈子都不打算升级到Java 14,真香

我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

立即提问
相关内容推荐