whiteship
-
[Java-36] 자바 제네릭, < >Java 2021. 2. 24. 14:35
Java Generic Generic, 제네릭 기본기 generic 을 알아보기전에, 만약 제네릭이 없었을 때를 생각해보자. 일단 ArrayList 에서 또한 우리가 알고 있는 제네릭이다. 그렇다면 없었을 경우에는 ArrayList list = new ArrayList(); 와 같은 방법으로 리스트 선언이 가능했다. 마치 파이썬에서 리스트를 선언하듯이 일정의 타입없이 사용이 가능하다는 것이다. 코드를 보도록 해보자. public static void main(String[] args){ ArrayList list = new ArrayList(); list.add("Hello"); String str = (String) list.get(0); } 문제는 이와 같다. list 에서 꺼내야 하는 타입을 타입 ..
-
[Java-35] Lombok @Getter, @Setter 직접 만들어 보자Java 2021. 2. 10. 14:17
Java Annotation Q : 왜 롬복을 만들어 보려고 하는가? 우리는 롬복을 정말 많이 사용하고는 한다. 하지만, 이 롬복이 실제로 어떻게 작동하는지에 대해서 아는사람은 많이 적을 거라고 예상한다. 나 자신도, 롬복은 그저 마법 같은 존재였을 뿐이었고, 보통 이렇게만 사용하는구나, 라고만 생각했다. 우연히 백기선님의 'The JAVA, 코드를 조작하는 다양한 방법' 의 소개 영상에서 롬복의 밑단에서 어떤 일이 발생하는지에 대해, 우리가 사용하는 코드 밑단에서 무슨일이 발생하는지에 대해서 강의가 오픈되었다고 한다. 이 강의에 끌리기 시작했고, 무작정 강의를 듣기 시작했다. 재밌게 잘들었지만, 롬복에 대한 호기심은 사라지지 않았고, 직접 롬복을 비슷하게 만들어본 사람이 있을까? 찾아봤지만, 한국에서는..
-
[Java-34] Enum 기본 (열거 타입)Java 2021. 1. 27. 13:17
Java Enum 열거타입, Enum 정의 하는법 데이터를 저장할 때 우리는 가끔 한정된 값으로만 데이터를 저장해야할 때가 많이 있을 거시다. 예를 들어서 4계절 을 따져볼 때, FourSeason(Spring, Summber, Fall, Winter) 이 4가지를 제외하고 다른 계절이 올 수 없을 것이다. 그럼 우리는 public static void main( String[] args ) { String season = "winter"; } 다음과 같이 직접 String타입의 필드를 선언해주고, 리터럴을 입력해줘야 하지만, Enum(열거타입)을 사용하게 되면, 이를 *enum 타입으로 정의할 수 있다. * enum 정의 하는 법 enum.java public enum Season { SPRING, /..
-
[Java-32] java 예외처리 기본기Java 2021. 1. 12. 00:14
Java Exception 자바가 제공하는 계층구조 우리는 java 코드를 작성하면서, 또는 개발을 하면서 많은 에러를 봐왔을 것이다. 그 중 우리는 자바에서 어떤 에러들이 있고, 그리고 자바에서는 어떻게 에러를 관리하는지에 대해서 알아보도록 하자 왜 Error에 대해서 공부해야 하는가? 만약 자바 에러처리에 대해서 배우기전에, 왜 에러에 대해서 알아야 하는가? 또는 자신은 개발을 하면서 에러문을 일기 않는다. 라고 했을 때, 다음 동영상을 꼭 보도록 하자. 자바에서 코드를 작성하면서 문제가 될 때는 크ㅈ게 2가지로 나눌 수 있다. 일단 모든 예외의 계층 구조에 대해서 한눈에 보도록 하자 Exception 과 Error 의 다른 점 예외와 오류는 모드 Throwable 클래스 의 하위 클래스인데, 에러는..
-
[Java-26] 자바 new & Heap, Constant poolJava 2020. 12. 14. 17:34
Java New Keyword 🐵 new 키워드 이해하기 (new Operator) 자 저번에는 우리가 어떻게 Class를 생성하고 만드는지, 그리고 클래스의 간단한 종류에 대해서 알아 보았다. 그럼 다시 간단한 클래스를 정의 해보자 public class Study{ // Study 클래스 정의 String name; } public class App{ public static class void main(String args[]){ Study study; // Study instance 생성 } } 지금 study라는 인스턴스는 여타 String, Integer 와 같이 현재 저렇게 딸랑 정의 해 놓으면 아무 상태도 아니다. 만약 저 상태에서 우리가 study를 출력하려 한다면 initialize, ..
-
[Java-25] 클래스 & 내부클래스 & 익명클래스Java 2020. 12. 9. 12:02
Java Class 🐵 Java 클래스 🙈 클래스? 어떤 객체지향 언어에서든지, 클래스라는 개념을 한번쯤은 들어봤을 것이다. 먼저 간단한 코드를 분석해보자, 자바에서 클래스를 선언 public class App { } 정말 쉽다, 이런식으로 public + class + name 다음과 같이 만들면 클래스 하나가 생성된 거다. 이제 클래스를 직접 만들어보면 애완동물 클래스인 Pet을 만들고, 여기에 변수도 넣어보자 public class Pet { String kind; // 펫의 종류 String name; // 펫 이름 Integer age; // 펫 나이 } 이렇게 만들어 놓은 클래스는 우리가 마음대로 찍어낼 수 있다, 내가 강아지를 키우고 있다면 클래스를 변수로 선언하여, 클래스에다가 마음대로 집..
-
[Java-23] 자바 조건문, 반복문Java 2020. 12. 4. 17:26
Java 조건문과 반복문 조건문 If 문 if문은 java든, 아니든 코드를 작성하면서, java가 이 코드를 실행을 할지 안할지 결정할 수 있게 해주는, 프로그래밍 언어에서는 필 수적은 조건문 이라고 할 수 있다. 간단한 예를 들어보자 if(true){ //실행 되는 코드 } if(str == null) { str = "helloWorld"; } 다음과 같은 코드에서 str 변수가 정말로 null값을 가지고 있다면, 실제로 { } 안에 있는 문법이 실행이 되는 것이다. 이런 간단한 if문은 다시 if(str == null) str = "HelloWorld"; 이런식으로 { }을 작성해주지 않아도 알아서 잘 작성하는 걸 볼수 있다. else 문 if문 에서는 else 라는 keyword를 지원한다. el..
-
[Java-16] 논리 연산자Java 2020. 11. 27. 14:21
Boolean or Logical Operators 1. 논리 연산자(Boolean or Logical Operators) 우리가 지금까지 봐 왔듯이 , 비교 연산자는 두 수를 비교를 해서, 그 결과 값을 boolean(TRUE, FALSE) 를 반환하고, 우리는 아마, if문이나 for문을 통한 루프, 연속된 조건이 체이닝 걸렸을 때(Branching and Looping statements) 많이 사용했을 것이다. 한가지의 상황에서만 대처하는게 아니라 보통 2가지 이상(여러개의) 상황을 비교해야 하기 때문에 우리는 Boolean 연산자 *논리연산자 를 사용해서 Multiple한 비교를 진행할 수 있다. 논리 연산자는 피연산자에게 Boolean *참/거짓 값을 받아야 한다. 그리고 값을 통해 연산을 하..