Программное обеспечение Java имеет два отдельных связках исходный код, который вы можете получить на безвозмездной основе:

  • The Java 2 SDK, Standard Edition itself contains a file called src.zip that contains the source code for the public classes in the java package. Because this does not contain sun.* classes, you cannot do a complete build of the Java technology from these source files. These source files are for your information, to supplement the documentation, so you can see how Java technology works.
  • The full source code release is available from us by going to the Community Source Code Licensing web site..

Источник: Часто задаваемые вопросы о Java

Защищенный метод может быть вызвана любой подкласс в своем классе, но не unreleated классы.

Объявление способа, охраняемого определяет свой уровень доступа. Другие варианты для объявления видимости являются частные и государственные. Если необъявленная, уровень доступа по умолчанию является пакет.

ProtectedMethod () метод является частным методом в следующий класс:


public class MyClass {



    private void privateMethod() {

        System.out.println("I am private method");

    }



    void packageMethod() { 

        System.out.println("I am package method");

    }



    protected void protectedMethod() {

        System.out.println("I am protected method");

    }



    public void publicMethod() {

        System.out.println("I am public method");

    }

StringBuffer представляет собой совокупность класс String, которая обеспечивает большую часть функциональности струн. Строка представляет фиксированной длины, неизменные последовательности символов. В отличие StringBuffer представляет growable и записи последовательностей символов. StringBuffer обеспечивает 3-конструкторов, которые создают, инициализировать и установить первоначальный потенциал объекта StringBuffer. Этот класс предоставляет много методов. Например, длина () метод дает текущий т.е. длину, сколько знаков есть в строке, а общий потенциал выделило можно найти потенциал () метод.


public class StringBufferDemo {



  public static void main(String[] args) {



    StringBuffer sb =new StringBuffer("Hello");

    System.out.println("buffer= " +sb);

    System.out.println("length= " +sb.length());

    System.out.println("capacity= " +sb.capacity());

  

    //appending and inserting into StringBuffer.

    String s;

    int a = 42;

    StringBuffer sb1= new StringBuffer(40);

    s= sb1.append("a=").append(a).append("!").toString();

    System.out.println(s);

    StringBuffer sb2 = new StringBuffer("I JAVA!");

    sb2.insert(2"LIKE");

    System.out.println(sb2);

    

  }



}

Вывод на экран

buffer= Hi Rohit
length= 8
capacity= 24
a=42!
I LIKEJAVA!

ArrayList класс является конкретным осуществлением Список интерфейса. Этот класс поддерживает динамические массивы, которые могут расти по мере необходимости. В Java, стандартных массивов фиксированной длины. После массивы созданы, они не могут расти или уменьшаться, а значит, вы должны заранее знать, сколько элементов массива будет проводить. Однако, иногда вы не можете знать, как большой массив вам нужно. Чтобы справиться с этой ситуацией, сбор рамки определил класс ArrayList. Цель этого может динамически увеличивается или уменьшается в размерах.


import java.util.ArrayList;



public class AraryListDemo {



  public static void main(String[] args) {



    ArrayList al = new ArrayList();

    System.out.print("Initial size of al :  " + al.size());

    System.out.print("\n");



    //add.elements to the array list

    al.add("C");

    al.add("A");

    al.add("E");

    al.add("B");

    al.add("D");

    al.add("F");

    al.add(1,"A2");//inserts objects "A2" into array at index 1



    System.out.print("size of al after additions " + al.size());

    System.out.print("\n");



    //display the array list

    System.out.print("contents of al: " +  al );

    System.out.print("\n");



    //Remove elements from the array list

    al.remove("F");

    al.remove(2);



    System.out.print("size of after deletions : " + al.size());

    System.out.print("\n");

    System.out.print("contents of al:" + al);

    

  }



}

Вывод на экран:

Initial size of al:  0
size of al after additions 7
contents of al: [C, A2, A, E, B, D, F]
size of after deletions : 5
contents of al:[C, A2, E, B, D]

Быстрая сортировка является хорошо известный алгоритм сортировки, разработанный CAR Хора, что в среднем, составляет

Быстрая сортировка сортов, применяя разделяй и властвуй стратегия разделить список на два суб-листы.

Шаги:

  1. Pick an element, called a pivot, from the list.
  2. Reorder the list so that all elements which are less than the pivot come before the pivot and so that all elements greater than the pivot come after it (equal values can go either way). After this partitioning, the pivot is in its final position. This is called the partition operation.
  3. Recursively sort the sub-list of lesser elements and the sub-list of greater elements.

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

Быстрая сортировка с Медиана-оф-три функции перегородки почти такой же, как нормальный быстрой сортировки с той лишь разницей, каким опорного пункта выбран. В нормальной быстрой сортировки первого элемента будет автоматически пункта стержень. Это приводит к быстрой сортировки нормальное функционирование очень неэффективно при предъявлении уже отсортированный список. Отдел будет всегда в конечном итоге, производящая одно суб-массива без каких-либо элементов и один со всеми элементами (минус, конечно же, пункт Pivot). В быстрой сортировки с срединно-троих перегородки пункта стержнем выбирается как среднее между первым элементом, последний элемент, а средний элемент (решили помощью целочисленного деления п / 2). В тех случаях, уже отсортированных списков этой связи должна быть среднего элемента в качестве опорного сокращая тем самым inefficency найти в нормальном QuickSort.

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


