프로그래밍/Java 51

코딩 바보의 클래스 다이어그램 이해해보기

클래스 다이어그램관계 Generalization : 상속Realization : 구현Dependency : 다른 객체 사용Association : 다른 객체의 참조를 필드로 가짐Aggregation : ‘Has-a’관계를 말한다.Composition : 생명주기가 같은 ‘has-a’관계Generalization부모클래스와 자식클래스간의 상속관계를 나타낸다. 서브클래스가 주체가 되어 서브 클래스를 슈퍼 클래스로 Generalization 하는 것을 말하고, 반대의 경우 슈퍼 클래스를 서브 클래스로 Specialize 하는 것을 말한다. 클래스 간의 ‘Is - a’ 관계이어야 한다. Realizationinterface의 명세만 있는 메서드를 오버라이딩하여 실구현으로 만드는 관계를 말한다. Dependenc..

File open시 유용한 Path 가져오기

Java class의 Path 가져오기 보통 GUI 프로그래밍에서 Image Load라던가, 그것도 다 포함 하는 건 이를테면 File open 같은 경우를 말 할 수 있을 것 같다. 그 때 아주아주 유용하게 사용 할 수 있는 기법이다. 무단 수정 및 배포는 금지합니다. 모든 내용은 본 블로그 운영자가 정리한 내용입니다. 참조한 정보에 대해서는 출처를 남기고 있습니다. 틀린 내용 / 오류가 포함된 내용은 댓글로 남겨주세요. choiseungho0822@gmail.com 보내주셔도 됩니다. Seungdols Wiki 운영중입니다.

Java8 활용기 - addActionListner

기존과 Lambda의 차이를 알 수 있습니다. 매우매우 효율적입니다. 간단하쥬 ? 근소한 차이라고 생각 할 수 있지만, 리스너가 여러개 추가가 될 경우 소스의 더럽....방지 일단 기본적으로 더 깔끔하고 명확하게 처리모습을 보여준다는 점이 가독성 향상을 업그레이드 시켜줍니다. 무단 수정 및 배포는 금지합니다. 모든 내용은 본 블로그 운영자가 정리한 내용입니다. 참조한 정보에 대해서는 출처를 남기고 있습니다. 틀린 내용 / 오류가 포함된 내용은 댓글로 남겨주세요. choiseungho0822@gmail.com 보내주셔도 됩니다. Seungdols Wiki 운영중입니다.

Java String 클래스에 관한 이야기

Java 언어에서 string을 어떻게 취급 하는가 ? 1. 문자열 용량보다 실제 더 큰 용량을 차지한다. String class는 내부적으로 char[]형태로 저장한다.- 객체 Header 4byte- 문자열에 대한 참조 4byte- 문자열 offset에 대해서 4byte- 문자열의 길이 field 4byte- Hash값 field 4byte총 20byte는 무조건 차지. 2. Java의 char 타입은 2 byte 3. char[]의 경우 객체로 취급한다. Java언어에서 배열은 객체로 취급하기 때문이다. 흔하게 하는 실수가 있다. for (int i = 0; i

FileRename - 파일 이름과 확장자를 변경 해보자.

일하는 중간에 짬짬히 만들어 본 파일 이름/확장자 변경 프로그램입니다.주석은 추후에 추가 하도록 하겠습니다. 미완성 기능- 디렉토리 경로를 받아 해당 파일 전체를 파일명+number 형식 + ext (추후 추가) 위의 기능은 0922 추가 - getter/setter는 일부러 제거함. 미흡한 점- 코드 중복 (input 받는 데이터 method 2개가 유사하게 중복 됨) switch case로 분기함 - 'method는 하나의 기능만 가진다'의 Rule에 어긋나는 것 같다.- 객체지향 설계 원칙 5 가지 조건에 부합하지 않는다. 변경 사항은 해당 소스의 Revision을 가시면 볼 수 있습니다. 무단 수정 및 배포는 금지합니다. 모든 내용은 본 블로그 운영자가 정리한 내용입니다. 참조한 정보에 대해서는 ..

Singleton Pattern for Java

프로세스 내에 하나의 객체만 존재해야 하는 경우 보통 선대 프로그래머들이 사용하던싱글톤 클래스 혹은 싱글톤 패턴을 사용합니다. 그 방법은 여러가지가 존재하며 그 중에서 가장 유명한 3가지를 소개 합니다.출처 : Effective Java 2 edtion - public final field를 이용한 singleton - static factory를 이용한 singleton - Enum type을 이용한 sington 원소가 하나뿐인 enum 자료형이 가장 좋은 구현 방법이라고 말한다. 추가적으로 싱글턴 클래스를 직렬화 가능 클래스로 만들려면, implements Serializable을 추가하는 것으로도 부족하다.모든 필드는 transient로 선언하고, readResolve method를 추가해야 한다..

생성자 인자가 많을때 어떤 패턴을 써야 하나?

생성자의 인지가 많을때 처리 하는 방법이 보통 여러가지 존재하는게 그 중 3가지를 소개하겠다.출처 : Effective Java 2 edtion - 점층적 생성자 패턴 - 자바빈 패턴 - 생성자 Builder 패턴 무단 수정 및 배포는 금지합니다. 모든 내용은 본 블로그 운영자가 정리한 내용입니다. 참조한 정보에 대해서는 출처를 남기고 있습니다. 틀린 내용 / 오류가 포함된 내용은 댓글로 남겨주세요. choiseungho0822@gmail.com 보내주셔도 됩니다. Seungdols Wiki 운영중입니다.

AutoBoxing과 UnBoxing에 대한 이야기

Java8 혹은 또 프로그래밍을 하다보니 Autoboxing/unboxing에 대해 자주 접하게 된다. 그리고 그 개념은 소홀해었는데 알고보니 중요하더라하는 이야기를 하고싶었다. 그래서 블로그에 정리하게 되었다. AutoBoxing 이란? JDK 1.5부터 지원하게 되는 건데, 이를테면 쉽게 설명하자면, Data type에 관한 야이기이다. int primitive = 123;을 하게 되면, 기본 타입 Primitive라고 합니다. 이건 알고 있죠 ? 그럼 이건요 ?Integer integer = 123; Integer integer1 = new Integer(444);위는 사실상 정말 다른 내용입니다. Integer class는 Wrapper class라고도 하는데 Primitivie에 대한 객체타입으..

객체의 직렬화! Serialization 이야기

객체를 저장 할수 있다!?도대체 무슨 말인가...??그건 객체를 데이터 스트림으로 만드는 것을 말하며, 데이터 스트림은 File에 저장 할수도 ! Network로 보내고 받을 수 있다.그럼 그것은 어떻게 해야 하는가!!!? Serialization의 경우 2가지가 가능하다. 객체를 데이터 스트림으로 만드는 직렬화.데이터 스트림에서 다시 객체로 만드는 역직렬화. 직렬화된 객체의 내용은 인스턴스 변수의 집합만 포함 된다. Method는 당연히 제외 된다. Why? 라고 의문을 품을지도 모르지만, 일단 그렇게 넘어가자. UserInfo class를 보자. 사실 별것 없다. 주요한 관점 포인트는 Serializable interface를 구현한다. 이 말은 이 클래스는 직렬화 할 예정!이런 의미를 담고 있다. ..

반응형