본문 바로가기

반응형

프로그래밍/초보자를 위한 Java프로그래밍

(22)
Thinking in JAVA 3. 연산자 피연산자(operand) +, 1 * , / , = 연산자 우선수위 곱셈, 나눗셈 , 덧셈 , 뺄셈 지정하고 싶으면 괄호를 사용 지정연산자 = 지정(assignment) 오른쪽값을 구해서 왼쪽값에 넣어라. 메소드 호출과 앨리어싱 - 객체를 메소드의 인자로 전달하는것도 앨리어싱 개넘이다. 숏 서킷(Short-circuit) 압수식의 결과가 전체의 식의 결과를 확정지을 경우 나머지 수식 연산은 자동 생략 된다. &&, || 경우
Thinking in JAVA 2. 모든 것이 객체다. 객체는 참조(reference)하는 식별자(identifier)로 조작한다. 객체는 생성한 후 사용한다. 참조(변수)를 지정하면서 새로운 객체에 연결하려고 할때는 new 키워드를 사용한다. 데이터 저장소 레지스터 : 프로세스(CPU)에 있으며 가장 처리속도가 빠르다. 개수가 한정적이며, 컴파일러가 필요할때 할당된다. 스택 : 램 메모리 영역에 있으며, 스택 포인터를 이용하여 프로세스가 직접 관리한다. 레지스터 다음으로 처리 속도가 빠르고 효율적인 장소이다. 컴파일러는 스택에 저장할 데이터의 크기와 생명주기를 알아야 한다. 그러기때문에 유연성에 제한이 있다. 힙 : 램 메모리 영역에 있으며, 자바의 모든 객체는 여기에 위치한다. 컴파일러는 스택과 달리 이영역이 얼마동안 사용하는지 알 필요가 없다. 이 때문..
Thinking in JAVA 1. 객체 자바기반 언어 스몰토크의 다섯가지 기본 특성 (앨랜 케이) 모든것이 객체이다. 프로그램은 여러 가지의 객체들로 구성되고, 각 객체들은 상호간에 메시지를 보내어 일을 수행한다. 각 객체는 다른 객체들로 이루어진 자신의 메모리를 갖는다. 모든 객체는 자신의 타입이 있다. 특정 타입에 속하는 모든 객체는 동일한 메시지를 받을 수 있다. (Grady Booch) -> 객체는 상태(state) 와 행동 (behavior)및 정체성(identiy)을 갖는다. 실제로 OOP언어 에서는 class 는 = type으로 생각한다. 동일하나 속성(데이터 요소)와 동일환 행동(기능성)을 갖는 객체들을 나타낸 것이 클래스이므로, 클래스는 하나의 데이터 타입이다. 구현부분 감추기 일반적으로 감추어진 부분은 객체 내부의 민감한 부..
자바 Map Map은 key와 value를 가진 집합이며, 중복을 허용하지 않는다.즉, 한개의 key에 한개의 value가 매칭된다.java.util 패키지에 여러 집합들을 사용하기 위한 여러 interface와 class 들이 정의되어 있다. 2. HashMap HashMap은 Map interface를 implements 한 클래스로서 중복을 허용하지 않는다.Map의 특징인 key와 value의 쌍으로 이루어지며, key 또는 value 값으로써 null을 허용한다.아래의 예는 HashMap을 사용한 간단한 예제이다. import java.util.*; public class HashMapTest { public static void main(String argv[]) { HashMap hm = new HashM..
자바 Map 객체 값 비교하기 자바 Map 객체에 값을 비교하는 방법을 알아 보겠습니다. 우선 여러가지 방법중에 간단한 방법으로는 map.containsKey(key); 위와 같이 containsKey 메서드에 key 값을 넣으면 해당 map 객체에 key값의 존재 여부를 확인하실수 있습니다. return 타입은 해당 키값이 존재 한다면 true, 없으면 false 입니다. ^^
HashMap 객체 정렬하기 HashMap 객체에 정렬하는 방법에 대해 알아 보겠습니다. 자바에서 콜렉션 타입의 객체를 정렬하는 방법은 다양하게 있습니다. Set을 이용하여 중복을 제거 하는 방법도 있고,, 여튼 오늘 알아볼 내용은 맵 객체 안에 있는 내용을 순차적으로 key값에 의해 정렬해주는 방법입니다. HashMap map = new HashMap(); Iterator iterator = map.keySet().iterator(); iterator = map.keySet().iterator(); while (iterator.hasNext()) { Integer key = iterator.next(); System.out.print("key="+key); System.out.println("value="+map.get(key))..
자바 에러 코드 java.lang.NumberFormatException 자바에러 java.lang.NumberFormatException 형변환 에러 , 인트형 자리수를 체크하거나, 잘못된 형변환 했을경우 발생되는에러다 에러 문장을 봐도 딱 느낌 나온다. NumberFormatException 캐스팅 할때 자료형을 확인해주시면 금방 찾을수 있습니다. 유캔 두 잇 !… 끝
JAVA GC(가비지 컬렉션) 정리 자바 개발자라면 한번쯤은 가비지 컬렉션에 대해서 깊은 고민을 해봐야하지 않을까? 가비지 컬렉션 과정 – Generational Garbage CollectionJava는 프로그램 코드에서 메모리를 명시적으로 지정하여 해제하지 않는다. 가끔 명시적으로 해제하려고 해당 객체를 null로 지정하거나 System.gc() 메서드를 호출하는 개발자가 있다. null로 지정하는 것은 큰 문제가 안 되지만, System.gc() 메서드를 호출하는 것은 시스템의 성능에 매우 큰 영향을 끼치므로 System.gc() 메서드는 절대로 사용하면 안 된다(다행히도 NHN에서 System.gc() 메서드를 호출하는 개발자를 보진 못했다). Java에서는 개발자가 프로그램 코드로 메모리를 명시적으로 해제하지 않기 때문에 가비지 ..
JAVA MD5, SHA-256 해쉬코드 얻기 JAVA MD5, SHA-256 해쉬코드 얻기 얼마전 천만건이 넘는 문장의 중복을 체크해야 되는 작업을 진행하였다. 중복 체크 알고리즘들은 많이 있지만, 문제는 중복을 확인하기 위해서는 그 모든 문장들을 메모리에 올려야 하는데, 그 많은 데이터가 다 올라가느냐였다. 문장의 길이가 워낙 긴게 많아서… 결국 문장을 MD5 해쉬 값으로 바꾸어 중복을 체크함으로써 이문제를 해결 할 수 있었다. MD5 (Message-Digest algorithm 5) MD5는 메세지 축약 알고리즘으로써, 파일 무결성 검사용도로 많이 쓰이고 있다. 128bit 의 해쉬를 제공하며, 암호와와 복호화를 통하여 보안용도로도 많이 쓰인다. 하지만 암호화 결함이 발견되어 보안 용도로 사용할때에는 SHA와 같은 다른 알고리즘을 사용하는것이..
첨부파일 한글 깨짐 확인 fileupload 첨부파일 한글깨짐 현상 1. 파일 업로드시 파일 첨부가 안되는 경우 한글깨짐 현상으로, iter에서 FileData 및 첨부파일 정보를 가져오지 못함 fileupload.* 방식 while (iter.hasNext()) { item = (FileItem)iter.next(); if (!item.isFormField()) { // input type="file" 인경우 if ("FileData".equals(item.getFieldName())) { // rMate Uploader 컴포넌트의 uploadFieldName 속성 값 - 기본값은 'FileData' 입니다 => 해결방안 맨밑에 utf-8 추가 upload.setSizeMax(Long.parseLong(G_attach_maxsize)*1024*1..

반응형