Java for Beginner
685 subscribers
584 photos
161 videos
12 files
898 links
Канал от новичков для новичков!
Изучайте Java вместе с нами!
Здесь мы обмениваемся опытом и постоянно изучаем что-то новое!

Наш YouTube канал - https://www.youtube.com/@Java_Beginner-Dev

Наш канал на RUTube - https://rutube.ru/channel/37896292/
Download Telegram
Вы на его глаза посмотрите, помоему он в шоке 🤣

https://t.me/Java_for_beginner_dev

#Mems
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2😱1
Вопросы с собеседования 👩‍💻

Какие примитивные типы данных есть в Java?
Anonymous Quiz
2%
String, int, float, boolean
92%
byte, short, int, long, float, double, char, boolean
2%
Integer, Double, Boolean, Char
4%
Все типы в Java являются объектами.
👍1
Класс Class и его методы. Часть 2

Получение информации о суперклассе и интерфейсах

getSuperclass()
Возвращает Class объекта, представляющего суперкласс текущего класса. Если класс не имеет суперкласса (например, Object), возвращается null.

Пример:
Class<?> arrayListClass = ArrayList.class;
Class<?> superClass = arrayListClass.getSuperclass();
System.out.println(superClass.getName()); // Вывод: java.util.AbstractList


getInterfaces()
Возвращает массив Class объектов, представляющих интерфейсы, реализованные классом.

Пример:
Class<?>[] interfaces = arrayListClass.getInterfaces();
for (Class<?> iface : interfaces) {
System.out.println(iface.getName()); // Вывод: java.util.List, java.util.RandomAccess и т.д.
}


Работа с аннотациями

getAnnotations()
Возвращает массив всех аннотаций, присутствующих на классе, включая унаследованные.

Пример:
@Deprecated
class MyClass {}

Class<?> myClass = MyClass.class;
Annotation[] annotations = myClass.getAnnotations();
for (Annotation ann : annotations) {
System.out.println(ann.annotationType().getName()); // Вывод: java.lang.Deprecated
}


getDeclaredAnnotations()

Возвращает массив всех аннотаций, непосредственно объявленных на классе (без унаследованных).

Пример:
Annotation[] declaredAnnotations = myClass.getDeclaredAnnotations();
for (Annotation ann : declaredAnnotations) {
System.out.println(ann.annotationType().getName()); // Вывод: java.lang.Deprecated
}


Пример получения информации о суперклассе и аннотациях
public class Main {
public static void main(String[] args) {
Class<?> clazz = ArrayList.class;

// Суперкласс
Class<?> superClass = clazz.getSuperclass();
System.out.println("Superclass: " + superClass.getName());

// Интерфейсы
Class<?>[] interfaces = clazz.getInterfaces();
for (Class<?> iface : interfaces) {
System.out.println("Interface: " + iface.getName());
}

// Аннотации
Annotation[] annotations = clazz.getAnnotations();
for (Annotation ann : annotations) {
System.out.println("Annotation: " + ann.annotationType().getName());
}
}
}


#Java #Training #Medium #Reflection_API #Class
👍2🔥1
✏️ Цитата дня: Дуглас Энгельбарт

"Мы создаем инструменты, которые изменяют мир, но сначала они изменяют нас."


Эта фраза принадлежит Дугласу Энгельбарту, изобретателю компьютерной мыши. Ее суть — в том, что технологии не только меняют мир вокруг нас, но и влияют на наше мышление и поведение. Энгельбарт использовал этот подход, чтобы показать, как инновации меняют общество.


Почитать биографию

#Citation #Biography
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
📌 Факт дня:

"А вы знали, что первый сенсорный телефон стоил $899?"


IBM Simon, выпущенный в 1994 году, был телефоном, пейджером и КПК в одном. Сегодня за эти деньги можно купить телефон, который звонит, фотографирует и готовит кофе. 📞

#facts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Получение информации о полях.

Поле класса — это переменная, объявленная внутри класса. Оно может быть статическим или нестатическим, публичным, приватным или защищенным. Reflection API позволяет получать информацию о полях класса, включая их типы, модификаторы и значения.

Получение полей класса

getFields()
Возвращает массив всех публичных полей класса, включая унаследованные от суперклассов.

Пример:
import java.lang.reflect.Field;

class Parent {
public String parentField = "Parent Field";
}

class Child extends Parent {
public String childField = "Child Field";
private int privateField = 42;
}

public class Main {
public static void main(String[] args) {
Class<?> clazz = Child.class;
Field[] fields = clazz.getFields();
for (Field field : fields) {
System.out.println("Field: " + field.getName()); // Вывод: parentField, childField
}
}
}


