Java 46

EL (Expression Language)

EL (Expression Language) Java에서 넘어온 객체를 간단하게 표현할 수 있게 해준다. 예를 들어, ${person.name} 의 경우 왼쪽은 반드시 java.util.Map 객체 또는Java Bean 객체가 오며 오른쪽은 Map의 키 또는 Bean 객체의 파라미터가 온다. 1. 객체 // 스크립틀릿 // EL ${person.dog.name} 2. 배열, 리스트 ex) String[] courses = {"AAA", "BBB", "CCC}; // 스크립트릿 // EL ${courses[1]} 3. GET 파라미터 // 스크립트릿 // EL 4. JSP 내장객체 request도 내장객체 // EL ${pageContext.request.contextPath}

개발_웹/Java 2019.05.11

JSTL (Java Serverpage Tag Library)

JSTL (Java Serverpage Tag Library) Java 템플릿 엔진. 반복문이나 삽입문 등 여러 문법들을 JSP내에서 사용할 수 있게 제공한다. 스크립틀릿을 사용하는 것보다 사용하기 편하고 코드가 간결해진다. 많이 쓰이는 문법으로는 , , 등이 있다. Maven이나 Gradle로 라이브러리를 추가하거나 혹시 직접 JAR 추가하는 경우에는 Impl, Spec, EL 세 가지 모두 추가해준다. 그 다음 사용할 JSP 파일에 아래 지시문을 선언 후 사용한다.

개발_웹/Java 2019.05.11

Java | Objects.equals()

Objects.equals(Object a, Object b) - 두 객체가 같거나 모두 null인 경우 true 반환 - 두 객체가 다르거나 하나만 null인 경우 false 반환 if (Objects.equals(this.id, user2.getId()) { // do something } 일반적으로 객체로 호출한 equals()를 통해 객체를 비교할 때, 파라미터로 null이 들어올 수 없기 때문에 null 검사가 선행되어야 했었다. 그러나 Objects.equals() 메소드를 사용하면 null까지 비교해주니 편리해보인다. 단, 사용자 정의 클래스는 equals(), hashCode()를 재정의 해야 한다. 2019.05.10 - [IT&프로그래밍/Java] - Java | equals(), ha..

개발_웹/Java 2019.05.10

Java | 제네릭 파라미터 타입 제한, 와일드카드 타입

파라미터 타입 제한 제네릭의 파라미터 타입을 제한하고 싶을 때 사용 예를 들어, 숫자를 연산하는 제네릭 메소드는 매개값으로 Number 타입 또는 하위 클래스인 Byte, Short, Integer, Long, Double 의 인스턴스만 가져야 할 때 사용할 수 있다. 제한된 타입 파라미터를 선언하려면 타입 파라미터 뒤에 extends 키워드를 붙이고 상위 타입을 명시하면 된다. 상위 타입은 인터페이스도 가능하나 implements를 사용하지는 않는다. public int compare(T t1, T t2) { double v1 = t1.doubleValue(); double v2 = t2.doubleValue(); return Double.compare(v1, v2); } 와일드 카드 타입 제네릭 타입..

개발_웹/Java 2019.05.10

Java | equals(), hashCode() 오버라이딩을 통한 객체 비교

equals() 재정의 String 같은 클래스는 equals() 메소드를 사용하여 문자열을 비교할 수 있다. equals()는 String에 대해 서로 다른 객체일지라도 리터럴이 같다면 같은 객체로 인정한다. 그러나 이는 String 클래스에 equals()가 이미 재정의 되어있기 때문이고, 원래 equals() 메소드는 같은 객체에 대해서만 true를 반환한다. 내용이 같더라도 new로 새로 생성하거나 깊은 복사를 통해 만들어진 객체는 주소값이 다르기 때문에 다른 객체로 인식한다. 프로그래머가 만든 객체를 String처럼 내용만 비교하여 같은 객체로 판단하게 하려면 equals() 메소드를 재정의(오버라이딩) 해야한다. @Override public boolean equals(Object obj) {..

개발_웹/Java 2019.05.10

Java | 컬렉션(Collection), 맵(Map) 정렬하기

Map은 Key-Value 구조로 이루어져 있으며, Key는 Set, Value는 List로 구성되어있다. Key를 기준으로 정렬하려면 TreeMap을 사용하면 된다. Value를 기준으로 Map을 정렬하는 방법과 멤버변수를 기준으로 Collection을 정렬하는 방법을 알아보자. 1. Value 값들을 List로 추출 Map인 경우 Value 값들을 List로 추출해준다. list = new ArrayList(map.values()); 2. Comparator 만들기 Comparator 인터페이스를 구현하는 클래스를 만들어 compare() 메소드를 재정의 한다. compare() 메소드는 비교할 두 대상을 파라미터로 받고, 결과에 따라 -1, 0, 1을 반환한다. 반대로 정렬 시에는 클래스를 또 만들..

개발_웹/Java 2019.05.10

Java | toString() 메소드로 객체의 정보 출력하기

toString() 메소드는 Object 클래스의 메소드로 자기자신(객체)을 출력하는 것을 목적으로 한다. System.out.println(obj);와 같은 코드는 자동으로 System.out.println(obj.toString());로 변환된다. toString()은 기본적으로 오브젝트의 클래스명과 해쉬코드값을 출력한다. 필드값과 같은 정보들을 출력하려면 아래와 같이 오버라이딩하여 사용하면 된다. public class Student { private String name; private int id; private int kor, eng, math; private int sum; private double avg; private int rank = 0; static int a; @Override ..

개발_웹/Java 2019.05.10