Бизнес задачи на java

у

Вначале про бизнес-логику. Есть идея программы, часть функций уже реализована, структура (как на картинке) уже создана. Встал вопрос насколько такая структура и идея логики программы вообще применимы, какие в них есть недостатки. Основные действия программы помещаются в Main и влезают примерно в 10-50 строчек, которые, по сути, являются приказами для других отделов (инициализация).
Получается, что к Class 2 и Class 3 образуются и взаимодействуют только в Class 1 , а остальные (например Class10 , Class25 ) даже и не предполагают что такие существуют вовсе, они обращаются только к Class1 . Class 1 и Class 10 extend Thread и после инициализации ожидают, когда их вызовут. Теперь два главных вопроса: 1. Это вообще возможно?

Это первая крупная задача, которая встала передо мной, и я столкнулся с некоторыми сложностями, которые у меня остались, наверно, из-за нехватки знаний. А именно: допустим, я создал объект класса Class1 (это в Main ). Теперь я хочу обратиться к нему из класса Class25 , чтобы получить ответ на вопрос, который решают Class2 и Class3 . Как это сделать?

Какие бывают реальные задачи в Java Enterprise?

Важно — я не хочу создавать директора отдела ( Class1 ) в каждом из подклассов, я хочу чтобы он был один, и в будущем был потоком, если это возможно. 2. И если это все-таки возможно, то насколько это правильно, почему я не видел такой логики в других программах? Связь GETTER-SETTER сводится к минимуму, а ООП развивается по максимуму.

Отслеживать

9,574 4 4 золотых знака 34 34 серебряных знака 71 71 бронзовый знак

Источник: ru.stackoverflow.com

Три задачи на знание Java от ChatGPT

Обложка: Три задачи на знание Java от ChatGPT

Попросили языковую модель ChatGPT составить три задачи на знание Java: простую, среднюю и сложную.

К первым двум нейросеть прикрепила ответы, но третья задача осталась нерешённой. Сможете ли вы справиться с ней?

Простая задача по Java

Напишите программу на Java, которая будет считывать массив целых чисел и выводить на экран их сумму и среднее арифметическое.

Подсказки:

  • Для считывания массива целых чисел используйте Scanner или BufferedReader.
  • Для вычисления суммы и среднего арифметического используйте цикл for .
  • Не забудьте проверить ввод на корректность (например, что введено число и не превышает максимально возможное значение для int ).
  • Сначала мы создаем экземпляр Scanner для считывания ввода от пользователя.
  • Затем мы просим пользователя ввести количество элементов в массиве и создаем массив с заданным размером.
  • Используя цикл for , мы считываем каждый элемент массива и записываем его в массив numbers .
  • Далее, мы используем цикл for-each , чтобы посчитать сумму всех элементов массива.
  • Наконец, мы вычисляем среднее арифметическое деля сумму на количество элементов и выводим его на экран.
Читайте также:  Что такое зарплатный проект Сбербанк бизнес

import java.util.Scanner; public class Main < public static void main(String[] args) < Scanner scanner = new Scanner(System.in); System.out.print(«Enter the number of elements in the array: «); int n = scanner.nextInt(); int[] numbers = new int[n]; for (int i = 0; i < n; i++) < System.out.print(«Enter element » + (i + 1) + «: «); numbers[i] = scanner.nextInt(); >int sum = 0; for (int i : numbers) < sum += i; >double average = (double) sum / n; System.out.println(«Sum: » + sum); System.out.println(«Average: » + average); > >

Задача средней сложности по Java

Напишите класс «Решето Эратосфена» для нахождения всех простых чисел в диапазоне от 2 до n. Класс должен иметь метод «просеивание» для построения решета и метод «вывод» для вывода всех найденных простых чисел.

#1 Java с нуля: находим наименьшее из 3 чисел JAVA |Задачи по программированию| JAVA базовые задачи

Этот код реализует класс SieveOfEratosthenes , который использует алгоритм «Решето Эратосфена» для нахождения всех простых чисел в диапазоне от 2 до n. В конструкторе создается массив primes , который инициализируется как все true , кроме 0 и 1. Метод sieve использует алгоритм «Решето Эратосфена» для отметки составных чисел как false . Метод output выводит все простые числа из массива primes .