getDeclaredFields()
Возвращает массив всех полей, объявленных в классе, включая приватные и защищенные, но не включает унаследованные поля.

Пример:
Field[] declaredFields = clazz.getDeclaredFields();
for (Field field : declaredFields) {
System.out.println("Declared Field: " + field.getName()); // Вывод: childField, privateField
}


Работа с модификаторами полей


getModifiers()

Возвращает модификаторы поля в виде целого числа. Для расшифровки используется класс Modifier.

Пример:
Field privateField = clazz.getDeclaredField("privateField");
int modifiers = privateField.getModifiers();
System.out.println("Is Private: " + Modifier.isPrivate(modifiers)); // Вывод: true
System.out.println("Is Static: " + Modifier.isStatic(modifiers)); // Вывод: false


getType()
Возвращает тип поля в виде объекта Class.

Пример:
Class<?> fieldType = privateField.getType();
System.out.println("Field Type: " + fieldType.getName()); // Вывод: int


#Java #Training #Medium #Reflection_API #Field
👍1
Что выведет код?

public class Task060225 {
public static void main(String[] args) {
String s = "hello";
String sub = s.substring(1, 3);
System.out.println(sub);
}
}


#Tasks
👍1
Варианты ответа:
Anonymous Quiz
9%
hello
7%
llo
78%
el
7%
he
🏆2
По-моему мало одного? 💪😋

https://t.me/Java_for_beginner_dev

#Mems
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2
Получение информации о полях. Часть 2

Пример получения информации о полях

Рассмотрим более сложный пример, где мы получаем информацию о всех полях класса, включая их типы и модификаторы.
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

class Example {
public String publicField = "Public Field";
private int privateField = 42;
protected static final double PROTECTED_FIELD = 3.14;
}

public class Main {
public static void main(String[] args) throws Exception {
Class<?> clazz = Example.class;

// Получаем все поля (публичные и унаследованные)
Field[] fields = clazz.getFields();
System.out.println("Public Fields:");
for (Field field : fields) {
System.out.println(" Name: " + field.getName());
System.out.println(" Type: " + field.getType().getName());
System.out.println(" Modifiers: " + Modifier.toString(field.getModifiers()));
}

// Получаем все объявленные поля (включая приватные и защищенные)
Field[] declaredFields = clazz.getDeclaredFields();
System.out.println("Declared Fields:");
for (Field field : declaredFields) {
System.out.println(" Name: " + field.getName());
System.out.println(" Type: " + field.getType().getName());
System.out.println(" Modifiers: " + Modifier.toString(field.getModifiers()));
}
}
}


Вывод программы
Public Fields:
Name: publicField
Type: java.lang.String
Modifiers: public
Declared Fields:
Name: publicField
Type: java.lang.String
Modifiers: public
Name: privateField
Type: int
Modifiers: private
Name: PROTECTED_FIELD
Type: double
Modifiers: protected static final


Нюансы использования

Доступ к приватным полям:
По умолчанию приватные поля недоступны через getFields(). Для доступа к ним нужно использовать getDeclaredFields() и вызвать метод setAccessible(true).

Пример:
Field privateField = clazz.getDeclaredField("privateField");
privateField.setAccessible(true); // Разрешаем доступ к приватному полю
System.out.println("Private Field Value: " + privateField.get(new Example())); // Вывод: 42


Статические поля:

Для получения значения статического поля можно передать null в метод get().

Пример:
Field staticField = clazz.getDeclaredField("PROTECTED_FIELD");
staticField.setAccessible(true);
System.out.println("Static Field Value: " + staticField.get(null)); // Вывод: 3.14


#Java #Training #Medium #Reflection_API #Field
👍1
✏️ Цитата дня: Джефф Этвуд

"Лучший код — это тот, который не нужно писать."


Эта фраза принадлежит Джеффу Этвуду, сооснователю Stack Overflow. Ее суть — в том, что простота и минимализм в коде важнее сложных решений. Этвуд использовал этот подход, чтобы подчеркнуть важность эффективности в разработке.

Почитать короткую биографию

#Citation #Biography
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🤔1
📌 Факт дня:

"А вы знали что... существует язык программирования под названием 'Brainfuck'?"

Этот язык был создан для того, чтобы показать, насколько минималистичным может быть язык программирования. Его синтаксис состоит всего из восьми символов! Попробуйте угадать, почему его так назвали.


Proof

#facts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2😁1🤨1
Получение информации о методах.

Класс Method в Java является частью Reflection API и представляет собой метаинформацию о методах класса. С помощью этого класса можно получить информацию о методах, их параметрах, возвращаемых типах и аннотациях.

Что такое метод класса и как его получить

Метод класса — это блок кода, который выполняет определенную задачу.

