본문 바로가기

분류 전체보기

(329)
[Java] 지네릭 타입의 형변환 지네릭 타입과 원시 타입 간의 형변환은 바람직 하지 않다.(경고 발생)Box objBox = null;Box box = (Box)objBox; // OK. 지네릭 타입 => 원시 타입. 경고 발생objBox = (Box)box; // OK. 원시타입 => 지네릭타입. 경고 발생 Box object = null;Box strBox = null;objBox = (Box)strBox; // 에러. Box => BoxstrBox = (Box)objBox; // 에러. Box => Box 와일드 카드가 사용된 지네릭 타입으로는 형변환 가능Box objBox = (Box)new Box(); // 에러. 형변환 불가능Box wBox = (Box new Box(); // OKBox wBox = new Box(); //..
[Java] 와일드 카드, 지네릭 메서드 와일드 카드 하나의 참조 변수로 대입된 타입이 다른 객체를 참조 가능다양성 처럼 서로 다른 지네릭타입이 대입된 객체를 다룰 수 있게 된다.ArrayList list = new ArrayList();ArrayList list = new ArrayList();ArrayList list = new ArrayList(); // 에러. 대입된 타입 불일치 : 와일드 카드의 상한 제한. T와 그 자손들만 가능 : 와일드 카드의 하한 제한. T와 그 조상들만 가능 : 제한 없음. 모든 타입이 가능. 와 동일 메서드의 매개변수에도 와일드 카드를 사용가능static Juice makeJuice(FruitBox box) { String tmp = ""; for(Fruit f: box.getList()) { ..
[Java] 지네릭 클래스의 제약 제한된 지네릭 클래스extends로 대입할 수 있는 타입을 제한class FruitBox { // Fruit의 자손만 타입으로 지정가능 ArrayList list = new ArrayList(); ...}FruitBox appleBox = new FruitBox(); // OKFruitBox toyBox = new FruitBox(); // 에러! Toy는 Fruit의 자손이 아님 인터페이스인 경우도 extends를 사용interface Eatable {}class FruitBox {...}  예제public class Ex1 { public static void main(String[] args) { FruitBox fruitBox = new FruitBox(); // Fr..
[Java] Iterator<E>, Map<K, V> Iterator클래스를 작성할 때, Object 타입 대신 T와 같은 타입 변수를 사용public interface Iterator{ boolean hasNext(); Object next(); void remove();}↓public interface Iterator { boolean hasNext(); E next(); void remove();}Iterator it = list.iterator();while(it.hasNext()) { Student s = (Student)it.next;↓Iterator it = list.iterator();while(it.hasNext()) { Student s = it.next; 예제public class Ex4 { ..
[Java] 지네릭스란? 지네릭스(Generics) 란?1. 컴파일시 타입을 체크해 주는 기능(compile-time type check) - JDK1.5// TV 객체만 저장할 수 있는 ArrayList를 생성 ArrayList tvList = new ArrayList(); tvList.add(new Tv()); tvList.add(new Audio()); // 컴파일 에러! Tv 외에 다른 타입은 저장불가} 2. 객체의 타입 안전성을 높이고 형변환의 번거로움을 줄여줌.ArrayList tvList = new ArrayList();tvList.add(new Tv());Tv tv = (Tv) tvList.get(0); // Object 타입 변환(형변환 필요)↓ArrayList tvList = new Ar..
[JSP] Servlet 파라미터 값 받기 HTML 구현 로그인 아이디: 비밀번호:   LoginServlet 구현@WebServlet("/Login")public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; public LoginServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("do..
[JSP] Form 태그로 Get, Post 메서드 사용해보기 Servlet은 JAVA 언어를 사용하여 웹 프로그램을 제작하는 것이다.간단한 Servlet 프로젝트를 만들어 보면서 전체적인 구조(흐름)을 살펴보겠다.protected void doGet(HttpServletRequest request, HttpServletResponse response) { // 요청처리 객체 // 응답처리 객체 Servlet 클래스는 HttpServlet 클래스를 상속 받는다.요청처리 객체 및 응답처리 객체를 톰캣 서버에서 받는다. response.setContentType("text/html; charset=utf-8"); 클라이언트에게 보여줄 때는 html로 보여준다. PrintWriter out = response.g..
[JSP] Servlet Servlet 이란?JSP 표준이 나오기전에 만들어진 표준으로 자바로 웹 어플리케이션을 개발할 수 있도록 하기 위해 만들어짐.서블릿을 이용하면 자바 클래스를 이용해서 웹 어플리케이션을 개발할 수 있다.반드시 매핑을 해야한다!! (경로명 및 보안상의 문제) 동적 웹 어플리케이션 컴포넌트.java 확장자클라이언트의 요청에 동적으로 작동하고, 응답은 html을 이용java thread를 이용하여 동작(가장 큰 장점) - thread pool을 이용하면 서버의 부하를 줄일 수 있다.MVC 패턴에서 Contoroller로 이용된다.(View - JSP, Model)  GenericServlet 추상 클래스는 Servlet과 ServletConfig 인터페이스를 구현함(반쪽 완성 설계도)HttpServlet은 Ge..
[JSP] JSP 특징, 동작 원리 인터넷과 웹의 개요인터넷컴퓨터가 서로 연결되어 TCP/IP라는 통신 프로토콜을 이용하여 정보를 주고받는 전세계의 컴퓨터 네트워크웹인터넷에 연결된 컴퓨터들을 통해 사람들이 정보를 공유할 수 있는 정보 공간월드 와이드 웹(world wide web)의 줄임말 웹의 동작 원리웹은 기본적으로 클라이언트/서버 방식으로 동작가장 널리 쓰이는 웹 서버(웹 컨테이너)아파치, 톰캣, IIS 정적 웹 페이지와 동적 웹 페이지 정적 웹 페이지컴퓨터에 저장된 텍스트 파일을 그대로 보는 것예: HTML(Hyper Text MarkUp Language)동적 웹 페이지저장된 내용을 다른 변수로 가공 처리하여 보는 것PHP(Personal Home Page), ASP(Active Server Page), JSP 정적 웹 페이지의 동..
[Java] Collections 컬렉션을 위한 메서드 Collections 컬렉션을 위한 메서드(static)를 제공 1. 컬렉션 채우기, 복사, 정렬, 검색fill( )copy( )sort( )binarySearch( )   2. 컬렉션의 동기화synchronizedXXX( )  List syncList = Collections.synchronizedList(new ArrayList(...)); 필요할 때만 동기화 하도록 설계가 바뀌었다.   2. 변경불가(readOnly) 컬렉션 만들기 unmodifiableXXX( )   3. 싱글톤 컬렉션 만들기(객체 1개만 저장하는 컬렉션)    4. 한 종류의 객체만 저장하는 컬렉션 만들기List list = new ArrayList();List checkedList - checkedList(list, Strin..