1. Анализ HelloWorld
2. Типы данных и операторы# Заметки с лекции
Язык Java чувствителен к регистру; Одна строка кода в языке Java заканчивается точкой с запятой (;); Одну строку кода можно разбить на несколько строк; В одном файле Java может быть только один публичный класс (public); Если в файле Java есть публичный класс, то имя файла должно совпадать с именем этого класса; Метод main имеет фиксированную структуру; он является точкой входа для выполнения программы JVM; То есть выполнение файла Java начинается с метода main; Файл Java выполняет только метод main; другие методы могут быть выполнены только если они вызываются из метода main (в последующих разделах); В одном публичном классе может быть только один метод main; В одном файле Java можно определить несколько классов; но только один из них может быть публичным; Правила программирования требуют, чтобы в одном файле Java был только один класс;
public class HelloWorld {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("HelloWorld! ");
}
}
Основы компьютера В компьютере только двоичная система счисления (0/1); Одна единица информации (бит) представляет собой 1 или 0; 8 бит составляют 1 байт; 1024 байта = 1 килобайт (Кб); 1024 килобайта = 1 мегабайт (Мб); 1024 мегабайта = 1 гигабайт (Гб); 1024 гигабайта = 1 терабайт (Тб); 1024 терабайта = 1 петабайт (Пб); 1024 петабайта = 1 эксабайт (Эб);
Переменная — это значение, которое может изменяться;
Объявление переменной:
Синтаксис:
Тип данных имя переменной;
Инициализация переменной:
Синтаксис:
имя переменной = начальное значение;
Объявление и инициализация могут быть объединены:
Синтаксис:
Тип данных имя переменной = начальное значение;
Анализ:
В данном контексте переменные относятся к локальным переменным;
Локальные переменные не могут повторно объявляться в одном методе, но могут повторно использоваться;
java поддерживает следующие типы данных:
Объектные типы (ссылающиеся типы): подклассы Object, массивы
Базовые типы: 8 типов
2. 1 8 базовых типов и их размеры и диапазоны
Целочисленные типы: без дробной части;
byte 1 байт
short 2 байта
int 4 байта (по умолчанию)
long 8 байт (используется суффикс L или l для обозначения long)
Дробные типы: с дробной частью;
float 4 байта (используется суффикс F или f для обозначения float)
double 8 байт (по умолчанию)
Тип char:
char 2 байта
Тип char представляет один символ, заключенный в одинарные кавычки '', в одинарных кавычках может быть только один символ, который может быть буквой, кириллицей или Unicode кодом; Логический тип:
boolean принимает значения true или false
Внимание:
(1) Целочисленные константы по умолчанию имеют тип int, а дробные константы — тип double;
(2) Для целочисленных констант типа long используется суффикс L или l, а для дробных констант типа double — F или f;
Код [com.yuw.datatype.Test01]:
```java
// Использование типов данных
// Объявление и инициализация переменных
int iAge = 20;
// Объявление
int iAge2;
iAge2 = 20;
iAge2 = 21;
// Объявление типа byte
byte bAge = 20;
// Объявление типа long
long lAge = 2000000000000L; // Целочисленная константа по умолчанию имеет тип int
// Символьный тип
char ch0 = 'a'; // Английский символ
char ch1 = '小'; // Китайский символ
char ch3 = '1'; // Число
char ch2 = '\uAF45'; // Символ в Unicode кодировке
System.out.println("小明年龄为:" + iAge2);
``````markdown
byte bVal0 = 127;
byte bVal1 = 128; // 128 выходит за пределы диапазона типа byte, поэтому значение константы не может быть присвоено напрямую
Код [com.yuw.datatype.Test01]:
/////////////////////// Преобразование между основными типами/////////////////////////
// Преобразование целочисленных типов от высокого к низкому по умолчанию
byte bVal0 = 127;
// byte bVal1 = 128; // 128 выходит за пределы диапазона типа byte, поэтому значение константы не может быть присвоено напрямую
short sVal0 = bVal0;
int iVal0 = sVal0;
// short преобразуется по умолчанию в long
long lVal0 = sVal0;
// По умолчанию конвертация между типами float
float fVal0 = 3.14F;
double dVal0 = fVal0; // По умолчанию конвертация типа char в целочисленный тип
char chVal0 = 'a';
// Тип char может быть конвертирован по умолчанию в целочисленные типы int и long
// short sVal1 = chVal0;
int iVal1 = chVal0;
Конвертация типов данных по умолчанию в выражениях: Если выражение содержит несколько типов данных, все типы данных в выражении по умолчанию конвертируются в самый высокий тип данных; Тип данных результата выражения зависит от самого высокого типа данных в выражении; То есть, тип данных результата выражения будет самым высоким типом данных; Обратите внимание: Если выражение содержит типы данных byte, char, short, то результатом выражения будет тип int; Код [com.yuw.datatype.Test01]:
java
/////////////// Конвертация типов данных по умолчанию в выражениях //////////////////
byte bVal20 = 20;
char chVal20 = 'a';
short sVal20 = 31;
int iVal20 = 21;
// Выражение, содержащее типы данных byte, char, short, будет иметь тип int;
int chVal30 = bVal20 + chVal20 + sVal20;
int iVal31 = sVal20 + iVal20;
Принудительная конвертация типов данных:
Принудительная конвертация обычно происходит от более высокого (шире диапазона) к более низкому (узкий диапазон) типу данных;
Принудительная конвертация типов данных может привести к переполнению (потере данных);
Синтаксис:
целевой_тип переменная = (целевой_тип) переменная_для_конвертации;
Обратите внимание:
целевой_тип все еще является типом данных Java;
() является оператором принудительной конвертации;
Код [com.yuw.datatype.Test01]:
java /////////////// Принудительная конвертация типов данных в выражениях //////////////////
int iVal30 = 20000000;
// Принудительная конвертация типа int в тип short
short sVal30 = (short) iVal30; // Может привести к переполнению
System. out. println("Принудительная конвертация: " + sVal30);```markdown
Операторы могут быть разделены на: унарные, бинарные и тернарные операторы в зависимости от количества операндов, участвующих в операции.
Операторы: + - * / % ++ -- / - деление, обратите внимание: результат целочисленного деления всегда будет целым числом, если результат содержит дробную часть, она будет отбрасываться; % - остаток от деления, результатом является остаток от деления двух чисел;
переменная++;
переменная--;
++переменная;
--переменная;
Выражения автозначения и автозменения могут быть использованы отдельно для вычислений; Анализ: В операциях автозначения и автозменения есть два значения:
Значение выражения Значение переменной i
i + 1 i
```++i (сначала увеличение) i+1 i+1
i++ (после увеличения) i i+1
Автозамена:
Значение выражения Значение переменной i
--i (сначала уменьшение) i-1 i-1
i-- (после уменьшения) i i-1
Заключение: Независимо от того, увеличивается ли значение переменной сначала или после операции, его значение всегда увеличивается на 1; Значение выражения: увеличивается на 1 при сначала увеличении, остается неизменным при после увеличении; Код [com.yuw.datatype.Test02]:
/**
* Арифметические операторы
*/
private static void test01() {
// Деление
int iVal0 = 10;
int iVal1 = 3;
int iVal2 = iVal0 / iVal1;
System.out.println("iVal2=" + iVal2); // Результат целое число, дробная часть отбрасывается
double iVal3 = iVal0 / 3.0; // 3.0 по умолчанию является типом double
System.out.println("iVal3=" + iVal3);
// Остаток от деления
int iVal10 = 0 % 2; // Остаток равен 0
System.out.println("0%2=" + iVal10);
// Операция сначала увеличения
System.out.println("=========================");
int iVal21 = 1;
System.out.println("Сначала увеличение до операции: iVal21=" + iVal21);
int iVal31 = ++iVal21; // Сначала увеличение
System.out.println("После операции сначала увеличения: iVal21=" + iVal21);
System.out.println("После операции сначала увеличения: iVal31=" + iVal31);
System.out.println("=========================");
// Автозамена и автодобавление
int iVal20 = 1;
System.out.println("После увеличения до операции: iVal20=" + iVal20);
// Выражение автодобавления
int iVal30 = iVal20++; // Выражение после увеличения
System.out.println("После увеличения: iVal20 = " + iVal20);
System.out.println();
}
``````java
println("После увеличения: iVal30=" + iVal30);
}
Сравнение двух операндов. Это бинарные операторы.
Основные операторы: > < >= <= == != =
Результат операции отношения — это значение типа boolean
;
Код [com.yuw.datatype.Test02]:
/**
* Операторы отношения
*/
private static void test02() {
int iVal1 = 10;
int iVal2 = 11;
boolean isResult0 = ++iVal1 > iVal2++; // false
System.out.println("Результат операции: " + isResult0);
}
Присваивает значение выражения или числового константа указанной переменной; бинарные операторы;
Операторы: = += -= *= /= %=
Оператор +=
:
i += j;
эквивалентно: i = i + j;
i %= j;
эквивалентно: i = i % j;
Внимание:
+= -= *= /= %=
не могут использоваться вместе с объявлением переменной; Например: int i += j;
Код [com.yuw.datatype.Test02]:
/**
* Операторы присваивания
*/
private static void test03() {
int iVal0 = 10;
int iVal1 = 0;
iVal1 += iVal0;
}
``` byte bVal0 = 1;
// +=
bVal0 += 1; // 1 представляет собой единицу сдвига
// эквивалентно
bVal0 = (byte) (bVal0 + 1);
}
```
#### 3.4 Битовые операторы
операции над каждым битом двоичного числа;
(числа, участвующие в операциях, представлены битами)
Операторы: ~ & | ^ >> << >>>
Синтаксис:
~: операция инвертирования, унарный оператор;
0 становится 1, 1 становится 0;
&: операция "и", бинарный оператор;
1&1=1
1&0=0
0&1=0
0&0=0
оба значения равны 1, результат 1, в остальных случаях 0;
|: операция "или", бинарный оператор;
1|1=1
1|0=1
0|1=1
0|0=0
оба значения равны 0, результат 0, в остальных случаях 1;
^: операция "или-исключающее", бинарный оператор;
1^1=0
1^0=1
0^1=1
0^0=0
значения равны, результат 0, значения не равны, результат 1;
Код [com.yuw.datatype.Test02]:
```java
/**
* Битовые операторы
*/
private static void test04() {
int iVal10 = 3;
int iVal11 = 4;
//// следующий код не требуется для изучения////
// инвертирование по битам
int iVal20 = ~iVal10; // 4 -4 0000 0011 (дополнительный код) --- 1111 1100 (дополнительный код)---1000 0100 (основной код)
// "и", "или", "или-исключающее"
int iVal21 = iVal10 & iVal11; // 0 0011 0100 0000
int iVal22 = iVal10 | iVal11; // 7 0111
int iVal23 = iVal10 ^ iVal11; // 7 0111
}
``` System.out.println("iVal20=" + iVal20);
System.out.println("iVal21=" + iVal21);
System.out.println("iVal22=" + iVal22);
System.out.println("iVal23=" + iVal23);
}
```
###### Дополнительные сведения о битовых операциях
Основы компьютера: основной код, дополнительный код, дополнительный код; (подробное объяснение будет дано позже)
Принцип: все числа в компьютере хранятся в виде дополнительного кода; [в компьютере отрицательные числа хранятся в виде дополнительного кода]
#### Участие в проекте1. Создайте форк этого проекта
2. Создайте ветку Feat_xxx
3. Подайте код
4. Создайте Pull Request
#### Специальные возможности Gitee
1. Используйте Readme\_XXX.md для поддержки различных языков, например Readme\_en.md, Readme\_zh.md
2. Официальный блог Gitee [blog.gitee.com](https://blog.gitee.com)
3. Вы можете [https://gitee.com/explore](https://gitee.com/explore) для просмотра лучших проектов с открытым исходным кодом на Gitee
4. [GVP](https://gitee.com/gvp) полное название "самые ценные проекты Gitee", это оценка лучших проектов с открытым исходным кодом на Gitee
5. Официальное руководство Gitee [http://git.mydoc.io/](http://git.mydoc.io/)
6. Секция "лица Gitee" представляет раздел, посвященный демонстрации достижений членов Gitee [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )