Java 24

JDK, JRE, JVM, GC.... 이것들은 뭘까?

자바를 설치할 때 보면 2가지로 나뉘어져 있다. 1. JDK : Java Development Kit 2. JRE : Java Runtime Environment JRE는 자바를 실행할 수 있는 환경의 집합이다. JDK가 JRE를 포함하고 있다. JAVA로 개발을 하려면 JDK가 필요하고 JAVA프로그램을 실행시키 위해서는 JRE만 있으면 된다. JVM : Java Virtual Machine GC : Garbage Collector JVM은 자바 프로그램이 수행되는 프로세스를 말하여 메모리 관리를 한다. JVM 내에서 메모리 관리를 해주는 것이 GC (가비지 컬렉터)이다. JAVA는 ios든 window든 어디서든 실행할 수 있다. 이는 자바가 OS에 종속되어있지 않기 때문이다. 종속되지 않고 실행을 ..

DTO(Data transfer Object)...이제 생성자를 곁들인(ft.this)

DTO 속성들을 갖는 클래스를 만들고 이를 쉽게 전달하기 위해 사용하는 자바 패턴 여러 개의 데이터를 하나의 타입에 넣어서 넘겨줄 수 있다!! DTO을 이용해서 상황에 맞게 생성자를 만들수있다. public class MemberDTO { public String name; public String phone; public String email; public String getName() { return name; } public MemberDTO(String name) { this.name= name; } public MemberDTO(String name, String phone){ this.name = name; this.phone = phone; } } 이렇게 MemberDTO 클래스를 만들고 ..

[자바의 신 9장] 접근 제어자_public, protected,private

public : 누구나 접근할 수 있도록 protected : 같은 패키지 또는 상속받은 경우 package-private : 아무런 접근 제어자를 적어주지 않았을 때, 같은 패키지 내에서만 접근 가능 private : 해당 클래스 내에서만 접근 가능 자바에서는 하나의 소스 파일에 여러 개의 클래스가 선언될 수 있다. 하지만 public으로 선언된 클래스와 그 소스파일의 이름은 꼭 동일해야만 한다.

[자바의신 8장]Pass by Value 와 Pass by Reference

참조 자료형 : 기본 자료형을 제외한 모든 타입 Pass by Value ; 값만 전달한다. 원래 값은 건드리지않고 변수들의 복제본들만 메서드에 넘겨준다. -> 매개변수를 받은 메서드에서 그 값을 지지고 볶든 원래 값은 변하지 않는다. Pass by Reference ; 객체에 대한 참조가 넘어간다. (메서드에서 변경한대로 변경된다. ) 메서드의 매개 변수로 참조 자료형을 넘길 경우에는 메소드 안에서 객체의 상태를 변경한 결과에 영향을 받는다. 모든 기본 자료형은 pass by value 참조 자료형은 pass by reference -> 참조 자료형 자체는 pass by value, 그 안에 것들은 pass by reference

[JAVA의 정석]HashMap

HashMap은 Map을 구현한 클래스이다. 즉, 키와 값을 묶어 하나의 데이터로 저장한다. 해싱을 사용하기에 많은 양의 데이터를 검색하는데 뛰어난 성능을 가진다. 키를 이용해서 저장된 값을 찾아야하므로 컬랙션 내에서 유일해야한다. 코드 : 이런 식으로 map 객체를 만들어 키와 값을 넣어줄수있다. HashMap map = new HashMap(); map.put("myId","1234"); HashMap map2 = new HashMap(); // 메서드 : put(); get(key); // 지정된 key의 값을 반환 특징 : HashMap은 키와 값을 각각 Object로 저장하기 때문에 어떠한 객체도 저장할 수 있다. HashMap은 저장공간보다 값이 추가로 들어오면 저장공간을 약 2배로 늘린다. ..

[JAVA의 신]열거형(enum)_상수의 집합

