백엔드
-
Java Study[2022-09-14] - 객체지향프로그래밍(제네릭 프로그래밍)백엔드 2022. 9. 14. 22:59
🔸 2022-09-14 수요일 [객체지향프로그래밍] 1. 제네릭 프로그래밍 변수의 선언이나 메서드의 매개 변수를 하나의 참조 자료형이 아닌여러 자료형을 반환될 수 있도록 프로그래밍 하는 방식 실제 사용되는 참조 자료형으로서의 변환은 컴파일러가 검증하므로 안정적인 프로그래밍 방식 자료형 매개 변수 T 여러 참조 자료형으로 대체될 수 있는 부분을 하나의 문자로 표현 type의 의미로 T 사용 public class GenericPrinter { // GenericPrinter => 제네릭 클래스 private T material; // T => type의 약자. 자료형 매개 변수 public void setMaterial(T material) { this.material = material; } public..
-
Java Study[2022-09-13] - 객체지향프로그래밍(String, Wrapper 클래스)백엔드 2022. 9. 13. 22:13
🔸 2022-09-13 화요일 [객체지향프로그래밍] 1. String, Wrapper 클래스 String 클래스 선언하기 1번, String str1 = new String("abc"); => 인스턴스로 생성됨 2번, String str2 = "abc"; => 상수풀에 있는 문자열을 가리킴 1번의 new 키워드를 사용한다는 것은 힙 메모리에 Allocation을 받겠다는 의미 2번은 상수풀에 문자열이 있다면, new 사용하지 않고, 바로 사용 가능(상수풀 공유) // 1번 Test String str1=new String("abc"); String str2=new String("abc"); System.out.println(str1==str2); // 2번 Test String str3 = "abc"; ..
-
Java Study[2022-09-12] - 객체지향프로그래밍(Object 응용 문제 풀이)백엔드 2022. 9. 12. 23:16
🔸 2022-09-12 월요일 [객체지향프로그래밍] 1. Object 클래스 응용 날짜를 구현한 클래스 MyDate 날짜가 같으면 equals() 메서드의 결과가 true가 되도록 구현하기 hashCode() 메서드도 구현 MyDate 클래스 package object; public class MyDate { int day; int month; int year; public MyDate(int day, int month, int year) { this.day = day; this.month = month; this.year = year; } MyDateTest 클래스 package object; public class MyDateTest { public static void main(String[] ar..
-
Java Study[2022-09-07] - 객체지향프로그래밍(reflection programming, forName(), 동적 로딩)백엔드 2022. 9. 9. 01:13
🔸 2022-09-07 수요일 [객체지향프로그래밍] 1. Object 클래스 reflection 프로그래밍 Class 클래스로부터 객체의 정보를 가져와 프로그래밍하는 방식 => 로컬에 데이터 타입이 있다면, 굳이 이렇게 사용하지는 않음, 로컬에 객체가 없거나 자료형을 알 수 없는 자료형이 있을 경우 위 방식 사용 로컬에 객체가 없고, 자료형을 알 수 없는 경우 유용한 프로그래밍 java.lang.reflect 패키지에 있는 클래스 활용 newInstance() 메서드 Class 클래스 메서드 new 키워드를 사용하지 않고 인스턴스를 생성 Class c3 = Class.forName("java.lang.String"); => 클래스 정보를 가져옴 Constructor로 어떤 것을 가지고 있는지 확인 Con..
-
Java Study[2022-09-06] - 객체지향프로그래밍(finalize(), Class 클래스, 동적로딩)백엔드 2022. 9. 7. 23:23
🔸 2022-09-06 화요일 [객체지향프로그래밍] 1. Object 클래스 finalize 메서드 clone(), equals(), hashcode(), toString()처럼 호출하는 메서드가 아님 이 객체가 Heap 메모리에서 해제될 때, 가비지 콜렉터에서 호출되는 메서드 리소스 해제, 안 닫혀있는 소켓 닫기 역할 예외처리 많이 들어감 정리 : 직접 호출되는 메서드가 아니라 인스턴스가 힙 메모리에서 해제될 때, 가비지 콜렉터에서 수행되는 메서드 2. Class 클래스 자바의 모든 클래스와 인터페이스는 컴파일 후 class 파일로 생성됨 class 파일에는 객체의 정보(멤버 변수, 메서드, 생성자 등)가 포함되어 있음 Class 클래스는 컴파일 된 class 파일에서 객체의 정보를 가져올 수 있음 실..
-
Java Study[2022-09-05] - 스프링부트 프로젝트(JPA, Entity, model)백엔드 2022. 9. 6. 23:26
🔸 2022-09-05 월요일 [스프링 부트 프로젝트] 1. JPA를 통한 CRUD create() 메서드 작성 @Test public void create(){ User user=new User(); user.setAccount("TestUser01"); user.setEmail("TestUser01@gmail.com"); user.setPhoneNumber("010-1111-1111"); user.setCreatedAt(LocalDateTime.now()); user.setCreatedBy("admin"); User newUser=userRepository.save(user); System.out.println("newUser : "+newUser); } 결과 : newUser : User(id=1,..
-
Java Study[2022-09-04] - 스프링부트 프로젝트(JPA CRUD, @Autowired, save())백엔드 2022. 9. 6. 00:42
📌 Java Study 🔸 2022-09-04 일요일 [스프링 부트 프로젝트] 1. JPA를 통한 CRUD 이전까지 학습을 통해 @Repository 생성 스프링 프로젝트 src에서 main은 핵심 test는 main 패키지가 동일하고, main에서 작성한 코드를 테스트하는 패키지 보통 자바 코딩 시, private UserRepository userRepository = new UserRepository(); new를 붙여 직접 객체를 만들어서 userRepository를 가지고, 그 안에 속한 메서드를 사용했음 @Autowired => Dependency Injection(DI) - 스프링의 장점 사용자가 직접 객체를 만들지 않고, 스프링에서 직접 관리 따라서 new를 사용하지 않고, @Autowir..
-
Java Study [2022-09-03] - 객체지향프로그래밍(Object 클래스, equals(), hashcode(), clone())백엔드 2022. 9. 4. 23:31
📌 Java Study 🔸 2022-09-03 토요일 [객체지향프로그래밍] 1. Object 클래스 여러 객체들에 대한 equals()와 hashcode() 메서드 구현 시 먼저 작성한 equals()의 멤버를 활용하기 단, 멤버가 여러 개 있을 경우 재정의 해야 하는 경우도 있음 equals() => 두 개의 객체가 같다고 했을 때, 두 개의 객체가 반환하는 hashCode 값도 동일하게끔 오버라이딩 함 Integer i1 = new Integer(100); Integer i2 = new Integer(100); System.out.println(i1.equals(i2)); System.out.println(i1.hashCode()); System.out.println(i2.hashCode()); 실제..