본문 바로가기

java40

[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] 표준 API #2 - System, Class + java.lang.reflect [System]1) java.lang.System- jvm 위에서 실행되기때문에 운영체제의 모든 기능을 이용할 순 없지만 System으로 운영체제 일부 기능을 사용할 수 있음 (1) exit(2) gc - java.lang.Object.finalize(3) currentTimeMillis / nanoTime(4) getProperty / getPropertiespackage com.jinbro.source.stdapi.system; public class SystemTest { public static void main(String[] args) { /* exit : 프로세스 종료, 0은 정상종료 0이외의 값 비정상종료 System.exit(0); */ /* setSecurityManager : exit.. 2017. 10. 1.
[Java] 표준 API #1 - API 소개, Object(lang), Objects(util) [API]- Application Programming Interface- 자바 어플리케이션 프로그래밍에 있어서 필요한 꾸러미들을 제공해줌- 라이브러리- 맥 기준 : /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre/lib/rt.jar 포함- API 문서 : http://docs.oracle.com/javase/8/docs/api/ [API 패키지]1) java.lang : 문법 뿌리- 기본적인 클래스 패키지- Object : 클래스의 최상위 클래스- System : jvm, 표준입출력, 가비지컬렉터- Class : 리플렉션- String- StringBuffer, StringBuilder : 문자열 조작- Math : 수학 관련-.. 2017. 10. 1.
[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] 객체지향과 상속#2 - 자바 다형성 구현과 상속 [다형성과 상속](1) 다형성과 상속(extends, implements, Override)- 우선 다형성이란? : 하나의 타입이 여러 형태로 동작할 수 있다는 성질, OOP의 특징, 객체는 각각 고유한 성질을 가진다- 다형성은 어떻게 프로그래밍에서 나타나나?1) 객체타입에서의 다형성 : 여러 역할을 가질 수 있음- extends, implements 사용- A 카페에서는 손님, B 카페에서는 바리스타 2) 메서드의 다형성 : 같은 타입을 구현하는 객체타입이지만 각각 다르게 동작할 수 있음- 같은 Tire를 상속하고 Tire의 roll 메서드를 오버라이딩하지만 HankookTire, KumhoTire는 각각 다른 내부동작(성능)을 가짐- 같은 객체 타입에서 파생됐지만 각각의 특성을 가짐 - 자바 synt.. 2017. 9. 24.
[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] 어노테이션 - xml을 벗어나자 [어노테이션](1) 사전정의로는 주석이지만 자바에서는 주석 이상의 역할을 함 (2) 메타데이터 역할 - 컴파일, 런타임에서 어노테이션이 붙은 코드에 대해서 어떻게 처리할지 정보를 줌 - 사전에 세팅시키는 데이터와 로직을 분리시킬 수 있음 - 리스너 연결 같은 류의 중복되는 코드를 줄일 수 있음 - 활용 예제 그리고 써보면서 어노테이션에 대해서 더 알아보겠음 (3) 어노테이션 종류 1) 기본 제공 어노테이션 - @Override : 슈퍼 타입의 메서드를 오버라이딩할 때 기본적으로 세팅되며, 컴파일러가 정확하게 오버라이딩 됐는지 체크함 - @SuppressWarnings : 실행에는 문제없지만 컴파일 과정에서 뿜는 메세지를 보기 싫을 때 어노테이션 처리해두면 안뿜음 - @Deprecated : 더 나은 대안.. 2017. 9. 21.
[Java] 클래스 - 객체지향, static, instance, 접근제어자, 싱글턴 등 [객체지향과 클래스] : 조금 더 자세한 내용(http://jinbroing.tistory.com/207) (1) 객체 - 어떠한 기능을 만들기위해 필요한 존재 - 각각의 존재가 구분되고 고유의 상태와 행동을 가짐 : 독립적인 존재, 공용 인터페이스로만 요청이 가능 => 접근제어자 사용 : private, protected, public - 본질은 타 객체와 협력하는 존재(협력 요청 방법) : 객체.요청인터페이스() - 요청에 응해서 결과값을 줄 것인지는 응답 객체에 달림(캡슐화) - 타 객체가 협력 요청을 할 수 있도록 요청 인터페이스를 가지고 있음 (2) 객체지향 프로그래밍(OOP) : 객체들의 협력 관점에서 프로그래밍 하는 것 - 사용 : A 객체가 B 객체를 사용함, 사람과 자동차 - 집합 : 완.. 2017. 9. 19.