Java в то время цикла цикл построить который постоянно выполняет блок операторов, в то время как условие остается верным.

Синтаксис в то время как петля на Яве это:


while (expression) {

   statement

}

Вот Java в то время как цикл, который печатает цифры от 1 до 10.


int loopvar = 1;                 // Declare and initialize the loop counter

while (loopvar <= 10) {          // Test and loop

   System.out.println(loopvar);  // Print the variable

   loopvar = loopvar + 1;        // Increment the loop counter

}

В некоторых приложений некоторых задач необходимо периодическое выполнение например GUI экран должен обновить данные с сервера периодически.

Это Java советы иллюстрации метода планирования задач на периодической основе. Разработчики могут использовать его для повторного применение метода в соответствии с их требованиями.

Для этой цели, сначала вы должны сделать класс расширения TimerTask абстрактный класс и писать код работать метод, вы хотите запустить многократного.


import java.util.TimerTask;



public class HeartBeatTask extends TimerTask{



  private int timerInterval;



  public HeartBeatTask(int timeInterval){

    this.timerInterval=timeInterval;

  }



  public void run() {

    // add the task here

  }



}

В вашей основной программы можно назвать настоящим Кодексом планировать задачи:


  java.util.Timer t1 = new java.util.Timer();



  HeartBeatTask tt = new HeartBeatTask(timeInterval);

  t1.schedule(tt, 0, timeInterval);

Теперь задача будет повторять за фиксированный промежуток времени.

В манифесте файл JAR, можно определить класс, которые будут использоваться при JVM является lauched с JAR в качестве параметра. Класс должен иметь основной ().

Попробуйте с этой простой класс:


import java.awt.*;

import java.awt.event.*;



public class MyClass {

 public static void main(String[] args) {

    Frame f = new Frame();

    f.addWindowListener

          (new WindowAdapter() {

              public void windowClosing(WindowEvent e) {

                 System.exit(0);

                 }

              }

    );

    f.add(new Label("Hello world"));

    f.setSize(200,200);

    f.setVisible(true);

   }

}

Затем создать этот файл манифеста (manifest.mft) с любым текстовым редактором.

Manifest-Version: 1.0
Main-Class: MyClass
Classpath: .\MyJar.jar

Далее, вы включите файл манифеста в банке (MyJar.jar) с MyClass класс.

jar cvfm MyJar.jar manifest.mft MyClass.class

Тогда вы сможете начать MyClass.class двойным щелчком по файлу MyJar.jar (если JRE правильно установлен), либо введя

java -jar MyJar.jar

В NT, вы можете также сделать JAR-запускать из командной строки, установив переменную PATHEXT окружающей среды, например

set PATHEXT=.EXE;.BAT;.CMD;.JAR

Тогда, если у вас есть банк файла MyJar.jar доступна через переменную окружения PATH, набрав "MyJar" на строку DOS команды будут ссылаться на "Java-Jar MyJar.jar".

В компьютерной науке, бинарных деревьев поиска (BST) является бинарным деревом, которое обладает следующими свойствами:

  • Each node has a value.
  • A total order is defined on these values.
  • The left subtree of a node contains only values less than or equal to the node’s value.
  • The right subtree of a node contains only values greater than or equal to the node’s value.

Основным преимуществом бинарных деревьев поиска является то, что соответствующие алгоритмы сортировки и поиска алгоритмов, таких, как в порядке обхода может быть очень эффективным.

Двоичные деревья поиска основные структуры данных, используемые для построения более абстрактных структур данных, таких как наборы, мультимножеств и ассоциативные массивы.

Следующий код показывает, как реализовать бинарное дерево поиска в Java:


// BinarySearchTree class

//

// CONSTRUCTION: with no initializer

//

// ******************PUBLIC OPERATIONS*********************

// void insert( x )       --> Insert x

// void remove( x )       --> Remove x

// void removeMin( )      --> Remove minimum item

// Comparable find( x )   --> Return item that matches x

// Comparable findMin( )  --> Return smallest item

// Comparable findMax( )  --> Return largest item

// boolean isEmpty( )     --> Return true if empty; else false

// void makeEmpty( )      --> Remove all items

// ******************ERRORS********************************

// Exceptions are thrown by insert, remove, and removeMin if warranted



/**

 * Implements an unbalanced binary search tree.

 * Note that all "matching" is based on the compareTo method.

 @author Mark Allen Weiss

 */

public class BinarySearchTree {

    /**

     * Construct the tree.

     */

