Учебная страница курса биоинформатики,
год поступления 2010
Введение, синтаксис
Что такое Java?
Java широко известна как современный объектно-ориентированный язык, легкий в изучении и позволяющий создавать программы, которые могут исполняться на любой платформе без каких-либо доработок. Платформа Java Многоплатформенность Java достигается за счет использования виртуальной машины JVM, которая является обычной программой, исполняемой операционной системой и предоставляющей Java-приложениям все необходимые возможности. Поскольку все параметры JVM специфицированы, то остается единственная задача - реализовать виртуальные машины на всех существующих и используемых платформах.
Исходный код любой программы на языке Java представляется обычными текстовыми файлами, которые могут быть созданы в любом текстовом редакторе или специализированном средстве разработки и имеют расширение .java. Эти файлы подаются на вход Java-компилятора, который транслирует их в специальный Java байт-код, который сохраняется в бинарных файлах с расширением .class. Java-приложение, состоящее из таких файлов, подается на вход виртуальной машине, которая начинает их исполнять, или интерпретировать, так как сама является программой. Java является строго типизированным языком. Это означает, что любая переменная и любое выражение имеют известный тип еще на момент компиляции. Такое строгое правило позволяет выявлять многие ошибки уже во время компиляции. Компилятор, найдя ошибку, указывает точное место (строку) и причину ее возникновения, что позволяет избежать лишних запусков программы. Поэтому четкое понимание модели типов данных в Java очень помогает в написании программ.
Типы данных
Все типы данных разделяются на две группы: простые и объектные (про них будем говорить на сл. занятии). Первую составляют 8 простых (примитивных) типов данных. Они подразделяются на три подгруппы:
целочисленные (в основном мы будем использовать int)
- byte
- short
- int
- long (используется для работы со временем)
- char (также является целочисленным типом, хотя используется для хранения символов)
дробные
- float
- double (используется, когда нужна высокая точность, например, для работы с очень маленькими числами)
булевский
- boolean (принимает значения true или false)
- !!! Нет простого типа для хранения строк. Для работы со строками используют класс String, который мы рассмотрим на другом занятии.
Пособие 1 Простые типы данных
- boolean (принимает значения true или false)
Название типа |
Длина (байты) |
Область значений |
byte |
1 |
-128 .. 127 |
short |
2 |
-32.768 .. 32.767 |
int |
4 |
-2.147.483.648 .. 2.147.483.647 |
long |
8 |
-9.223.372.036.854.775.808 .. 9.223.372.036.854.775.807 (примерно 1019) |
float |
4 |
3.40282347e+38f ; 1.40239846e-45f |
double |
8 |
1.79769313486231570e+308 ; 4.94065645841246544e-324 |
Иллюстрировать логику работы с типами данных проще всего на примере переменных.
Как мы создавали переменные в Python? При первом упоминании и присваивании:
1 a=0
При создании переменных в Java необходимо указывать их тип:
1 int a; int b=0;
!!! теперь нельзя a=”Вася”
Операции
- В Java, также как и в Python, есть операции арифметические, сравнения, и логические.
Пособие 2 Операции.
целые типы(byte, short, int, long) |
дробные типы (float, double) |
булевский тип (boolean) |
|
арифметические операции (+, -, *, /, %) |
int a=1+2; |
double d = 0.9 + 1; !!! будьте внимательны с делением double d=1/2; double d=(double)1/2; |
- |
инкремент и декремент: ++ и – |
i++; --j; |
- |
- |
операции сравнения ==, != (возвращают boolean) |
int a; if (a==3){ ...} |
float f, e; if (f!=e){...} |
boolean b; if(b==true){...} |
операции сравнения <,>,<=,>= (возвращают boolean) |
int a = 2, b = 3; boolean b = (a > b); |
float f, e; ... if(f>=e){...} |
- |
логические операции (|, &&, ||) |
- |
- |
int x = 1; int y = 2; boolean is_one = (x==1) ||(y==1); |
Преобразование типов
При передаче значения от менее емкой переменной к более емкой преобразования типа значения происходит автоматически. Например:
Но для обратного перехода необходимо делать это вручную, указывая в скобках перед значением новый тип данных:
1 double c = 3.0; int b = (int)c; byte a = (byte)b;
Также автоматическое преобразование значений происходит при вычислении выражений. Если, например, вычисляется сумма над значениями разных типов, то меньший по размеру тип преобразуется к большему:
1 int a = 1; double b = 2.0; double c = a*b;
Массивы
Как мы объявляли массивы (на самом деле списки) в Python?
1 int[] a;
При создании массива нужно указать его длину. int[] array=new int[5]; Обращение к элементу массива происходит по индексу. При обращении к элементу с несуществующим индексом программа выдаст ошибку!!! Пример: Найти сумму элементов массива
Методы
Метод – это обособленная часть программы, которой можно передавать некоторые данные на вход и получать некоторые данные, полученные в результате работы метода. Как это было в Python?
и где-то в основной программе вызов:
1 c= cube(3)
В Java указывается тип значения, которое возвращает метод, а также перечисляются входные параметры и их типы:
и где-то в основной программе вызов:
1 int c =cube(2);
Вынесем пример с суммой массива в отдельный метод:
В основной программе: