Платформа Java. Позиционирование языка Java. Жизненный цикл программ на Java. Установка JDK и IDE

Страницы работы

Фрагмент текста работы

Электронные источники

И.Н. Блинов, В.С. Романчик (БГУ)

,

Дж. Блох

http://skipy.ru

http://docs.oracle.com/javase/tutorial/

Платформа Java

Java, version 1

·  Java language specification, JLS, спецификация языка Java (описывающая лексику, типы данных, основные конструкции);

·  Java Virtual Machine specification, JVM, виртуальная машина Java;

·  Java Development Kit, JDK – средство разработчика, состоящее из утилит, стандартных библиотек классов и демонстрационных примеров.

Java 2 & later versions

·  Standard Edition (Java SE) – основа технологии Java и прямое развитие JDK (средство разработчика было переименовано в j2sdk, далее jdk); для рабочих станций.

·  Enterprise Edition (Java EE) – набор мощных библиотек (например, Enterprise Java Beans) и пример реализации платформы (Application Server), которая их поддерживает и опирается на jdk; для создания сложных, высоконадежных, распределенных серверных приложений.

·  Micro Edition (Java ME) – усечение Standard Edition; для небольших устройств (карманные компьютеры, сотовые телефоны, …), предъявляющих жесткие аппаратные требования.

Позиционирование языка Java

Объектно-ориентированный язык Java, разработанный в Sun Microsystems (в последующем приобретённый Oracle), предназначен для создания переносимых на различные платформы и операционные системы программ.

При создании язык Java предполагался более простым, чем его синтаксический предок – С++. С появлением версий Java 5.0 (Тигр), Java 6 (Мустанг), Java 7 (Дельфин) возможности языка Java существенно увеличились и во многом перекрывают функциональность С++.

Установка JDK и IDE

·  Установить JDK 6, запустив файл jdk-6u20-windows-i586.exe на выполнение. Использует командную строку ОС для реализации жизненного цикла программ на Java.

·  Определить системную переменную JAVA_HOME, присвоив ей путь к каталогу установки JDK. Пуск→ Настройка→ Панель управления→ Свойства системы, вкладка Дополнительно, кнопка Переменные среды→ кнопка Создать (для системных переменных).

·  Установить IDE Eclipse 3.2 (или 3.5, 3.7). Использует

–стандартные инструменты JDK, в частности, транслятор (javac.exe), интерпретатор (java.exe), библиотеки (*.jar);

–проект (файл в формате xml) как управляющую структуру для реализации жизненного цикла программ на Java.

Жизненный цикл программ на Java

Рис. Жизненный цикл Паскаль (Си, С++, …) программы

Рис. Жизненный цикл программы на Java

Исходная Java-программа – файл с расширением java. Программа транслируется в байт-код компилятором javac.exe. Оттранслированная в байт-код программа имеет расширение class. Для запуска программы нужно вызвать интерпретатор java.exe, указав в параметрах вызова, какой байт-код следует выполнять. При установленной переменной JAVA_HOME библиотеки добавляются интерпретатором.

Пример программы

//1.java

class Hello {

public static void main (String[] args) {  //just so!!!

System.out.println("Hello, World!");

}

}

//1.bat

javac 1.java

java Hello

pause

Структура исходного файла Java

одиночный оператор package;

любое количество операторов import;

одиночное объявление открытого (public) класса {

//его имя должно совпадать с именем файла

/*код*/

} любое количество "friendly" классов пакета {

/*код*/

}

//обязательных элементов нет

Пакеты

Пакет – область в пространстве имен классов.

Физически пакету соответствует директорий (имена должны совпадать).

Оператор package определяет пакет.

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

Полное имя класса имеет вид PackageName.ClassName.

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

Пакет java.lang импортируется компилятором.

//Calc.java package calc; public class Calc {...}

//Func.java package calc; public interface Func {...}

//CalcFunc.java package calc; public class CalcFunc extends Calc implements Func{...}

//CalcMem.java package calc.way1; //import calc.Calc; public class CalcMem extends calc.Calc {...}

//tests.java import calc.way1.*; import calc.*; class test1 {     public static void main (String[] args ) {...} }

Структура jse–приложения

// Start.java

/**

* First forever :)

* @author folk

* @version 0.0

*/

class Hello {

public static void main (String[] args) {  //just so!!!

System.out.println("Hello, World!");

}

}

Пример использования экземпляра класса

//Runners class

import by.gsu.epamlab.Trial;

public class Runner {