정의 : 열거형 > 여러 상수를 선언해야 할 때, 편리하게 선언할 수 있는 방법 클래스의 일종으로 관련 있는 상수들의 집합이다. 열거형을 이용하면 코드가 단순해지고 가독성이 높아진다. enum 클래스에도 보통 클래스와 같이 메서드를 선언해서 사용할 수 있다. enum Kind {CLOVER, HEART, DIAMOND, SPADE} 위 코드 처럼 작성해주면 자동적으로 0부터 시작하는 정수값이 할당된다. 이런 식으로 enum 클래스를 만들 수 있다. public enum OverTimeValues { THREE_HOUR, FIVE_HOUR, WEEKEND_FOUR_HOUR; } 사용법 : 열거형에 정의된 상수를 사용하는 방법은 'enum 클래스 이름.상수명'이다. 예 ) OverTimeValues.THRE..

[JAVA의 정석]Ch7_다형성과 추상클래스

1. 다형성 (Polymorphism) 상속 관계에 있을 경우, 조상 클래스 타입의 참조변수로 자손 클래스의 인스턴스를 참조하도록 하는 것이 가능하다. SmartTv s = new SmartTv(); Tv t = new SmartTv(); 둘 다 같은 타입의 인스턴스 (smartTv)이지만 참조변수의 타입에 따라 사용할 수 있는 멤버의 개수가 달라진다. t와 s로 접근할 수 있는 멤버들이 다르다. 반대로, 자손타입의 참조변수로 조상타입의 인스턴스를 참조하는 것은 불가능하다. 상속관계에 있는 클래스 사이에서는 참조변수도 형변환이 가능하다. 조상타입의 참조변수로는 인스턴스의 멤버들을 모두 사용할 수 없기 때문에, 실제 인스턴스와 같은 타입의 참조변수로 형변환을 해야만 인스턴스의 모든 멤버들을 사용할 수 있다..

[해커톤]Swagger_이용방법(spring boot)

1. build.gradle에 의존성에 implementation "io.springfox:springfox-boot-starter:3.0.0" 를 추가해준다. 2. 그 때 뜨는 코끼리 모양을 눌러 의존성을 추가해준다. 3. config에 SwaggerConfig를 만든다. 4. 코드를 입력한다. import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors..

UMC🚀 2022.05.22

[JAVA의 정석]6_객체지향개념_클래스와 인스턴스

역시 백엔드 개발자는 자바지! 열심히 익혀보자. 기말고사 전까지 객체지향의 개념과 자바(제네릭, 쓰레드)등 를 이해하는 것이 목표! 일론머스크는 어떻게 항공 쪽은 아는게 없지않느냐 어떻게 사업을 했냐는 질문에 그는 관련 책을 읽었다. 라고 했다. 나도 프로그래머가 되기 위해서 책을 읽자 라는 생각이 들어 자바의 정석이라는 책을 읽고 익힐것이다. 객체지향언어는 - 코드의 1. 재사용성이 높고, 2. 관리(유지보수)가 용이하며 3. 신뢰성이 높은 프로그래밍을 가능하게 한다. - 코드 간에 서로 관계를 맺어 줌으로써 유기적으로 프로그램을 구성할 수 있다. 클래스는 ' 객체를 정의해놓은 것'이다. 또는 ' 객체의 설계도 또는 틀'을 의미한다. '상태'와 '행위'를 가지는 자바의 기본단위이다. 그리고 그대로 객체..

[inteilij][spring][java]편지 전송 로직

편지 전송 로직 편지를 보내는 과정에서 또래의 수신을 원하는 user, 원하지 않는 user를 구분한다. 또래의 수신을 원하는 경우 birth의 년도로 구분하여 +-5살의 차이의 user에게만 편지를 전송한다. 이렇게 생각하고 코드를 만들었는데 만약 해당 나이대의 사람이 5사람 이하라면? 여기에서 계속 에러가 발생하였다. 그래서 5명이 이하라면 선정한 5명 이하의 또래에게 보내고 나머지 사람들을 랜덤으로 골라 5명을 맞추어 편지를 보내는 로직을 만들었다. // 편지 작성(POST) public PostLetterPlantRes createLetter(PostLetterReq postLetterReq) throws BaseException { try { int letterIdx = letterDao.cre..

UMC🚀 2022.02.13