Why am I getting NullPointerException when I'm not dereferencing anything that's pointing to Null? int playerNum,cardNum; Cards card=null;           for(playerNum=0;playerNum&lt;=NUMPLAYERS-1;playerNum++) {      //some code...                  for(cardNum=1;cardNum&lt;=5;cardNum++)     {      card=( deckOfCards.deal() );       players[playerNum].setHand_1by1(card);//I get NullPointerException for using the method here                       //some code...                          } }   class Hand  {      private Cards[] hand=new Cards[5];      private int counter;            //no constructor, just a setter.      public void setHand_1by1(Cards card)      {          if(counter&gt;=hand.length)          {              System.out.printf(&quot;Hand is full&quot;);          }          else          {              hand[counter]=card;              counter++;          }               } //some code... }  I understand that you get a NullPointerException when you try to dereference something that's pointing to nothing(ie null). 1)But card of Cards type is pointing to something due to the method deckOfCards.deal() so that's not the problem, must be something in the method. 2)In the setHand_1by1(), hand[counter] is of Cards type.  All I did was make it point to valid memory containing data of Cards type in the else block. Why am I then getting a NullPointerException error? Edit: Just showing how I created my players: Hand[] players=new Hand[NUMPLAYERS];
What is a NullPointerException, and how do I fix it? What are Null Pointer Exceptions (java.lang.NullPointerException) and what causes them?  What methods/tools can be used to determine the cause so that you stop the exception from causing the program to terminate prematurely?
Does Stack Exchange use caching and if so, how? Recently, I read this  about how they have some of their infrastructure laid out. I was curious to know, does Stack Exchange use caching (both at the application layer and/or database layer) and if so, how? Exit strategies for "chameleon questions" I'm not sure if there's already an existing term for this, so I'm inventing my own. (tl;dr: I call them &quot;chameleon questions&quot; because they change every time you submit or edit an answer.  If you're already intimately familiar with the phenomenon, please skip past the first set of bullet points to where I ask for recommendations.)  I think many of us have experienced this on occasion:  You open up a narrow-looking question, usually dealing with some specific error message.  The question probably contains a snippet of sloppy but not quite awful code; code indicating that the author, typically a new/low-rep user, possibly a , doesn't really know what they're doing.  I'm not trying to be condescending here, they're probably very intelligent and hardworking, but in this specific case, they're clearly in way over their head.  However, as a question, it's not really too bad.  The goal and problem are both clearly stated.  The code is formatted (sort of).  Mort was polite and checked their spelling.  The question looks answerable, although from a rep perspective* it's an obvious dead-end, it's had maybe 3 views in the past 30 minutes.  So you decide, you know what, this person took the time to write up the question properly, they deserve an answer, put on your good citizen hat and throw them a bone.  You slog through the ugly code, find the offending line, direct their attention to it and explain why it's wrong and how it needs to be fixed.  Later, they leave a comment saying that yes, that was indeed the problem and your answer helped them fix it (great!).  Oh, but, now there's another problem (uh-oh...). Something else is broken.  After letting out a long sigh, you read the comment and/or edited question, roll up your sleeves, and write up Take 2, hoping that's the end of it.  And of course it's not the end.  Now maybe the error is gone, but it's not doing what it's supposed to.  If you're anything like me, your patience is now starting to wear thin. It's lousy code and you didn't volunteer to help them rewrite their whole app.  And of course, the question still only has 12 views, and nobody has upvoted either the question or your answer, including the person you're helping, so this is turning out to be a genuinely thankless task in all respects.  Welcome to &quot;Family Tech Support&quot;, Web 2.0 Edition.   * Which is of course just an arbitrary number that none of us care about. Not really, anyway. Not very much, at least.  So, here's where I get to my question.  At this point, do you:  Leave a comment, stating as politely as possible that you've done your best to help them answer the original question they asked, and if they have a new problem then they should start a new question?  (I did this once, and actually ended up with an accept, but I felt kind of guilty afterwards, I don't think anybody answered their 2nd question).  Bite the bullet and edit your answer a 3rd, 4th, 5th time, however many times it takes to resolve their issue, knowing full well that they may not even remember to accept the answer once you're done? (I may work for free on SO, but that doesn't mean my time is worthless.)  Just abandon the question, hoping that it will force Mort to start thinking for himself?  Something else?   I've tried all three of the above and none of them ever quite feel right. I do want to help, but at the same time there are a lot more &quot;lucrative&quot; questions I could be answering. And I don't mind spending a lot of time on an answer either, if the question is interesting or important to me, but debugging is dull work. I'd prefer not to reference specific questions here; I'm pretty sure that this is a shared experience, and my objective isn't to point fingers at &quot;misbehaving&quot; members.  I'm more looking for some practical advice on how to dig myself out of these pits of despair. Anybody have any other ideas? Suppose that $f:\Bbb R\to \Bbb R$ is continuous and that $f(x)\to 0$ as $x\to \pm\infty$. Prove that $f$ is uniformly continuous.   Since $f(x)\to 0$ as $x\to \pm\infty$ we have $|f(x)|&lt;\epsilon $ whenever $x&lt;-K$ and $x&gt;K$ where $K&gt;0$.  Also $f$ is uniformly continuous on $[-K,K]$ as the domain is compact.  Hence $f$ is uniformly continuous in $(-\infty,-K)\cup [-K,K]\cup (K,\infty)$.  But how to conclude that $f$ is uniformly continuous on $\Bbb R$ from above as I may chose $x\in (-\infty,-K);y\in [-K,K]$ ,how to conclude that $|f(x)-f(y)|&lt;\epsilon $ from above for a given $\epsilon$?  Please suggest the edits required. "turn down the volume" or "turn the volume down" - phrasal verb structure I'm learning about phrasal verbs, but I'm not sure if I'll use them correctly. Which one of the following phrasal verb uses correct:  -I don't know how to turn down the volume? -I don't know how to turn the volume down?  I always think that they're same, but lately I feel like there must be a rule how to use them correctly, or perhaps they get different meanings? Is there a missing definite article before caliph in 'the group's leader, XYZ, as (the) caliph'? I read news on the BBC (on its website) this morning. When I was reading the news I noticed the definite article the was missing in a sentence. As per my opinion, the reporter missed the article the. But I also thought that the reporter also had some point as he did not use the article there. So I just wanted to confirm so landed here to get some help on it.     On the website:      It also proclaimed the group's leader, XYZ  (name), as caliph and   "leader for Muslims everywhere".      As per my opinion it should have been:      It also proclaimed the group's leader, XYZ  (name), as the caliph and   "leader for Muslims everywhere".   Source link: CPU Emulation and locking to a specific clock speed If you had read my other , you'll know I've spent this weekend putting together a 6502 CPU emulator as a programming exercise.  The CPU emulator is mostly complete, and seems to be fairly accurate from my limited testing, however it is running incredibly fast, and I want to throttle it down to the actual clock speed of the machine.  My current test loop is this:      // Just loop infinitely.     while (1 == 1)     {                         CPU.ClockCyclesBeforeNext--;          if (CPU.ClockCyclesBeforeNext &lt;= 0)         {             // Find out how many clock cycles this instruction will take             CPU.ClockCyclesBeforeNext = CPU.OpcodeMapper.Map[CPU.Memory[CPU.PC]].CpuCycles;              // Run the instruction             CPU.ExecuteInstruction(CPU.Memory[CPU.PC]);              // Debugging Info             CPU.DumpDebug();             Console.WriteLine(CPU.OpcodeMapper.Map[CPU.Memory[CPU.PC]].ArgumentLength);              // Move to next instruction             CPU.PC += 1 + CPU.OpcodeMapper.Map[CPU.Memory[CPU.PC]].ArgumentLength;                                                 }     }   As you can tell, each opcode takes a specific amount of time to complete, so I do not run the next instruction until I count down the CPU Cycle clock. This provides proper timing between opcodes, its just that the entire thing runs way to fast.  The targeted CPU speed is 1.79mhz, however I'd like whatever solution to the clock issue to keep the speed at 1.79mhz even as I add complexity, so I don't have to adjust it up.  Any ideas? Assume $f:\mathbb R\rightarrow  {\mathbb R} $ is Lebesgue integrable, prove $\sum_{n\in\mathbb N } f(x+n)$ converges for almost everywhere x. This is a question discussed with friends. Thanks One of us is wrong, aren't we? I have just learned from what I consider a reliable source, that the following sentence is correct:     One of us is wrong, aren't we?   I would never in my life have written this, but I am assured that   As I realize comments don't live forever I will quote the relevant parts:     oerkelens : So you  would really write One of us is wrong, aren't we? I guess by analogy you would not bat an eyelid at One of these balls is blue, aren't they?   Matt Эллен : yes, "Then one of us is wrong, aren't we?" is exactly how it would be written. Same for the balls.   Could someone please enlighten me how it is possible that the number in a question tag supposedly has to be in discordance with the subject of the main clause?  I admit that I am not the youngest any more, and my school days are long gone, but back in the days, I was taught that  1. a verb and its subject concord in number 2. a question tag concords with the subject of the main clause  I was given examples like:     It is warm today, isn't it?   We will be on time, won't we?   Mary is pretty, isn't she?   John isn't the brightest, is he?   Some people may notice that the subject of the main clause seems to determine every time the subject of the question tag. When the main clause subject is singular, so are verb and subject in the question tag.  I was under the impression that a) this made sense and b) this would be a general rule.  I fully realize that grammar does not have to make sense, so a) is immaterial. As for b), today I learned I was wrong :)  So when (and possibly why?) do we form question tags that are different in number from their main clause?   To exemplify, also the other example sentence that I used and was corrected on:     One of these balls is blue, isn't it? (so this is wrong)   One of these balls is blue, aren't they? (and this is correct)   As an afterthought, does this strange grammatical number mix-up only appear in question-tags, or should I always refer to singular subjects in the plural if certain conditions are met? And what are those conditions?  Which versions are correct?     One of the cars is broken, aren't they? They (the car(s?) that is(are?) broken) should be fixed.   One of the cars is broken, aren't they? It (the car that is broken) should be fixed.   One of us must be wrong, mustn't we? We (the one(s?) that is (are?) wrong) should make amends.   One of us must be wrong, mustn't we? He (the one that is wrong) should make amends.   (In the last one, they could of course be used as the singular they, but that would avoid the issue...) Does someone knows if it exists some ppa packages source for the newest Ubuntu version 19.10 i had problem with that when i upgraded from Ubuntu 19.04 to 19.10 i didn't work? I did a dumb thing... I forgot that Ubuntu 10.04 (Lucid Lynx) switched to &nbsp;2 which puts a ton of *.mod files (kernel modules) in /boot/grub. I thought they were soundtrack files put there erroneously, and I moved them. Needless to say, the next reboot was traumatic. I was presented with something I had no memory of ever seeing... a 'grub rescue>' prompt.  With the help of  however, I was able to recover...   I discovered that GRUB rescue does not have 'cd', 'cp' or any other filesystem commands except its own variation of 'ls'. So first I had to find the partition with the /boot directory containing vmlinuz file and other boot image files... (approximation from memory of failed attempts, as well as blank lines for clarity, added 2014-07-10 by docsalvage)    grub rescue&gt;  ls   (hd0,4) (hd0,3) (hd0,2) (hd0,1)    grub rescue&gt;  ls (hd0,4)/boot ... some kind of 'not found' message  grub rescue&gt;  ls (hd0,3)/boot ... some kind of 'not found' message  grub rescue&gt;  ls (hd0,2)/boot ... grub ... initrd.img-2.6.32-33-generic ... vmlinuz-2.6.32-33-generic   I found a /boot directory containing the vmlinuz file vmlinuz-2.6.32-33-generic on partition (hd0,2). Then I manually booted from the 'grub rescue>' prompt. The following commands will...   Set the root to use the /boot directory on partition (hd0,2). Load kernel module linux. Set that module to use the kernel image vmlinuz-2.6.32-33-generic. Set initrd(initialize RAM disk) to use the image initrd.img-2.6.32-33-generic. Boot Linux.  grub rescue&gt;  set root=(hd0,2)/boot   grub rescue&gt;  insmod linux   grub rescue&gt;  linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic root=/dev/sda2 grub rescue&gt;  initrd (hd0,2)/boot/initrd.img-2.6.32-33-generic   grub rescue&gt;  boot    This boots and crashes to the BusyBox prompt which DOES have some rudimentary filesystem commands. Then I moved the *.mod files back to the /boot/grub directory...  busybox&gt;  cd /boot   busybox&gt;  mv mod/* grub busybox&gt;  reboot  The reboot was successful, but that was a lot of work.   Is there an easier way? Inheritance in Java - creating an object of the subclass invokes also the constructor of the superclass. Why exactly? I have a question about inheritance in Java.  I have two classes A and B , and class B, inherits from A:  public class A {      public A() {          System.out.println("Hi!");      } }   public class B extends A {      public B() {          System.out.println("Bye!");      }       public static void main(String[] args) {          B b = new B();      } }   When I run program B, the output is:  Hi! Bye!      Question : why the constructor of class A is invoked, when I create and object of class B ?    I know that B inherits everything from A - all instance or class variables, and all methods, and in this sense an object of B has all characteristics of A plus some other characteristics defined in B. However, I didn't know and didn't imagine that when I create an object of type B, the constructor of A is also invoked. So, writing this:  B b = new B();   creates Two objects - one of type B, and one of type A.  This is getting interesting,   can somebody explain why exactly this happens? Do I need to play previous Witchers before Witcher3 I'm thinking about buying The Witcher 3 and I know it's heavily based on a story/narrative.   For the story/narrative to make sense, do I need to play the previous 2 Witcher games - or are the stories for each title independent of one another? It's not like there's anything else to do.   Shouldn't the speaker say: "There's something else to do." ? so what's the meaning of the sentence and what's the difference between the two of them? Thank you, I have a long running BASH script that I am running under CYGWIN on Windows.  I would like to limit the script to run for 30 seconds, and automatically terminate if it exceeds this limit. Ideally, I'd like to be able to do this to any command.  For example:  sh-3.2$ limittime -t 30 'myscript.sh'   or   sh-3.2$ limittime -t 30 'grep func *.c'   Under cygwin the ulimit command doesn't seem to work.   I am open to any ideas. How can I report bugs with or request features for the Stack Exchange mobile apps? I'm using the official Stack Exchange mobile app for iOS or Android, and  My app crashed! It doesn't look good on my new smartphone. It won't run after I updated my device. I noticed another bug. I have an idea for a new feature which is currently not in the app.  How do I report bugs with or request features for the iOS and Android apps? Also:  I've used the built-in functionality of the app to report a bug or submit a feature request. Did I do the right thing? The app prompted me to post on Meta after an error occurred. Should I post about it here? I'm wondering why the latest version is from 2017. I've heard rumors that the apps are no longer supported; is that true? I can't find the app on my device's app store anymore! Where did it go?     We get a lot of bug reports from users about the mobile apps, which are unsupported, and at the moment, there is no centralized Q&amp;A pair for those to be closed as duplicates of (the relevant answers are spread across multiple unrelated questions). This question is an FAQ proposal, to serve as a directly-related duplicate target for those questions. I use Chrome as my main browser.  I also spend a lot of time on a particular webapp that my company uses.  I'd like to keep those two things separate.  I can run the webapp in a separate window - but I'd like to go further than that.  I'd like to have it be identified by a different task in the Win 7 taskbar; ideally a different icon; and ideally a different title in Process Monitor.  How can I run a second, independent instance of Chrome, with a different title and icon, that won't merge with my main Chrome browser. How do I simplify: $$\sum_{r = 0}^{\lfloor \frac{k}{2} \rfloor} \dbinom{k}{2r} \cdot \dbinom{n-k}{k-2r}?$$ Basically, the sum is: $\dbinom{k}{0} \cdot \dbinom{n-k}{k} + \dbinom{k}{2} \cdot \dbinom{n-k}{k-2} + \dbinom{k}{4} \cdot \dbinom{n-k}{k-4} \cdots.$ This seems very similar to Vandermonde's Identity but because we skip two everytime instead of one, I don't see how I can apply it to this problem. Let us go   is a correct construction in the English language and definitely not:     Let we go   However, the question is: since us is an object-case pronoun, what is the subject of this sentence? Calculate $I=\int_0^1\frac{\ln(1+x)}{1+x^2}\,dx$ How can I calculate the integral $I=\int_0^1\frac{\ln(1+x)}{1+x^2}\,dx$ by substituting $t=\frac{1-x}{1+x}$. Is there anything I can do about someone who has pointed their domain at my ip? This is kind of a weird request. For some reason whoever owns safeandbuy.com has pointed their domain at my IP address. The reason it's a problem is that I'm having all kinds of crawlers that are trying to crawl my site with that domain name.   Is there anything I can do about this?