public class SieveOfEratosthenes < boolean[] primes; int n; public SieveOfEratosthenes(int n) < this.n = n; primes = new boolean[n + 1]; Arrays.fill(primes, true); primes[0] = primes[1] = false; >public void sieve() < for (int i = 2; i > > > public void output() < for (int i = 2; i > > public static void main(String[] args) < int n = 100; SieveOfEratosthenes sieve = new SieveOfEratosthenes(n); sieve.sieve(); sieve.output(); >>

Сложная задача по Java

Реализуйте класс «Матрица» с методами:

  1. Конструктор для создания матрицы размером nxm с нулевыми значениями.
  2. Метод « setValueAt(int i, int j, int value) » для установки значения элемента в матрице по индексу i, j.
  3. Метод « getValueAt(int i, int j) » для получения значения элемента в матрице по индексу i, j.
  4. Метод « multiplyByScalar(int scalar) » для умножения каждого элемента матрицы на скаляр.
  5. Метод « add(Matrix m) » для сложения двух матриц.
  6. Метод « transpose() » для транспонирования матрицы.
  7. Перегрузите оператор «+» для сложения двух матриц и оператор «*» для умножения матрицы на скаляр.
  8. Реализуйте итератор для класса матрица, чтобы проитерироваться по всем элементам матрицы.

Проверьте работу класса с помощью JUnit тестов.

Читайте также:  Конкуренты в бизнесе примеры

Подсказки:

  1. Создайте класс « Matrix » с переменными экземпляра для хранения количества строк, столбцов и двумерного массива для хранения элементов матрицы.
  2. Реализуйте конструктор для инициализации матрицы с заданным количеством строк и столбцов и установите все элементы в 0.
  3. Реализуйте метод setValueAt() для установки значения элемента матрицы в указанной позиции.
  4. Реализуйте метод getValueAt() для получения значения элемента матрицы в указанной позиции.
  5. Реализуйте метод multiplyByScalar() для умножения всех элементов матрицы на указанное скалярное значение.
  6. Реализуйте метод add() для сложения двух матриц.
  7. Реализуйте метод transpose() для транспонирования матрицы.
  8. Переопределите операторы «+» и «*» для сложения и умножения матриц соответственно.
  9. Реализуйте итератор для класса Matrix , чтобы можно было выполнять итерацию по всем элементам матрицы.

Напишите тестовые примеры JUnit для проверки всех реализованных методов и убедитесь, что они работают правильно.

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

Ответа к этой задаче нет. ChatGPT призналась, что ей как языковой модели это не по зубам. Найдутся ли среди читателей те, кто сможет решить её?

public class Matrix < private int rows; private int columns; private int[][] data; // constructor public Matrix(int rows, int columns) < this.rows = rows; this.columns = columns; this.data = new int[rows][columns]; >// setValueAt method public void setValueAt(int i, int j, int value) < this.data[i][j] = value; >// getValueAt method public int getValueAt(int i, int j) < return this.data[i][j]; >// multiplyByScalar method public void multiplyByScalar(int scalar) < for (int i = 0; i < this.rows; i++) < for (int j = 0; j < this.columns; j++) < this.data[i][j] *= scalar; >> > // add method public void add(Matrix m) < if (this.rows != m.rows || this.columns != m.columns) < throw new IllegalArgumentException(«Invalid matrix dimensions»); >for (int i = 0; i < this.rows; i++) < for (int j = 0; j < this.columns; j++) < this.data[i][j] += m.data[i][j]; >> > // transpose method public void transpose() < int[][] transposedData = new int[this.columns][this.rows]; for (int i = 0; i < this.rows; i++) < for (int j = 0; j < this.columns; j++) < transposedData[j][i] = this.data[i][j]; >> this.data = transposedData; int temp = this.rows; this.rows = this.columns; this.columns = temp; > //override «+» operator public static Matrix operator+(Matrix m1, Matrix m2) < Matrix result = new Matrix(m1.rows, m1.columns); for (int i = 0; i < m1.rows; i++) < for (int j = 0; j < m1.columns; j++) < result.data[i][j] = m1.data[i][j] + m2.data[i][j]; >> return result; > //override «*» operator public static Matrix operator*(Matrix m1, int scalar) < Matrix result = new Matrix(m1.rows, m1.columns); for (int i = 0; i < m1.rows; i++) < for (int j = 0; j < m1.columns; j++) < result.data[i][j] = m1.data[i][j] * scalar; >> return result; > // Implement iterator public Iterator iterator() < return new MatrixIterator(this); >private class MatrixIterator implements Iterator < private int currentRow = 0; private int currentColumn = 0; private Matrix matrix; public MatrixIterator(Matrix matrix) < this.matrix = matrix; >public boolean hasNext() < return currentRow < matrix.rows currentColumn < matrix.columns; >public Integer next() < int result = matrix.data[currentRow][currentColumn]; currentColumn++; if (currentColumn == matrix.columns) < currentColumn = 0; currentRow++; >return result; > >

Читайте также:  Как подтвердить контрагента Сбербанк бизнес

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

Как вы считаете, справилась ли ChatGPT с формулировкой задач и их решением? Если нет, то где ошиблась языковая модель?

Сколько задач их трёх вам удалось решить? Присылайте свои решения на GitHub в комментарии.

Источник: tproger.ru

Задачи на собеседованиях, спецвыпуск. Стань богатым Java-программистом!

Java-программисты на протяжении нескольких лет остаются самыми востребованными специалистами на рынке IT. Они получают зарплату, привязанную к курсу доллара, и не испытывают дискомфорта от экономических кризисов. Невзирая на все мрачные предсказания, проектов, связанных с Java-технологиями, становится все больше. Профессиональные Java-специалисты ценятся по всему миру.

Независимо от их страны проживания работодатели согласны вкладывать в них деньги. Если ты задумываешься о карьере Java-разработчика, то эта статья для тебя. В ней собраны практические советы по подготовке и прохождению собеседования, поиску работы в офисе и удаленно.

TL;DR

Составляя резюме, старайся выделить знание именно тех технологий, которые требуются в вакансии. Описывая проекты, в которых ты принимал участие, не забудь указать свои обязанности и задачи в рамках проекта, не только связанные с написанием кода, но и бета-тестирование, unit-тесты, билд-скрипты, настройку сервера приложения, Jenkins’а или создание базы данных. Имей в виду, что тебе придется ответить за каждую технологию, которую ты указываешь в резюме, так что не стоит вписывать то, что ты совершенно не знаешь.

Подготовка к собеседованию

Теперь займемся подготовкой к самому собеседованию. Независимо от проекта и используемых фреймворков для начала нужно показать твердые знания Core Java.

По Java существует множество всевозможных пособий и обучающих курсов, но лучшим пособием будет литература для подготовки к сдаче экзамена на сертифицированного программиста Java от Oracle, например OCA OCP Java SE 7 Programmer I https://xakep.ru/2016/02/08/coding-challenges-205/» target=»_blank»]xakep.ru[/mask_link]

Рейтинг
( Пока оценок нет )
Загрузка ...
Бизнес для женщин