View on GitHub

ITMO-PE

My study notes about Program Engineering at University ITMO

MainPage/Programm/Exam

  1. Обощенные и параметризованные типы. Создание параметризованных классов.
    泛型和参数化类型。创建参数化类。
  2. Работа с параметризованными методами. Ограничение типа сверху или снизу.
    使用参数化方法。 类型约束高于或低于。
  3. Класс Number. Классы-оболочки. Автоупаковка и автораспаковка.
  4. Коллекции. Виды коллекций. Интерфейсы Set, List, Queue и их особенности.
    集合。 集合类型。 Set、List、Queue 接口及其特性。
  5. Обход элементов коллекции. Интерфейсы Iterable, Iterator и ListIterator
  6. Сортировка элементов коллекций. Интерфейсы Comparable и Comparator.
  7. Интерфейсы Set и SortedSet, их реализации. Классы HashSet и TreeSet.
    Set 和 SortedSet 接口,它们的实现。 HashSet 和 TreeSet 类。
  8. Интерфейс List и его реализации. Классоы ArrayList и LinkedList.
  9. Интерфейсы Map и SortedMap, их реализации. Классы HashMap и TreeMap.
  10. Интерфейсы Queue и Deque. Классы PriorityQueue и ArrayDeque.
    队列和双端队列接口。 PriorityQueue 和 ArrayDeque 类。
  11. Классы Collections и Arrays, методы для работы с коллекциями и массивами.
  12. Регулярные выражения, Классы Pattern и Matcher.
  13. Байтовые потоки ввода-вывода. Классы InputStream, OutputStream и их потомки.
    字节 I/O 流。 类 InputStream、OutputStream 及其后代。
  14. Символьные потоки ввода-вывода. Классы Reader, Writer и их потомки.
  15. Новый пакет ввода-вывода. Буферы и каналы. Класс FileChannel.
  16. Работа с файлами в Java. Интерфейс Path. Классы File, Files, Paths.
    在 Java 中处理文件,Path 接口。 File 类,Files 类,Paths 类
  17. Сериализация объектов. Интерфейс Serializable. Модификатор transient.
  18. Многопоточные программы. Класс Thread и интерфейс Runnable. Состояния потока.
  19. Многопоточные программы. Интерфейсы Executor, ExecutorService, Callable, Future 多线程程序。 接口 Executor、ExecutorService、Callable、Future
  20. Класс Executors. Пулы потоков. Фреймворк fork/join.
  21. Гонки. Синхронизация потоков. Модификатор synchronized.
  22. Порядок выполнения и ограничение “happens-before”. Модификатор volatile. 执行顺序和“happens-before”约束。 “volatile”修饰符
  23. Взаимодействие потоков. Методы wait(), notify().
  24. Интерфейсы Lock, ReadWriteLock, Condition.
  25. Атомарный доступ к переменным. Пакет java.util.concurrent.atomic. 对变量的原子访问。 包 java.util.concurrent.atomic。
  26. Потокобезопасные коллекции. Synchronized- и Concurrent-коллекции.
  27. Шаблоны проектирования. Структурные шаблоны.
  28. Шаблоны проектирования. Порождающие шаблоны. 设计模式。 生成模板。
  29. Шаблоны проектирования. Поведенческие шаблоны.
  30. Провайдеры служб.
  31. Взаимодействие с базами данных. Протокол JDBC. Основные элементы. 数据库交互。 JDBC 协议。 主要元素。
  32. Создание соединения с базой данных. Класс DriverManager. Интерфейс DataSource.
  33. Создание запросов. Интерфейсы Statement, PreparedStatement, CallableStatement.
  34. Обработка результатов запроса. Интерфейсы ResultSet и RowSet. 处理查询结果。 ResultSet 和 RowSet 接口。
  35. Безопасное хранение паролей.
  36. Интернационализация. Локализация. Хранение локализованных ресурсов.
  37. Форматирование локализованных числовых данных, текста, даты и времени. 格式化本地化的数字数据、文本、日期和时间。
  38. Пакет java.time. Классы для представления даты и времени.
  39. Функциональные интерфейсы и λ-выражения. Пакет java.util.function.
  40. Рекурсия и ее использование. 递归及其使用。
  41. Конвейерная обработка данных. Пакет java.util.stream.
  42. Библиотеки графического интерфейса. Особенности и различия.
  43. Компоненты графического интерфейса. Классы Component, JComponent, Node. 图形用户界面组件。 类组件,JComponent,节点。
  44. Контейнеры. Классы Container, JPanel, Parent, Region, Scene.
  45. Размещение компонентов в контейнерах. Менеджеры компоновки.
  46. Контейнеры верхнего уровня. Классы JFrame, SwingUtilities, Stage, Application. 顶级容器。 类 JFrame、SwingUtilities、Stage、Application。
  47. Обработка событий графического интерфейса. События и слушатели.
  48. Новые функции Java 9 и последующих версий.
  49. Сетевое взаимодействие. Основные протоколы, их сходства и отличия. 网络互动。 基本协议,它们的异同。
  50. Протокол TCP. Классы Socket и ServerSocket.
  51. Протокол TCP. Классы SocketChannel и ServerSocketChannel.
  52. Протокол UDP. Классы DatagramSocket и DatagramPacket. UDP协议。 DatagramSocket 和 DatagramPacket 类。
  53. Протокол UDP. Класс DatagramChannel.
  54. Неблокирующий сетевой обмен. Селекторы.