    /**

     * Quicksort algorithm.

     @param a an array of Comparable items.

     */

    public static void quicksortComparable [ ] ) {

        quicksorta, 0, a.length - );

    }

    

    private static final int CUTOFF = 10;

    

    /**

     * Internal quicksort method that makes recursive calls.

     * Uses median-of-three partitioning and a cutoff of 10.

     @param a an array of Comparable items.

     @param low the left-most index of the subarray.

     @param high the right-most index of the subarray.

     */

    private static void quicksortComparable [ ] a, int low, int high ) {

        iflow + CUTOFF > high )

            insertionSorta, low, high );

        else {

            // Sort low, middle, high

            int middle = low + high 2;

            ifamiddle ].compareToalow ] ) )

                swapReferencesa, low, middle );

            ifahigh ].compareToalow ] ) )

                swapReferencesa, low, high );

            ifahigh ].compareToamiddle ] ) )

                swapReferencesa, middle, high );

            

            // Place pivot at position high - 1

            swapReferencesa, middle, high - );

            Comparable pivot = ahigh - ];

            

            // Begin partitioning

            int i, j;

            fori = low, j = high - 1; ; ) {

                whilea++i ].compareTopivot )

                    ;

                whilepivot.compareToa--j ] ) )

                    ;

                ifi >= j )

                    break;

                swapReferencesa, i, j );

            }

            

            // Restore pivot

            swapReferencesa, i, high - );

            

            quicksorta, low, i - );    // Sort small elements

            quicksorta, i + 1, high );   // Sort large elements

        }

    }

    

    /**

     * Method to swap to elements in an array.

     @param a an array of objects.

     @param index1 the index of the first object.

     @param index2 the index of the second object.

     */

    public static final void swapReferencesObject [ ] a, int index1, int index2 ) {

        Object tmp = aindex1 ];

        aindex1 = aindex2 ];

        aindex2 = tmp;

    }

    

    

    /**

     * Internal insertion sort routine for subarrays

     * that is used by quicksort.

     @param a an array of Comparable items.

     @param low the left-most index of the subarray.

     @param n the number of items to sort.

     */

    private static void insertionSortComparable [ ] a, int low, int high ) {

        forint p = low + 1; p <= high; p++ ) {

            Comparable tmp = a];

            int j;

            

            forj = p; j > low && tmp.compareToaj - ] ) 0; j-- )

                a= aj - ];

            a= tmp;

        }

    }

В математике, факториал натурального числа это произведение всех натуральных чисел меньше или равна п. Это пишется как N! и произносится как "N Факториал", или разговорно "N криком" или "N взрыва". Обозначение N! был внесен на рассмотрение христианской Kramp в 1808 году.

Эта подсказка показывает, как реализовать функции факториала на Яве.


public class Factorial

{

    // Evaluate n!

    public static long factorialint )

    {

        ifn <= )     // base case

            return 1;

        else

            return n * factorialn - );

    }



    // Simple test program

    public static void mainString [ ] args )

    {

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

            System.out.printlnfactorial) );

    }

}

Размещение рода является простой алгоритм сортировки, сравнение рода, в котором отсортированного массива (или список) построена одна запись одновременно. Это гораздо менее эффективны на больших списков, чем более продвинутые алгоритмы, такие как быстрая сортировка, пирамидальная или слияния рода, но оно имеет ряд преимуществ:

  • Simple to implement
  • Efficient on (quite) small data sets
  • Efficient on data sets which are already substantially sorted
  • More efficient in practice than most other simple O(n2) algorithms such as selection sort or bubble sort: the average time is n2/4 and it is linear in the best case
  • Stable (does not change the relative order of elements with equal keys)
  • In-place (only requires a constant amount O(1) of extra memory space)
  • It is an online algorithm, in that it can sort a list as it receives it.

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

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


    /**

     * Simple insertion sort.

     @param a an array of Comparable items.

     */

    public static void insertionSortComparable [ ] )

    {

        forint p = 1; p < a.length; p++ )

        {

            Comparable tmp = a];

            int j = p;



            for; j > && tmp.compareToaj - ] ) 0; j-- )

                a= aj - ];

            a= tmp;

        }

    }

Общественный переменным и методам Java аплет видны документа HTML. Таким помощью JavaScript можно получить доступ к переменным общественностью и общественными функциями.

Синтаксис:

var some_var = document.appletname.variable_name

При этом вы получите значение переменной variable_name JavaScript в вашем переменная some_var.

Например метод является методом, который связан с одним объектом и используются переменные экземпляра этого объекта.

В противоположность, например метод представляет собой статический метод.

По умолчанию метод должен быть методом экземпляра.