본문 바로가기

java22

[Java] 제네릭, 와일드카드 - 제네릭, 와일드카드는 깊게 알수록 복잡하다 [제네릭, 와일드카드 공부하면서 작성한 코드] - https://github.com/imjinbro/javaBasic/tree/master/src/com/jinbro/source/generic [제네릭, 파라미터와 타입 파라미터]- java5부터 1) 파라미터 : 값(인자, argument)을 받아 파라미터 변수와 바인딩하고 메서드 내부에서 사용함2) 타입 파라미터- 파라미터인데, 그 값이 타입인 것- 객체를 생성할 때 타입을 받아서 그 타입으로 만듬- 인자를 넘겨받을 때에는 으로 3) 그 타입인 데이터 자체에 관심이 있다는 것- List = new ArrayList() 라면 타입인 데이터 자체에 관심을 가짐 [제네릭의 장점]1) 강력한 타입 체킹 : 인자로 받은 타입과 일치하지않는 데이터를 입력받으면 .. 2017. 10. 28.
[Java] 표준 API #5 - Calendar, Date, Format, java.time 패키지 [API 알아보기]1) java.util.Date, java.util.Calendar- 시스템 날짜, 시간 관련 유틸리티 객체/* [Date + SimpleDateFormat] 1) 시스템의 날짜, 시간을 읽을 수 있는 유틸리티 2) 날짜를 주고 받을 때 주로 사용 3) java.text.SimpleDateFormat 메서드로 특정 포맷 출력 가능 : 패턴 지정해줘야함 - Format 관련 패키지 : java.text */ import java.text.SimpleDateFormat; import java.util.Date; public class DateTest { public static void main(String[] args) { //다양한 생성자가 있지만 권장하지않는 어노테이션(Deprecat.. 2017. 10. 19.
[Java] 표준 API #3 - String / StringBuffer, Builder / StringTokenizer, Pattern [API 설명]1) java.lang.String- char[]를 래핑- immutable Object : 힙영역에 1번 생성되면 값을 변경할 수 없음=> 힙 영역에서 변경이 불가하다는 것 : 최적화(같은 문자열 == 같은 객체 - 공유), 안전성=> 새로운 객체를 생성해서 참조 객체주소값을 변경하는 것=> 보통 final 클래스로 선언 : 상속해서 Immutable 속성을 없애버릴 수도 있음 - Charset 신경쓰기 : UTF-8, EUC-KR에 따라 한글 인코딩 길이가 다름import java.io.UnsupportedEncodingException; public class StringTest { public static void main(String[] args) { /* byte[]을 Strin.. 2017. 10. 9.
[Java] 예외처리 - 예외란, 예외처리, 사용자정의예외, java7 예외처리 [예외]1) 사용자의 잘못된 조작 2) 개발자의 잘못된 코딩 - 위 2가지 이유로 인해서 발생하는 오류를 예외(exception)라 함, jvm 불능되는 오류를 에러라 함 - 예외가 발생하면 응용프로그램이 종료됨 - 아래는 예외의 종류 1) 일반 예외 : 컴파일 과정에서 체크되는 예외, 코드 상(컴파일 과정에서 처리)에서 발생하는 예외 2) 실행 예외 : 컴파일 과정에서 체크되지않는 예외, 런타임 떄 발생하는 예외 3) 어플리케이션 예외 : 사용자정의 예외(1, 2번 중 하나에 속해짐), 아래에서 어떻게 만드는지 설명 - 자바는 예외를 객체로 관리함 : 예외 발생 시 예외 객체 생성(최상위 : java.lang.Exception) 1) 일반 예외 : Exception 상속, RuntimeException.. 2017. 9. 29.
[Java] 인터페이스 그리고 OOP 다형성 [인터페이스]1) 객체간의 상호작용 요청 목록, "인터페이스를 구현하는 객체는 이런 책임들을 진다"는 목록2) 이런 것을 할 수 있어 그러니 요청해(인터페이스) 목록- 이름 표준화- 내부만 변경하면 됨 : 구현부만 변경- 자료구조에서 표준 타입으로 관리할 수 있음 3) 인터페이스와 implements 클래스 == 다형성- 객체 다형성 : 다양한 역할을 할 수 있음, 손님인 동시에 바리스타도 될 수 있음- 메서드 다형성 : 구현객체에 따라 메서드 동작은 다양함, 선언부는 같지만- 필드 다형성 : 표준화된 타입(interface)로 선언, 참조하는 구현객체에 따라 실행 결과 다양- 매개변수 다형성 : 표준화된 타입(interface)로 선언, 인자 구현객체에 따라 실행 결과 다양=> 자동형변환됨, 자동형변환.. 2017. 9. 26.
[Java] JDBC와 RDBMS 개념 이야기 [DBMS의 등장]- 데이터베이스 관리 시스템이 등장하기 전 데이터 관리를 위해 어플리케이션에서 직접 File I/O를 작성함 - 어플리케이션과 데이터베이스 관리 프로그램을 따로 두기 시작함 : 데이터 관리 전용 프로그램 - Database Management System [SQL과 (R)DBMS]- 어플리케이션과 DBMS 간의 통신 내용(데이터 요청) : 어플리케이션에서 File I/O를 구현하지않고도 데이터를 입/출력을 할 수 있게됨 - SQL : 여러 DBMS(그 중 RDBMS)가 생겨났으니 표준화된 소통 방법이 있어야했음 - Structured Query Language [DBMS 접근 API와 JDBC]- sql이 DBMS에 저장된 데이터를 요청하는데에 사용된다면, 두 프로그램 간의 통신을 하기.. 2017. 9. 25.
[Java] 객체지향과 상속 #1 - 상속이란? [상속 기본개념] (1) 상속이란? 객체 관계를 중심으로 설명- 객체 간의 관계를 설정하는 것 : 여러 관계가 있지만 서로 속하는 관계로 설정함- 서로 속한다 : 상위와 하위(파생, 포함)관계로 설정하는 것을 말함- 예 : 타이어 > 한국타이어, 금호타이어 (2) 상속을 구체화한 자바 문법 : extends(class), implements(interface), Override(3) 상속 범위- private를 제외한 접근제어자 (4) extends를 사용해보자public class Account { /* private field */ private String account_num; private int money; /* public field */ public Account() { this.accou.. 2017. 9. 24.
[Java] 서버 프로그래밍 - 특강으로 맛보기, 배운것과 앞으로 배워야할 것 #2 [미리 정리하기]- jsp 개념, 사용방법- jsp가 servlet 변환 -> .java- jsp / servlet 로딩타임- web.xml 존재- 쿠키, 세션- redirect 와 forward의 차이- jdbc를 사용하는 이유, mysql 외부 서버에 접속하기위해 필요한 것 [강의내용](1) 이클립스 다이나믹 웹어플리케이션 생성부터 - test 폴더 추가하기 : 패키지 생성까지- web.xml 생성 추가=> 웹 컨테이너에게 클라이언트가 요청한 URL 주소가 서블릿 요청임을 인식하고, 서블릿 클래스 위치를 알려주기위한 정보가 있는 파일=> URL과 매핑된 서블릿 클래스를 동적로딩 : 다음 포스팅에서 동적로딩부터 쓰레드 생성, 사이클까지 다룰 예정, 이번엔 jsp부터 살펴봄=> DD(Deployment .. 2017. 9. 14.
[Java] 서버 프로그래밍 - 특강으로 맛보기, 배운것과 앞으로 배워야할 것 #1 [나의 이야기부터](1) 참여 계기 : express보다 역할이 세세하게 쪼개져있고 개념, 구조만 익히기위해서 참여하게됨(2) 다 끝나고 난 뒤 : 개념, 구조 뿐만 아니라 팁, 더 넓은 범위의 개념, 추상적이던 것을 구체적으로 배우게 된 시간(3) 포스팅 구성3일 차 내용을 3번에 걸쳐 포스팅 할 예정, 그리고 개념, 구조 내용을 정리한 포스팅도 할 예정 : 하루 8시간 3일 동안 배우고 만들고 했음!서버 개념, 자바 프로그램 실행 기초, 프로토콜, 톰캣, 서블릿, jsp, 모델1, 모델2, 모델2 프론트 컨트롤러 패턴, 객체지향 개발 등 객체지향 : 자바 기본 공부하다가 객체지향 패러다임을 확실하게 알고싶어 객체지향의 사실과 오해라는 책을 읽고 있는 와중에 특강에서 듣게되면서 더욱 이해하게됨 앞으로 .. 2017. 9. 14.
[Java] 레퍼런스 타입, jvm 메모리 운영, 프로그램-프로세스-쓰레드 등 [들어가기에 앞서]- 기본적으로 필요한 개념까지 살펴봄 : JVM 메모리 구조, 프로그램 - 프로세스 - 쓰레드 - 이번 파트는 제대로 몰랐다는 생각이 강해서 구체적으로 내용 정리해봄 [자바의 데이터타입]- 프로그램 : 데이터를 처리함 - 데이터의 타입 (1) primitive type : 정수, 실수, 논리리터럴을 저장하는 타입(+ 관련 연산) => 변수에 실제 값을 저장 => 메모리 구조에서 스택 영역에 생성 (2) refrerence type : 객체의 주소값을 참조하는 타입(array, enum, class, interface) => 변수에 참조하는 객체의 주소값(메모리)을 저장 => 객체 주소값을 가지고 객체를 참조한다는 뜻 => 메모리 구조에서 힙 영역에 생성 : 아래 참고! => 변수 자체는.. 2017. 9. 7.