И.Н. Блинов, В.С. Романчик (БГУ)
,
Дж. Блох
http://skipy.ru
http://docs.oracle.com/javase/tutorial/
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, разработанный в Sun Microsystems (в последующем приобретённый Oracle), предназначен для создания переносимых на различные платформы и операционные системы программ.
При создании язык Java предполагался более простым, чем его синтаксический предок – С++. С появлением версий Java 5.0 (Тигр), Java 6 (Мустанг), Java 7 (Дельфин) возможности языка Java существенно увеличились и во многом перекрывают функциональность С++.
· Установить 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. Программа транслируется в байт-код компилятором 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
одиночный оператор 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 ) {...} } |
// 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 не позволяет присваивать переменной значение более длинного типа. Исключение составляют операторы инкремента, декремента и операторы +=, -=, *=, /=. Инициализация статических переменных и инициализация при объявлении
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.