В Java методы могут быть:
Публичными (public): доступны из любого класса.
Приватными (private): доступны только внутри класса.
Защищенными (protected): доступны внутри класса и его подклассов.
По умолчанию (без модификатора): доступны внутри пакета.


Для получения методов класса используются методы:

getMethods()
Возвращает массив всех публичных методов класса, включая унаследованные от суперклассов и интерфейсов.

Пример:
Class<?> clazz = String.class;
Method[] methods = clazz.getMethods();
for (Method method : methods) {
System.out.println(method.getName());
}


getDeclaredMethods()
Возвращает массив всех методов, объявленных в классе (включая приватные и защищенные), но не включает унаследованные методы.

Пример:
Method[] declaredMethods = clazz.getDeclaredMethods();
for (Method method : declaredMethods) {
System.out.println(method.getName());
}


Пример получения методов класса
import java.lang.reflect.Method;

public class Main {
public static void main(String[] args) {
Class<?> clazz = String.class;

// Получение всех публичных методов
System.out.println("Public Methods:");
Method[] methods = clazz.getMethods();
for (Method method : methods) {
System.out.println(method.getName());
}

// Получение всех объявленных методов
System.out.println("\nDeclared Methods:");
Method[] declaredMethods = clazz.getDeclaredMethods();
for (Method method : declaredMethods) {
System.out.println(method.getName());
}
}
}


#Java #Training #Medium #Reflection_API #Method
👍1
Что выведет код?

abstract class Shape {
abstract void draw();
}

class Circle extends Shape {
void draw() {
System.out.println("Drawing Circle");
}
}

class Square extends Shape {
void draw() {
System.out.println("Drawing Square");
}
}

public class Task070225 {
public static void main(String[] args) {
Shape shape = new Circle();
shape.draw();
shape = new Square();
shape.draw();
shape = null;
shape.draw();
}
}


#Tasks
👍1
Тут на неделю работы? 😱 😕

https://t.me/Java_for_beginner_dev

#Mems
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1
Вопросы с собеседования 👩‍💻

Какой тип данных используется для хранения целых чисел?
Anonymous Quiz
4%
float
94%
int
0%
double
2%
char
🔥2
Получение информации о методах.

Работа с параметрами методов

getParameterTypes()
Возвращает массив Class объектов, представляющих типы параметров метода.

Пример:
Class<?> clazz = String.class;
Method method = clazz.getMethod("substring", int.class, int.class);
Class<?>[] parameterTypes = method.getParameterTypes();
for (Class<?> paramType : parameterTypes) {
System.out.println(paramType.getName()); // Вывод: int, int
}


getReturnType()
Возвращает Class объект, представляющий тип возвращаемого значения метода.

Пример:
Class<?> returnType = method.getReturnType();
System.out.println(returnType.getName()); // Вывод: java.lang.String


Пример получения информации о параметрах и возвращаемом типе
import java.lang.reflect.Method;

public class Main {
public static void main(String[] args) throws NoSuchMethodException {
Class<?> clazz = String.class;

// Получение метода substring(int, int)
Method method = clazz.getMethod("substring", int.class, int.class);

// Получение типов параметров
System.out.println("Parameter Types:");
Class<?>[] parameterTypes = method.getParameterTypes();
for (Class<?> paramType : parameterTypes) {
System.out.println(paramType.getName());
}

// Получение возвращаемого типа
System.out.println("\nReturn Type:");
Class<?> returnType = method.getReturnType();
System.out.println(returnType.getName());
}
}


Пример с приватным методом
import java.lang.reflect.Method;

class MyClass {
private void myPrivateMethod(int a, String b) {
System.out.println("Private Method: " + a + ", " + b);
}
}

public class Main {
public static void main(String[] args) throws NoSuchMethodException {
Class<?> clazz = MyClass.class;

// Получение приватного метода
Method method = clazz.getDeclaredMethod("myPrivateMethod", int.class, String.class);

// Получение типов параметров
System.out.println("Parameter Types:");
Class<?>[] parameterTypes = method.getParameterTypes();
for (Class<?> paramType : parameterTypes) {
System.out.println(paramType.getName()); // Вывод: int, java.lang.String
}

// Получение возвращаемого типа
System.out.println("\nReturn Type:");
Class<?> returnType = method.getReturnType();
System.out.println(returnType.getName()); // Вывод: void
}
}


#Java #Training #Medium #Reflection_API #Method
👍1🔥1
Всем добрейшего субботнего утра! 🔆

Ну как, настроены на выходные?

Очень хотел продолжить запись по созданию сервиса на неделе, но что-то много задач по работе навалилось и теперь только завтра 😉

Так что жду 😏
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥1