рд╣рдо рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдХрдВрд╕реЛрд▓ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ



рдпрд╣ рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реЛрдЧреА рдЬреЛ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рдЬрд╛рд╡рд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдирдореВрдирд╛ рдХреЛрдб (рдЬреИрд╕реЗ рдореЗрдЯреНрд░реЛ, рдорд┐рдиреАрдмрд╕, рдХреИрдлреЗ, рдЖрджрд┐) рдореЗрдВ рдХрд╛рдо рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдПрдХ рдкреАрд╕реА рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред

рдЗрд╕ рд╢реЗрдпрд░ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рддрдм рдкреИрджрд╛ рд╣реБрдИ рдЬрдм рдореИрдВ OCJP рдкреНрд░рдорд╛рдгрди рдХреА рддреИрдпрд╛рд░реА рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЗрд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдлрд▓ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рд╣рдмреНрд░реЛрд╕реЛрдХреЗрдЯреАрд╡рд┐рдЯреА рдХреЗ рд╕рдореНрдорд╛рдирд┐рдд рд╕рджрд╕реНрдпреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд▓реИрдкрдЯреЙрдк рдирд╣реАрдВ рд╣реИ, рдФрд░ рдПрдХ рдХрдк рдЪрд╛рдп рдХреЗ рд╕рд╛рде рд░рд╕реЛрдИ рдореЗрдВ рдмреИрдардХрд░ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдкрд░ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реБрдЖ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдЙрджрд╛рд╣рд░рдг рдЖрдорддреМрд░ рдкрд░ рдХрдВрд╕реЛрд▓ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рджрд┐рдП рдЧрдП рд╣реИрдВред рдЕрджреНрднреБрдд рд╡реАрдбрд┐рдпреЛ рдЙрдкрдХрд░рдг рдЖрдкрдХреЛ рдЧреНрд░рд╣рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреНрд╖рдорддрд╛, рдЕрдлрд╕реЛрд╕, рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдВрд╕реЛрд▓ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдмрд┐рдВрджреБ рдЫреЛрдЯрд╛ рд╣реИ - UI рдирд┐рдпрдВрддреНрд░рдг рдкрд░ I / O рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:

private static OutputStream mOutputStream = new OutputStream() { @Override public void write(int b) { MainActivity.getInstance().write((byte)b); } }; @Override public void onCreate(Bundle savedInstanceState) { ... System.setOut(new PrintStream(mOutputStream)); System.setErr(new PrintStream(mOutputStream)); ... } 


рдХрдВрд╕реЛрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо onResume() рд╣реИрдВрдбрд▓рд░ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рд╕реЗ рдЕрд▓рдЧ рдереНрд░реЗрдб рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ:

  @Override public void run() { try { // //     // Program.main(new String[0]); } catch (Throwable ex) { //      setErrorColor(); ex.printStackTrace(); } } 


рдпрд╣рд╛рдВ рдЖрдк рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ args ред рдЙрджрд╛рд╣рд░рдг - 10 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП BankTellerSimulation рд╢реБрд░реВ BankTellerSimulation :

 BankTellerSimulation.main(new String[] { "10" }); 


рдХрдИ рдереНрд░реЗрдбреНрд╕ рдХрд╛ рдХрд╛рдо рд╕рдорд░реНрдерд┐рдд рд╣реИ ( SimpleThreadsTest ):



HorseRace рдФрд░ BankTellerSimulation рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ ( рдЬрд╛рд╡рд╛ рдореЗрдВ рдерд┐рдВрдХрд┐рдВрдЧ рд╕реЗ рдмреНрд░реВрд╕ BankTellerSimulation рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдП рдЧрдП) рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред

рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐рдпреЛрдВ

ErrorTest рдЙрджрд╛рд╣рд░рдг:

 class FuuuuuuException extends RuntimeException { public FuuuuuuException(String message) { super(message); } } ... throw new FuuuuuuException("!!!TROLLFACE!!!"); 


рд╣рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рдорд┐рд▓рддрд╛ рд╣реИ:



рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐

рдЕрдВрдд рдореЗрдВ, рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрдВрд╕реЛрд▓ рдЗрдирдкреБрдЯ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдм рддрдХ, Android рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдореЗрд░рд╛ рдЬреНрдЮрд╛рди рдорд╣рд╛рди рдирд╣реАрдВ рд╣реИред рдХрд┐рд╕реА рддрд░рд╣ рдореИрдВ EditText рдХреЛ рдкреБрд╢ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рд╕рд╣реА рдирд╣реАрдВ рд╣реИ :)

рд▓рд╛рдЗрди рдЗрдирдкреБрдЯ рдкреНрд░реЙрдореНрдкреНрдЯ ( ReadingInputTest ):



рдЕрдЧрд▓рд╛:



рдореЗрдиреВ рдХрд╛рд░реНрдп

System.exit(0) рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ ред

"рд╡рди-рдЯрд╛рдЗрдо" рдХрд╛рд░реНрдпрдХреНрд░рдоред рдмрд╛рд░-рдмрд╛рд░ рдкреБрдирд░рд╛рд░рдВрдн рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ (рдореИрдВ рд╕реНрдерд┐рд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛)ред

рдХреНрдпрд╛ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдПрдХ рдмрдбрд╝рд╛ рд░рд╣рд╕реНрдпред

рдХреНрдпрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛

тАв assert рдЬрд╛рд╡рд╛ред рдпрд╛рдиреА рдСрдкрд░реЗрдЯрд░

 assert "Cat".equals("Dog"); 

рдЕрдкрд╡рд╛рдж java.lang.AssertionError рдирд╣реАрдВ рдлреЗрдВрдХреЗрдВрдЧреЗред JUnit рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рд╣реЛрдиреЗ рдХреА рдирд╣реАрдВ - рдЙрдирдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ! "
тАв Console рдХреНрд▓рд╛рд╕ред
тАв рдЗрдирдкреБрдЯ рдХреНрд╖реЗрддреНрд░ рд╣рдореЗрд╢рд╛ рдлреЛрдХрд╕ рдХреЛ рдкрдХрдбрд╝рддрд╛ рдирд╣реАрдВ рд╣реИред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реЗрдВ

рдЧреАрдерд╣рдм рд╕реЗ рд╕реНрд░реЛрдд рд▓рд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдФрд░ рдПрдХреНрд▓рд┐рдкреНрд╕ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд░реНрдгрд┐рдд рдЙрджрд╛рд╣рд░рдг com.examples рдкреИрдХреЗрдЬ рдореЗрдВ рд╣реИрдВред рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рдкреАрд╕реА рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд┐рдирд╛ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╣рд░ рдЬрдЧрд╣ рднрд╛рдЧреЛ!)ред

Source: https://habr.com/ru/post/In162741/


All Articles