본문 바로가기

프로그래밍/JAVA

추상메서드와 인터페이스 공통점, 차이점 추상메서드와 인터페이스 1. 공통점1) 둘 다 모두 추상 메소드라는 것을 가진다. 구현 클래스에서는 반드시 만들어야만하는 강제성을 가진다. 또한 추상 메소드는 컴파일러를 속인다. 추상 클래스는 변수를 인터페이스나 부모 클래스 타입으로 보았을 때 아무런 호출에 문제를 일으키지 않는다. 따라서 컴파일러는 실제로 메소드가 어떻게 동작할지는 모르고, 아무 문제 없이 실행해준다. 즉 컴파일러를 속여서 내가 원하는 동작을 마음대로 조종하게 한다는 것이다. 2) 둘 다 객체 생성은 불가능하고, 타입으로만 사용된다.추상 클래스와 인터페이스 둘 다 객체의 생성이 목적인 클래스가 아니라. 변수나, 파라미터, 리턴 타입, 자료구조를 유연하게 쓰기 위한 도구이다. 2. 차이점1) 인터페이스는 스펙이나 원하는 기능을 정의하고자..
개발자가 놓치기 쉬운 자바의 개념, 기본원리 출처 : http://www.aboutjsp.com/spring/board/viewArticle.do?cpage=1&pgroup=1&boardId=JSPTip&keyfield=contentTitle&keyword=&boardSeq=62 JAVA를 배우는 사람, 또는 프로그래밍에 종사하시는 개발자 분들이 다시한번 봐도 괜찮을거 같은 마치 이론 시험 직전 보는 컨닝페이퍼 같이 정리 되어있는 자바의 기본원리 에 관한 자료입니다. 특히 각 주제에 맞는 목차에는 예제가 있어 JAVA를 입문하시는 초급프로그래머 들에게는 좋은 자료 같습니다. 그럼 길고긴 스크롤 내려서 꼭 보시길.. 목차 1 객체지향의 구멍 static 1.1 Java는 객체지향 언어이다? 1.2 전역변수 2 Java는 Pointer언어이다? (Ja..
이클립스(Eclipse) UML 이용할수 있는 플러그인 설치와 사용 – UML Designer 환경: Eclipse Mars 프로젝트 수행중에 제출 문서를 작성하게 됩니다. 그중 UML 형식으로 제작한 다이어그램을 추가할 때가 있습니다. 요즘은 클래스 다이어그램만 넣고 항상 쓰는 것도 아닌데 고가의 프로그램을 살수는 없죠. 그래서 무료로 제공하는 이클립스 플러그인 UML Designer 를 설치하고 간단한 사용법을 알아 보겠습니다. ▼ 설치를 위해 Help > Marketplace 를 클릭합니다. 마켓플레이스 대화상자에서 UML Designer 을 검색합니다. Kepler 버전까지 나왔는데 Mars 에서도 동작을 하더군요. 겁먹지 말고 Install 버튼을 클릭합니다. ▼ 설치 후 이클립스를 재부팅하게 되면 Perspective 에 Modeling 이 추가 되어 있을 겁니다. 다이어그램을 작성하기..
이클립스(Eclipse) 개발환경 "UTF-8" 인코딩 설정 이클립스(Eclipse) 개발환경 "UTF-8" 인코딩 설정 [ 출처 - 위키백과 ] UTF-8 인코딩은 유니코드 한 문자를 나타내기 위해 1바이트에서 4바이트까지를 사용한다. 예를 들어서, U+0000부터 U+007F 범위에 있는 ASCII 문자들은 UTF-8에서 1바이트만으로 표시된다. 4바이트로 표현되는 문자는 모두 기본 다국어 평면(BMP) 바깥의 유니코드 문자이며, 거의 사용되지 않는다. UTF-16과 UTF-8 중 어느 인코딩이 더 적은 바이트를 사용하는지는 문자열에서 사용된 코드 포인트에 따라 달라지며, 실제로 DEFLATE와 같은 일반적인 압축 알고리즘을 사용할 경우 이 차이는 무시할 수 있을 정도이다. 이러한 압축 알고리즘을 사용하기 힘들고 크기가 중요할 경우 유니코드 표준 압축 방식을 ..
JAVA Native Method (JNI) ★ 자바 네이티브 인터페이스를 이용한 C/C++ 코드와 결합 보통 서로 다른 장, 단점을 갖고 있는 JAVA와 C++, 이 두 언어를 결합할 수만 있으면 큰 시너지를 발휘할 수 있다고 생각한다. 뭐, 어느 정도의 범위에서는 그렇긴 하지만...그러나 왠만하면, 정말 어쩔 수 없는 경우를 제외하고는 이 JNI 기술은 활용하지 않는 것이 최상이라고 난 생각한다. -_-;; 이제 마소에서 두 언어를 결합하는 방법을 전격 공개한다. 먼저 자바의 JNI를 이용해 C로 작성된 Win32 DLL을 호출하는 방법을 알아볼 텐데, 자바 코드에서 만든 데이터를 C 코드로 전달하거나 혹은 C 코드에서 생성된 데이터를 자바로 전달하는 방법, 한글 문제를 해결하는 방법 등도 포함돼 있다. 더불어 C/C++에서 자바 VM을 이용하..
자바 환경 변수 설정 자바 환경변수를 넣어줄 때 그냥 path에다가 jdk 설치 경로를 넣어주는 방법도 있지만 개발하는 경우라면 사용자환경변수 JAVA_HOME으로 경로를 만들어준 다음 path에 JAVA_HOME을 추가하는 방법이 좋다 그냥 경로를 넣어주는 경우에 tomcat이 제대로 인지를 못하는 경우가 있음 JAVA_HOME - C:\Program Files\Java\jdk1.8.0_144 path -%JAVA_HOME%bin CLASSPATH -.;%JAVA_HOME%\lib\tools.jar java path.bat 배치파일로.. setx JAVA_HOME "C:\Program Files\Java\jdk1.8.0_11" setx path "%PATH%;%JAVA_HOME%\bin" setx CLASSPATH ".;%..
Collections Framework Collections Framework 2014-04-02 18:22:43 배열과 컬렉션즈 프레임워크 이전 시간에 배열에 대해서 공부했다. 배열은 연관된 데이터를 관리하기 위한 수단이었다. 그런데 배열에는 몇가지 불편한 점이 있었는데 그 중의 하나가 한번 정해진 배열의 크기를 변경할 수 없다는 점이다. 이러한 불편함을 컬렉션즈 프래임워크를 사용하면 줄어든다. 아래의 예를 보자. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 package org.opentutorials.javatutorials.collection; import java.util.ArrayList; public class ArrayListDemo { public s..
UML: 클래스 다이어그램과 소스코드 매핑 UML: 클래스 다이어그램과 소스코드 매핑 불과 몇 년 되지 않은 학생 시절... 처음으로 UML을 접했고, UML의 기초적인 그리는 법과 사용법을 배웠습니다. 개인적으로 쉽지 않은 수업이었는데 그 중 가장 많이 사용되는 클래스 다이어그램에서 클래스간의 relationship(관계)가 제일 어려웠습니다. Generalization(일반화)과 Realization(실체화)은 명확하기 때문에 이해하는데 어려움이 없었고 Dependency(의존) 부터 조금 어려워 지더니 Association(연관)과 Aggregation(집합), Composition(합성) 3종 세트에 가서는 머리가 복잡해졌습니다. 특히 Aggregation과 Composition이 논리적으로 약하고 강한 집합이라는 차이는 알겠지만 '그래서..