형 변환 프로모션(promotion) - 더 큰 자료형으로의 자동 변환 / 정보의 손실이 없다. 디모션(demotion) - 더 작은 자료형으로의 변환(명시) / 정보의 손실이 발생할 가능성이 있기 때문에 이것을 고려 해야 한다. ex1) /* * 자바의 기본 베이스가 유니 코드이기 때문에 한글로 클래스 이름을 만들거나. * 변수를 지정할수 있다.그러나 실무에서는 영어로 작성 하기 바라고..테스트 용으로 * 사용하기 바란다. */ package javasouc; public class 자동형변환 { public static void main(String[] args){ // promotion 확대변화 //byte형 변수 (1byte : 127까지 기억) a는 10을 가지며, b는 7을 가진다. byte ..
자바 컬렉션 1. 서론 1.1 알아두기 : java.util 패키지의 구성 - 컬렉션 프레임웍(Collection Framework) : 다수의 데이터를 쉽게 처리할 수 있는 표준화된 방법을 제공 하는 클래스들 - 유용한 클래스 : 알아두면 좋은 자주 쓰이는 클래스들 - 형식화 클래스 : 데이터를 표준화도니 형식으로 출력하는데 도움을 주는 클래스들 1.2 컬렉션 프레임웍 * 컬렉션 : 다수의 데이터 즉, 데이터 그룹 * 프레임웍 : 표준화된 프로그래밍 방식 * 컬렉션 클래스 : 다수의 데이터를 저장할 수 있는 클래스 --> 컬렉션 프레임웍 : 데이터군을 저장하는 클래스들을 표준화한 설계. JDK1.2 이전까지는 Vector, Hashtable, Properties 와 같은 컬렉션 클래스들을 서로 다른 각..
제네릭 : Generics는 컬렉션(자료구조) 즉, 객체들을 저장(수집)하는 구조적인 성격을 보강하기 위해 제공되는 것이다. 간단히 예를 들자면 컵이라는 특정 객체가 있다. 이 컵은 물만 담을 수 있는 물컵, 또는 이 컵은 주스만 담을 수 있는 주스 컵! 이렇게 상징적인 것이 바로 Generics다! 제네릭의 필요성 : JDK5.0에 프로그래머가 특정 컬렉션(자료구조)에 원하는 객체 타입을 명시하여 실행하기 전에 컴파일단계에서 확인하여 지정된 객체가 아니면 절대 저장이 불가능하게 할 수 있다. (이전 버전까지는 반드시 실행하여 컬렉션(자료구조)에 있는 자원들을 하나씩 검출하여 확인할 수 밖에 없었다.) 컬렉션 클래스들은 Object형으로 요소를 저장한다. 별도의 형 변환(Casting)이 필요 없이 사이..
응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 그 중 3가지 주요영역(Method Area, 호출스택, Heap)에 대해서 알아보도록 하자. [참고] cv는 클래스변수, lv는 지역변수, iv는 인스턴스변수를 뜻한다. 1. 메소드영역(Method Area)- 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일(*.class)을 읽어서 분석하여 클래스에 대한 정보(클래스 데이타)를 Method Area에 저장한다. 이 때, 그 클래스의 클래스변수(class variable)도 이 영역에 함께 생성된다. 2. 힙(Heap)- 인스턴스가 생성되는 공간. 프로그램 실행 중 ..
◆ Stack top bottom stack 은 주로 배열을 이용하여 구현하며 , top에서 모든 입출력 즉 put 과 pop 등이 일어나는 구조이죠. put은 자료를 집어넣는 것이고 pop은 자료를 가져오고 그걸 지워주는 역할인 것 아시죠? 흔히들 스택을 가지고 후입선출(LIFO:Last Input First Output)방식이라고 하는데.. 나중에 들어온 값을 먼저 꺼낸다.? 뭔가 상식적으로는 맞지 않죠? 맞습니다. 하지만 특별한 경우에 이 방식을 이용하면 아주 쉽게 문제를 해결할수 있습니다. 그 예로는 공학계산기 인데.. 단순한 사칙연산 계산기가 아니라. 43^3-5+64*6+34 와 같이 사용자가 수식을 쭉 적은다음에 ‘계산’이라는 버튼을 눌렀을 경우 프로그램이 알아서 연산자 우선순위를 따져서 계..
2. String클래스 2.1 String클래스의 특징 2.2 빈 문자열(empty string) 2.2 String클래스의 생성자와 메서드 ======================================================== 2. String클래스 기존의 다른 언어에서는 문자열을 char형의 배열로 다루었으나 자바에서는 문자열을 위한 클래스를 제공한다. 그 것이 바로 String클래스인데, String클래스는 문자열을 저장하고 이를 다루는데 필요한 메서드를 제공한다. 지금까지는 String클래스의 기본적인 몇 가지 기능만 사용해 왔지만, String클래스에는 문자열을 다루는데 유용한 메서드들이 많이 있다. 이제 String클래스에 대해서 자세히 알아보도록 하자. 2.1 String클래스..
Collator 사용하기 java.text.Collator 클래스는 자연어 비교 기능을 제공하는데, 자연어 비교는 주로 특정 서체의 문자들에 대한 동일성과 순서를 결정하는 지역 고유의(locale-specific) 규칙에 의존한다. Collator 오브젝트는 사전에서 'cat'이 'Hat'보다 먼저 나온다는 사실을 이해하므로 collator 비교를 이용할 경우 다음 코드는 cat < Hat을 출력하게 된다. Collator collator = Collator.getInstance(new Locale("en", "US")); int comparison = collator.compare("cat", "Hat"); if (comparison < 0) { System.out.printf("%s < %s\n", ..
* 압축 파일을 만들때 파일 대상이 폴더 단위가 아닌 파일 단위로 해야한다. (당연하겠지 파일스트림으로 읽어 들일때 폴더를 읽을시 에러(FileNotFoundException)가 날테니까) ==> File target_file = new File("C:/test/test.txt"); // 특정 파일의 File객체 * 만약 특정 폴더를 압축하고 싶을때는 폴더 경로로한 File 객체를 만들어서 작업하면 된다. ==> File target_folder = new File("C:/test"); // 특정 폴더의 File객체 File[] target_file = target_folder.getlistFiles(); // 특정 폴더의 하위 파일 & 폴더의 File객체 * 이제는 압축되어 만들어질 Zip파일의 Fil..
* 객체직렬화의 개념 자바 I/O 처리는 정수, 문자열, 바이트 단위의 처리만 지원했었다. 따라서 복잡한 객체의 내용을 저장/복원하거나, 네트워크로 전송하기 위해서는 객체의 멤버변수의 각 내용을 일정한 형식으로 만들어(이것을 패킷이라고 한다) 전송해야 했다. 객체직렬화는 객체의 내용(구체적으로는 멤버변수의 내용)을 자바 I/O가 자동적으로 바이트 단위로 변환하여, 저장/복원하거나 네트워크로 전송할 수 있도록 기능을 제공해준다. 즉, 개발자 입장에서는 객체가 아무리 복잡하더라도, 객체직렬화를 이용하면 객체의 내용을 자바 I/O가 자동으로 바이트 단위로 변환하여 저장이나 전송을 해주게 된다. 또한 이것은 자바에서 자동으로 처리해주는 것이기 때문에, 운영체제가 달라도 전혀 문제되지 않는다. 객체를 직렬화할때 ..
요약 JDK 1.5 Beta 2가 릴리즈 된지 몇 달이 지났다. 아직 Beta 버전이긴 하지만, JDK 1.5에서의 변화를 미리 살펴보기엔 부족함이 없다 생각된다. JDK 1.5에서 가장 먼저 눈에 띄는 것이 바로 문법적인 변화들이며, 본 글에서는 JDK 1.5에서 새로 추가/변경된 문법적 변화중에서 Generics, Autoboxing/unboxing, for 루프에 대해서 알아보도록 하겠다. 타입에 안전한 컬렉션 - Generics JDK 1.4까지의 Collection 객체들은 모두 Collection에 담긴 객체를 얻을 때 Object 타입으로 리턴을 하기 때문에, 반드시 Collection으로부터 객체를 얻은 후 원하는 타입으로 캐스팅을 해야 했다. 따라서 Integer 객체만 넣어야 하는 Co..