1.デザインテンプレートは何ですか？作品で使用されている2つのテンプレートについて教えてください - インタビューで例としてもたらすデザインテンプレートについて話すと、思い浮かびます。
ビルダーは、頻繁に使用されるテンプレートであり、オブジェクトの古典的な作成に代わるものです。
本質的に多型によって表されるパターン戦略。つまり、1つのインターフェイスがありますが、プログラムの動作は、このインターフェイスの特定の実装が機能に転送されたものに応じて変更されます（現在、戦略は実際にはJavaアプリケーションのどこでも使用されています）。
これで十分でない場合は、春に注意してください（すでに精通している場合）。フレームワークのプラットフォーム全体であり、パターンに沿ったパターンによって穴が開いているためです。

2. Javaのデータ型は何ですか？-Javaには原始的なデータ型があります。
-128〜127以内のバイト-Integersは、重量が1バイトです。
-32768から32767以内の短いintegers、重量は2バイトです。
int -integers -2147483648〜2147483647から、重量は4バイトです。
長い -  922372036854775808から922372036854775807以内の整数、重量は8バイトです。
フロート -  -3.4E+38〜3.4E+38以内の水泳コンマを備えた数は、重量が4バイトです。
-1.7E+308〜1.7E+308以内のフローティングコンマを備えた2倍の数は、8バイトの重量があります。
UTF-16のchar-singleシンボルの重量は2バイトです。
ブールの真/false値の重量は1バイトです。

3.オブジェクトとプリミティブデータ型の違いは何ですか？ - 最初の違い：占有されるメモリの量：プリミティブは自分の重要性のみを含むため、ほとんど占有されませんが、オブジェクトには非常に多くの異なる意味を含めることができます。プリミティブと他のオブジェクトへのリンクの両方です。
 
2番目の違い：Javaはオブジェクト指向の言語であるため、すべてがオブジェクト間の相互作用を通じて機能し、プリミティブはここにはあまり適合しません（実際、Javaは100％オブジェクト指向言語ではありません）。
 
3番目は、2番目から生じる：Javaはオブジェクト間の相互作用に焦点を合わせているため、これらのオブジェクトにはさまざまな制御メカニズムがあります。たとえば、デザイナー、メソッド、例外（主にオブジェクトで動作）など。
 
実際、このオブジェクト指向の環境にプリミティブが何らかの形で関与する（作業）できるようにし、ラッパーはプリミティブタイプ（整数、キャラクター、ダブル、ブール波...）のために発明されました。

4.リンクと値によるパラメーターの送信の違いは何ですか？ - プリミティブフィールドは意味を維持します。たとえば、int i = 9を設定した場合。フィールドIは値9を保存します。オブジェクトへのリンクがある場合、これはオブジェクトへのリンク、つまり、メモリ内のオブジェクトのアドレスの意味を持つフィールドがあることを意味します。原始の場合、原始の値がコピーされます。したがって、このメソッドはコピーで動作し、オリジナルが影響しない変更があります。
 
参照タイプの場合、メモリアドレスの値がそれぞれコピーされますが、アドレスはそれが示すオブジェクトと同じになります。
また、この新しいリンクでオブジェクトを変更すると、古いリンクに対して変更されます（結局、両方とも同じオブジェクトを指します）。
1. Какие знаете шаблоны проектирования? Расскажите о двух шаблонах, которые использовали в работе - Говоря о шаблонах проектирования, которые вы можете привести в качестве примеров на собеседовании, на ум приходят:
Builder — часто используемый шаблон, альтернатива классическому созданию объектов;
паттерн Стратегия, который по своей сути представляет полиморфизм. То есть, у нас есть один интерфейс, но поведение программы будет меняться в зависимости от того, какую конкретно реализацию этого интерфейса передали в функционал (сейчас стратегия фактически везде используется в java-приложениях).
Если этого вам мало, обратите внимание на Spring (если вы с ним уже знакомы), ведь он представляет собой целую платформу фреймворков, которые в свою очередь пронизаны паттернами вдоль и поперек.

2. Какие есть типы данных в Java? - В Java есть примитивные типы данных:
byte — целые числа в пределах -128 до 127, весит 1 байт;
short — целые числа в пределах -32768 до 32767, весит 2 байта;
int — целые числа -2147483648 до 2147483647, весит 4 байта;
long — целые числа в пределах 9223372036854775808 до 9223372036854775807, весит 8 байтов;
float — числа с плавающей запятой в пределах -3.4E+38 до 3.4E+38, весит 4 байта;
double — числа с плавающей запятой в пределах -1.7E+308 до 1.7E+308, весит 8 байтов;
char — одиночные символы в UTF-16, весит 2 байта;
boolean значения true/false, весит 1 байт.

3. Чем отличается объект от примитивных типов данных? - Первое отличие: количество занимаемой памяти: примитивы занимают очень мало, ведь они содержат лишь собственное значение, в то время как объекты могут содержать очень и очень много различных значений: как примитивов, так и ссылок на другие объекты.
 
Второе отличие: Java —это объектно-ориентированный язык, поэтому в ней все работает через взаимодействие между объектами, и примитивы тут не сильно вписываются (собственно, поэтому Java — это не 100% объектно-ориентированный язык).
 
Третье, вытекающее со второго: так как Java ориентирована на взаимодействие между объектами, у этих объектов есть много различных механизмов для управления. Например, конструкторы, методы, исключения (которые работают в первую очередь с объектами), и т.д.
 
Собственно, чтобы примитивы могли как-то ввязаться (работать) в этой объектно ориентированной среде и были придуманы обертки (wrappers) для примитивных типов (Integer, Character, Double, Boolean...)

4. В чем разница передачи параметров по ссылке и по значению? - Примитивные поля хранят свое значение: например, если мы задали int i = 9; поле i хранит значение 9. Когда у нас есть ссылка на объект, это значит, что мы имеем поле со ссылкой на объект, или другими словами — со значением адреса объекта в памяти. В случае с примитивом будет копироваться значение примитива. Соответственно, в методе будет вестись работа с копией, при изменении которой оригинал не затронется.
 
В случае со ссылочным типом будет копироваться значение адреса памяти, соответственно, адрес будет все тем же, как и объект, на который он указывает. 
И если мы будем менять объект по этой новой ссылке, он будет изменен и для старой (ведь они обе указывают на один и тот же объект).