      public static void main(String[] args) {

            Trial trial = new Trial("Sakovich", 45, 93);

            System.out.println("Name:" +"\t\t" + trial.getName());

            System.out.println("Mark 1:" + "\t\t" + trial.getMark1());

            System.out.println("Mark 2:" + "\t\t" + trial.getMark2());

//          System.out.println("Result:" + "\t\t" + trial.result());

//compile error! as needed...

            System.out.println("Sum of points:" + "\t\t"

                  + (trial.getMark1() + trial.getMark2()));

            System.out.println("Is passed:" + "\t" + trial.isPassed());

            System.out.println("To string:" +"\t" + trial.toString());

            System.out.println("To string:" +"\t" + trial);

            Trial trialDefault = new Trial();

            System.out.println("To string:" +"\t" + trialDefault.toString());

            System.out.println("To string:" +"\t" + trialDefault);

            Trial trialNull = null;

//          System.out.println("To string:" +"\t" + trialNull.toString());

            System.out.println("To string:" +"\t" + trialNull);

      }

}

Способы задания исходных данных

/*

x to n-th power

x – double, n - natural

*/

/*

Hardcoded implementaion

*/

class HardcodedRunner {

public static void main(String[] args) {

int n = 3;

double x = 1.5, xPowerN = 1.0;

for(int i=0; i < Math.abs(n); i++) {

xPowerN *= x;

}

System.out.print(x + " in " + n + "-th power equals "

+ (n >= 0 ? xPowerN : 1.0 / xPowerN));

}

}

class ArgsRunner {

public static void main(String[] args) {

int n;

double x, xPowerN = 1.0;

try {

n = Integer.valueOf(args[0]).intValue();

x = Double.valueOf(args[1]).doubleValue();

for(int i=0; i < Math.abs(n); i++) {

xPowerN *= x;

}

System.out.print(x + " in " + n + "-th power equals "

+ (n >= 0 ? xPowerN : 1.0 / xPowerN));

} catch (Exception e) {

System.out.println("runtime error: " + e);

}

}

}

//Console input in Java 2 v5

import java.util.Scanner;

class ConsoleRunner {

public static void main(String[] args){

int n;

double x, xPowerN = 1.0;

try {

Scanner sc = new Scanner(System.in);

System.out.print("Input x : ");

x = sc.nextDouble();

System.out.print("Input n : ");

n = sc.nextInt();

for(int i=0; i < Math.abs(n); i++) {

xPowerN *= x;

}

System.out.print(x + " in " + n + "-th power equals "

+ (n >= 0 ? xPowerN : 1.0 / xPowerN));

} catch (Exception e) {

System.out.println("runtime error: " + e);

}

}

}

//File input in Java 2 v5

import java.io.FileReader;

import java.util.Scanner;

class FileRunner {

public static void main(String[] args){

int n;

double x, xPowerN = 1.0;

try {

Scanner sc = new Scanner(new FileReader("1.in"));

x = sc.nextDouble();

n = sc.nextInt();

for(int i=0; i < Math.abs(n); i++) {

xPowerN *= x;

}

System.out.print(x + " in " + n + "-th power equals "

+ (n >= 0 ? xPowerN : 1.0 / xPowerN));

} catch (Exception e) {

System.out.println("runtime error: " + e);

}

}

}

Типы данных

Тип char использует формат UNICODE, со значениями кодов от 0 до 65535.

Строка в Java представляется объектом класса String, т.е. это не ASCII-строки (массивы символов, завершающиеся символом '\0'). Строковые константы заключаются в двойные кавычки. При работе со строками можно использовать операцию "+"  (сцепления строк) и методы класса String.

Тип

Размер

По умолчанию

Значения

boolean

8

false

true , false

byte

8

0

-128..127

char

16

'\x0'

'a', '\x20', '\n'

short

16

0

-32768..32767

int

32

0

-2147483648..2147483647

long

64

0

922372036854775808L

float

32

0.0f

3.40282347E+38

double

64

0.00

1.797693134486231570E+308

Для преобразования базовых типов друг к другу применяется операция (тип), где в качестве (тип)используется один из совместимых базовых типов. При приведении типов данных меньшей длины к типам большей длины никаких операций производить не требуется. Следует обратить внимание на то, что операция присваивания результатов арифметических операций для примитивных типов char, byte, short вызывает ошибку компиляции, так как при вычислениях производится преобразование к типу int, а Java не позволяет присваивать переменной значение более длинного типа. Исключение составляют операторы инкремента, декремента и операторы +=, -=, *=, /=. Инициализация статических переменных и инициализация при объявлении

Похожие материалы

Информация о работе