    public BinarySearchTree( ) {

        root = null;

    }

    

    /**

     * Insert into the tree.

     @param x the item to insert.

     @throws DuplicateItemException if x is already present.

     */

    public void insertComparable x ) {

        root = insertx, root );

    }

    

    /**

     * Remove from the tree..

     @param x the item to remove.

     @throws ItemNotFoundException if x is not found.

     */

    public void removeComparable x ) {

        root = removex, root );

    }

    

    /**

     * Remove minimum item from the tree.

     @throws ItemNotFoundException if tree is empty.

     */

    public void removeMin( ) {

        root = removeMinroot );

    }

    

    /**

     * Find the smallest item in the tree.

     @return smallest item or null if empty.

     */

    public Comparable findMin( ) {

        return elementAtfindMinroot ) );

    }

    

    /**

     * Find the largest item in the tree.

     @return the largest item or null if empty.

     */

    public Comparable findMax( ) {

        return elementAtfindMaxroot ) );

    }

    

    /**

     * Find an item in the tree.

     @param x the item to search for.

     @return the matching item or null if not found.

     */

    public Comparable findComparable x ) {

        return elementAtfindx, root ) );

    }

    

    /**

     * Make the tree logically empty.

     */

    public void makeEmpty( ) {

        root = null;

    }

    

    /**

     * Test if the tree is logically empty.

     @return true if empty, false otherwise.

     */

    public boolean isEmpty( ) {

        return root == null;

    }

    

    /**

     * Internal method to get element field.

     @param t the node.

     @return the element field or null if t is null.

     */

    private Comparable elementAtBinaryNode t ) {

        return t == null null : t.element;

    }

    

    /**

     * Internal method to insert into a subtree.

     @param x the item to insert.

     @param t the node that roots the tree.

     @return the new root.

     @throws DuplicateItemException if x is already present.

     */

    protected BinaryNode insertComparable x, BinaryNode t ) {

        ift == null )

            t = new BinaryNode);

        else ifx.compareTot.element )

            t.left = insertx, t.left );

        else ifx.compareTot.element )

            t.right = insertx, t.right );

        else

            throw new DuplicateItemExceptionx.toString( ) );  // Duplicate

        return t;

    }

    

    /**

     * Internal method to remove from a subtree.

     @param x the item to remove.

     @param t the node that roots the tree.

     @return the new root.

     @throws ItemNotFoundException if x is not found.

     */

    protected BinaryNode removeComparable x, BinaryNode t ) {

        ift == null )

            throw new ItemNotFoundExceptionx.toString( ) );

        ifx.compareTot.element )

            t.left = removex, t.left );

        else ifx.compareTot.element )

            t.right = removex, t.right );

        else ift.left != null && t.right != null // Two children

        {

            t.element = findMint.right ).element;

            t.right = removeMint.right );

        else

            t = t.left != null ? t.left : t.right;

        return t;

    }

    

    /**

     * Internal method to remove minimum item from a subtree.

     @param t the node that roots the tree.

     @return the new root.

     @throws ItemNotFoundException if x is not found.

     */

    protected BinaryNode removeMinBinaryNode t ) {

        ift == null )

            throw new ItemNotFoundException( );

        else ift.left != null ) {

            t.left = removeMint.left );

            return t;

        else

            return t.right;

    }

    

    /**

     * Internal method to find the smallest item in a subtree.

     @param t the node that roots the tree.

     @return node containing the smallest item.

     */

    protected BinaryNode findMinBinaryNode t ) {

        ift != null )

            whilet.left != null )

                t = t.left;

        

        return t;

    }

    

    /**

     * Internal method to find the largest item in a subtree.

     @param t the node that roots the tree.

     @return node containing the largest item.

     */

    private BinaryNode findMaxBinaryNode t ) {

        ift != null )

            whilet.right != null )

                t = t.right;

        

        return t;

    }

    

    /**

     * Internal method to find an item in a subtree.

     @param x is item to search for.

     @param t the node that roots the tree.

     @return node containing the matched item.

     */

    private BinaryNode findComparable x, BinaryNode t ) {

        whilet != null ) {

            ifx.compareTot.element )

                t = t.left;

            else ifx.compareTot.element )

                t = t.right;

            else

                return t;    // Match

        }

        

        return null;         // Not found

    }

    

    /** The tree root. */

    protected BinaryNode root;

    

    

    // Test program

    public static void mainString [ ] args ) {

        BinarySearchTree t = new BinarySearchTree( );

        final int NUMS = 4000;

        final int GAP  =   37;

        

        System.out.println"Checking... (no more output means success)" );

        

        forint i = GAP; i != 0; i = i + GAP % NUMS )

            t.insertnew Integer) );

        

        forint i = 1; i < NUMS; i+= )

            t.removenew Integer) );

        

        if( ((Integer)(t.findMin( ))).intValue( ) != ||

                ((Integer)(t.findMax( ))).intValue( ) != NUMS - )

            System.out.println"FindMin or FindMax error!" );

        

        forint i = 2; i < NUMS; i+=)

            if( ((Integer)(t.findnew Integer) ))).intValue( ) != i )

                System.out.println"Find error1!" );

        

        forint i = 1; i < NUMS; i+=) {

            ift.findnew Integer) ) != null )

                System.out.println"Find error2!" );

        }

    }

}





