The biggest barrier by far between me and using Japanese effectively is lack of vocabulary. I'm very, very poor at memorizing specific things (as opposed to knowing that something exists and where to go to look up the details), and one of the keys to learning a foreign language, especially one as different from English as Japanese, is extensive memorization.
I decided recently to tackle this problem. To this end I've started using a flashcard program called Anki which uses spaced repetition. While there's a good bit of detail on the Anki site on how it works and how to use it, I found that certain important (to me, anyway) pieces of information were missing, and it took me quite a while to figure out both how Anki really works and how to customize it for my particular learning style.
There were two major issues I had with Anki: it's not configured by default for fairly intensive study (many sessions per day), and it didn't give me, a very poor memorizer, enough repetition of new words early on.
Anki seems mostly oriented around studying once a day, or at least studying any particular card no more than once a day once you've got it right once that day. I prefer to do a lot of short study sessions throughout the day, and have newish cards repeated in several sessions during the day even when I'm getting them correct. (I simply can't see a brand new word a few times and expect to remember it 24 hours later without some intervening repetition.)
I also found that with the default settings, I was running out of material to study after two or three sessions, frequently ending up at the "done for the day" screen, where my only option was to review early if I didn't want to learn some new cards. I've seem to be able to handle only 3-5 truly new items (as opposed to items new in Anki but that I've seen before elsewhere) per day before I get overloaded and can't remember any of the new material, so doing more new cards wasn't really an option for me.
The "only daily" issue was fixed fairly easily in by choosing Settings / Deck Properties... and clicking the "Advanced" tab. Unchecking "Per-day scheduling" made cards come due after the specified number of hours, rather than having them all come due at the beginning of the day even if they'd just been last reviewed a few hours earlier. I then set the initial button intervals down to hours instead of days. Button 2 I set to 0.12-0.16 days (3-4 hours) and button 3 to 0.33-0.5 days (8-12 hours); these mean that once I get a new card correct, I'll get another review (or perhaps several) the same day rather than having to wait until the next day. Button 4 I leave at 3-7 days, however; I use that for cards that are "new" in Anki but actually words I know quite well already.
These settings affect the initial interval, but the changes after that are based on fixed percentages of the old interval, and these can't be changed. The key here is to ignore the "good," "easy," etc. designations on the buttons and instead think of them as indications of how long you'd like to wait to see the card again. Generally, I consistently use button 2 (which gives a 20% increase) for my answer until I'm sure I want the card to go into the "review only every once in a while" category. Even there, if I feel the interval's getting a bit long, I hit 1 the next time the card comes up (even though I got it right) to reset the interval to the initial interval, whence I can extend it as quickly as necessary with the 2, 3 and 4 buttons. (If you do this, make sure that the "Button 1 multiplier" setting is set to 0% and the "Mature bonus" is set to 0 days, or this may not work.)
The next issue for me was how to get much, much more initial review on a new card until I'd really felt that I'd learned it. Far too frequently I was getting a card right, marking it so, but then discovered that a day or even a few hours later it had already slipped out of my mind.
For this I use the 1 button even after I've got the answer right. This keeps the card coming back every study session until I really feel I've gotten it burned into my memory. In other words, I consider the 1 button to mean "keep showing this to me frequently" rather than "I got it wrong." For this to work well, the "Leech threshold" in the deck properties needs to be changed to 99 (the maximum), and turning off "Suspend leeches" is probably a good idea as well. This I found to be no big loss; I can still easily suspend a card I feel is becoming a leech by just choosing "Suspend" from the menu when that card comes up.
The "Button 1 delay" in the deck properties also needs to be tweaked appropriately. This interacts with the session limit in the "Timeboxing" tab of the Study Options. I use three minute sessions and set the button 1 delay to five minutes; this ensures that I won't be shown the card again until a later session. It wouldn't be unreasonable to set this to an hour or more if you're doing short sessions more often, and don't want the card to come back every session.
So, with these settings, my general rule is to use the 1 button until I feel I've got the card known well enough that I feel I'll remember it for at least a day, the 2 button until I can answer the card pretty much instantly, and the default (space) button once I've reached that stage.
This means my reviews would be considered "inefficient" in Anki terms: I'm doing a lot more review on individual cards than I would be otherwise. This isn't really as big a deal as some would make it out to be; once I've got more or less instant recall on a card, a review only takes a couple of seconds if that. Thus, even if I'm doing a couple of hundred more reviews per day than I'd be doing otherwise, this adds only a few minutes a day to my study time. Trading a few minutes of unnecessary study for more quickly building very good recall seems well worthwhile to me.
New cards I tend to add quite slowly by default: 3-5 per day. The issue here is that I get overloaded quite quickly if there's a lot of truly new material. How much is really new can be hard to control, since my deck does include a lot of cards marked "new" that I already know (see below for more on this); I deal with this by finishing my reviews over the course of the day and then, at the "finished for now" screen, choosing "Learn More" and continuing with adding "new" cards until I've seen enough truly new ones that I'm satisfied.
If you want to quickly bulk up your current working set with things you already know from your deck that are still marked new, a handy way of doing this is to run through new cards this way, choosing 2, 3 or 4 for the ones you know, and use the Edit / Bury Fact option on the new cards you don't want to add. That option will temporarily suspend the card; quitting and restarting Anki will remove the suspension.
So this is how I use Anki. It may not be quite how it was designed to be used, and I've been told that I'm doing it "wrong" in terms of spaced repetition theory. But once I'd gotten this setup figured out, and started studying in 3-minute chunks every half hour to two hours throughout the day, my retention improved immensely.