Moduļa 3.2. vingrinājumi

exercise31: Jaunu īpašību pievienošana

  • Sakompilēt un palaist aplikāciju TestProperties.java, kura noskaidro visas Jūsu platformā esošās sistēmas īpašības
  • Sakompilēt un palaist ReadProperties.java, kura nolasa īpašības no faila "properties.txt", pievieno jaunu īpašību, un raksta īpašības atpakaļ failā "properties1.txt".
  • Pievienot aplikācijai "ReadProperties.java" koda fragmentu, kurš izdrukā vispirms visas tās īpašības, kuru nosaukumi sākas ar "lv.alise", bet pēc tam visas citas īpašības. Iteratori un cikli, ar kuriem to var izdarīt ir doti aplikācijā "TestProperties.java".
  • Pārliecināties, kāds ir faila "properties1.txt" saturs. Vai tur ir īpašība "lv.alise.property3"?
  • Vai "properties1.txt" satur visas sistēmas īpašības, kuras Jūs izdrukājāt uz konsoles? Kāpēc?
  • Noskaidrot kāda ir "user.timezone" īpašības vērtība. Mēģināt izmainīt laika joslu Windows sistēmā un palaist vēlreiz.

exercise32: Ātrdarbības mērījums

  • Sakompilēt un palaist doto programmu Fibonacci.java, kura dala pirmreizinātājos F(n) - n-to Fibonači virknes locekli. Palaist to argumentam 67:
    java Fibonacci 67
    
  • Pārliecināties, ka jums ir skaidras metodes no klases java.math.BigInteger
  • Atkomentējiet sekojošas rindas programmā Fibonacci.java:
    //              ff = null; 
    //              gg = null; 
    //              System.gc();
    

    lai atbrīvotu virtuālo atmiņu.

  • Vai koda izpilde argumentam 67 kļūst ātrāka? Kas notiek, ja aizkomentē tikai vienu rindiņu System.gc(), t.i. uztic "ff" un "gg" savākšanu automātiskajam drazu savācējam? Vai ar System.gc() izsaukumu kādreiz var panākt koda paātrināšanos?

exercise33: Metodes "Runtime.exec()" niķi

  • Sakompilēt un palaist failu "ExecJavac.java" (NEKOMPILĒT klasi "Hello"). Pārliecināties, ka pēc "ExecJavac" metodes palaišanas ir palaists kompilators uz "Hello.java".
  • Izveidot jaunu aplikāciju analoģiski iepriekšējai, kura palaiž komandu "java Hello", lai iegūtu programmas "Hello" izvadu un atgriešanās kodu.
  • Analoģiski iepriekšējām ir veidota arī aplikācija ExecNetstat0.java. Vai tā tiešām izpilda sekojošo komandrindu?
    cmd /C netstat -an
    
  • Samainīt failā ExecNetstat0.java vietām divas "plūsmu aprīšanas" rindiņas:
                            gobble("ERR", br_err); 
                            gobble("OUT", br_out); 
    

    tā, lai to secība būtu sekojoša:

                            gobble("OUT", br_out); 
                            gobble("ERR", br_err); 
    

    Vai programmu tagad var palaist?

  • Sakompilēt un palaist daudzpavedienu aplikāciju ExecNetstat.java

exercise34: Manipulācijas ar laiku

  • Izmantojot klasi java.util.Date, noskaidrot laiku (gadu, mēnesi, datumu, stundu, minūti un sekundi) kas būs tieši pēc 109 (1 miljards) milisekundēm kopš programmas palaišanas brīža. Varat izmantot Date(long) konstruktoru un dažādās "getXxx()" metodes. Rezultātu attēlot formā:
    YYYY-MM-DD HH:MM:SS
    
  • Sakompilēt to ar "-deprecation" karodziņu un palaist
  • Uzrakstīt citu - modificētu programmu, kura dara to pašu, bet nesatur nožēlojamās (deprecated) metodes. Iespējams vajadzēs izmantot "GregorianCalendar" klasi un tās metodes.