// Basic node stored in unbalanced binary search trees

// Note that this class is not accessible outside

// of this package.



class BinaryNode {

    // Constructors

    BinaryNodeComparable theElement ) {

        element = theElement;

        left = right = null;

    }

    

    // Friendly data; accessible by other package routines

    Comparable element;      // The data in the node

    BinaryNode left;         // Left child

    BinaryNode right;        // Right child

}





/**

 * Exception class for duplicate item errors

 * in search tree insertions.

 @author Mark Allen Weiss

 */

public class DuplicateItemException extends RuntimeException {

    /**

     * Construct this exception object.

     */

    public DuplicateItemException( ) {

        super( );

    }

    /**

     * Construct this exception object.

     @param message the error message.

     */

    public DuplicateItemExceptionString message ) {

        supermessage );

    }

}





/**

 * Exception class for failed finds/removes in search

 * trees, hash tables, and list and tree iterators.

 @author Mark Allen Weiss

 */

public class ItemNotFoundException extends RuntimeException {

    /**

     * Construct this exception object.

     */

    public ItemNotFoundException( ) {

        super( );

    }

    

    /**

     * Construct this exception object.

     @param message the error message.

     */

    public ItemNotFoundExceptionString message ) {

        supermessage );

    }

}

Когда программа обнаруживает исключительные условия, она бросает исключение, как IOException, IllegalArgumentException т.д.

Иногда отсутствие стандартного класса достойно представляет исключительные условия. В этом состоянии программист может выбрать для создания своего собственного класса исключения.

Для создания нашего собственного исключения существующего типа исключения наследуются, желательно, что близко по смыслу к новому исключение.

Этот код показывает использование исключения, определяемый пользователем. В этом коде ApplicationException это исключения, определяемый пользователем.


public class ApplicationException extends Exception {



  private int intError;

  

  ApplicationException(int intErrNo){

    intError = intErrNo;

  }



  ApplicationException(String strMessage){

    super(strMessage);

   }



   public String toString(){

    return "ApplicationException["+intError+"]";

   }  

}



class ExceptionDemo{



  static void compute(int athrows ApplicationException{



    System.out.println("called compute(" +a +" )");



    if(a>10){

      throw new ApplicationException(a);

    }



    System.out.println("NORMAL EXIT");

  }



  public static void main(String[] args) {



    try{

      compute(1);

      compute(20);



    }catch(ApplicationException e){

      System.out.println("caught " + e);

    }

  }

}

Вывод:

called comute(1 )
mohti
called comute(20 )
caught ApplicationException[20]

Этот совет Java иллюстрирует метод определения того, когда приложение собирается выйти. Заявка может быть прекращено в различных ситуациях. Например, нормальное завершение может быть вызван призывом к System.exit (), завершение последнего Non-демона нить, или прерывание приложения (Control-C) пользователем. Аварийное завершение (которая не приводит к закрытию темы для начала) обусловлена некоторыми крупными вины в виртуальной машине Java или родной библиотеке. Когда приложение завершается обычно, применение первого запуска прекращены любые зарегистрированные потоки, ждет их полное и, наконец, завершает работу.


    Runtime.getRuntime().addShutdownHook(new Thread() {

        // This method is called during shutdown

        public void run() {

            // Do shutdown work ...

        }

    });

Статическая переменная, также называется переменная класса, является переменной, которая существует между экземплярами класса.

Противоположное статическая переменная является экземпляром переменной, которая является переменной, связанной с одного экземпляра класса. Создается каждый раз, когда экземпляр класса, система создает одну копию экземпляра переменных, относящихся к этому классу.

По умолчанию, все переменные, созданные как например переменные. Для того чтобы переменная класса, вы должны четко заявить статическая переменная.