1. Обощенные и параметризованные типы. Создание параметризованных классов.

泛型,即“参数化类型”,泛型是一种特殊的类型。在定义类、接口或方法时声明类型参数(例如 <T>),到使用时再决定其具体的类型 T

常用范型标记符名称

范型类:在类定义的时候并不会设置类中的属性或方法中的参数的具体类型,而是在类使用时再进行定义

一个简单的单元范型类创建如下:

class MyClasst<T>{// 此处可以在 ‘<>’ 中任意设置标识符号,常用 T 表示 Java 类,具体由外部决定
    private T var;// 成员变量 var 的类型由之前的 T 指定
    public T getVar(){// 返回值的类型也由 T 指定
        return var;  
    }  
    public void setVar(T var){// 方法 setVar 的参数类型也由 T 指定
        this.var = var;  
    }
}  
public class Main{  
    public static void main(String args[]){  
        MyClass<String> myObject = new Point<String>();
        // 由此确定对象 myObject 中所有由标识符 T 声明的变量、方法及参数的类型均为 String 类
        myObject.setVar("it");// 设置字符串 var
        System.out.println(myObject.getVar());// 取得字符串 var
    }  
}

2. Работа с параметризованными методами. Ограничение типа сверху или снизу.

4. Коллекции. Виды коллекций. Интерфейсы Set, List, Queue и их особенности.

集合(Collection)可以看作是一种容器,用来存储对象信息。一个集合表示一组对象,称为它的元素。一些集合允许重复元素,而另一些则不允许。有些是有序的,有些是无序的。JDK 不提供此接口的任何直接实现:但提供更具体的子接口的实现,例如 SetList。此接口通常用于传递集合并在需要最大通用性的地方操作它们

集合与数组的区别:

  1. 数组长度不可变化而且无法保存具有映射关系的数据;集合类用于保存数量不确定的数据,以及保存具有映射关系的数据
  2. 数组元素既可以是基本类型的值,也可以是对象;集合只能保存对象

Collection 常用接口方法:

修饰符和类型 方法名 描述
boolean add(E e) 添加元素 e
boolean addAll(Collection<? extends E> c) 将制定集合 c 中的所有元素添加到此集合
void clear() 清除此集合中的所有元素
boolean contains(Object o) 判断集合是否包含指定对象 o
boolean containsAll(Collection<?> c) 判断集合是否包含指定集合 c 中的所有元素
boolean equals(Object o) 判断集合与指定对象 o 是否相等
int hashCode() 返回集合的哈希值
boolean isEmpty 判断集合是否不包含任何元素
Iterator<E> iterator() 返回集合元素的迭代器
boolean remove(Object o) 移除集合中的元素 o
boolean removeAll(Collection<?> c) 移除集合中所有包含于集合 c 的元素
int size() 返回此集合中的元素数量
Object[] toArray() 返回一个包含此集合所有元素的数组

7. Интерфейсы Set и SortedSet, их реализации. Классы HashSet и TreeSet.

Java Set 接口继承于 Collection 接口,其方法基本与 Collection 接口中的方法一致

9. Интерфейсы Map и SortedMap, их реализации. Классы HashMap и TreeMap.

10. Интерфейсы Queue и Deque. Классы PriorityQueue и ArrayDeque.

13. Байтовые потоки ввода-вывода. Классы InputStream, OutputStream и их потомки.

16. Работа с файлами в Java. Интерфейс Path. Классы File, Files, Paths.

19. Многопоточные программы. Интерфейсы Executor, ExecutorService, Callable, Future

22. Порядок выполнения и ограничение “happens-before”. Модификатор volatile.

25. Атомарный доступ к переменным. Пакет java.util.concurrent.atomic.

28. Шаблоны проектирования. Порождающие шаблоны.

在软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案

设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案

分类:

31. Взаимодействие с базами данных. Протокол JDBC. Основные элементы.

34. Обработка результатов запроса. Интерфейсы ResultSet и RowSet.