Java

    [JAVA] 형변환(캐스팅, casting)

    1. 형변환 1.1 형변환(캐스팅, casting) 연산을 수행하기 전에 변수나 리터럴의 타입을 다른 타입으로 변환하는 것을 형변환이라고 한다. 예를들어 int 타입의 값과 float 타입의 값을 더하는 경우 먼저 두 값을 같은 타입으로 즉, float 타입으로 변환한 다음에 더해야한다. 1.2 형변환 방법 double d = 85.4 int score = (int)d// double 타입의 변수d를 int로 형변환 예시처럼 (타입)피연산자 와 같이 변수나 리터럴 없에 변환하고자 하는 타입을 괄호에 넣어주면된다. 이때 괄호는 캐스트 연산자라고 한다. 기본형에서 boolean을 제외한 나머지 타입들은 서로 형변환이 가능하며 기본형과 참조형간의 형변환은 불가능하다. 1.3 정수형간의 형변환 int(4byte..

    [JAVA] 기본형 변수(primitive type)

    1. 기본형 변수(primitive type) 1.1 논리형 - boolean 논리형에는 boolean 한가지 밖에 없다. true, false로 하나만 저장할 수 있으면 디폴트는 false이다. 자바에서는 데이터를 다루는 최소단위가 byte이기 때문에 boolean의 크기는 1byte이다. (8bit =1byte) 자바에서는 대소문자가 구별되기 때문에 True와 true는 다른것으로 간주된다. 1.2 문자형 - char 문자형도 char 한가지 밖에 없다. 또한 char 타입의 변수는 단하나의 문자만을 저장할 수 있다. //문자 'A'를 char 타입 변수에 저장 char ch = 'A'; //int타입으로 변환해 유니코드 확인 int n = (int)ch; 코드를 보면 변수에 ‘문자’가 저장된 것 같..

    [JAVA] 진법과 2의 보수법

    1. 2진법과 10진법 컴퓨터는 2진 체계로 설계되어 있다. 따라서 0과 1밖에 모르기 때문에 모든 수를 2진수로 바꾸어 저장한다. int age = 25 // 25라는 10진수를 11001이라는 2진수로 변환해 저장 이처럼 2진법은 0과 1로만 데이터를 표현하기 때문에 10진법에 비해 많은 자리수를 필요로 한다. 2. 비트와 바이트 한 자리의 2진수를 비트(bit, binary digit)라고 하며, 1비트는 컴퓨터가 값을 저장할 수 있는 최소단위이다. 하지만 1비트는 너무 작은 단위이기떄문에 1비트 8개를 묶어서 바이트(byte)라는 단위로 정의해서 데이터의 기본단위로 사용한다 이 외에도 워드(word)가 있는데 이는 CPU가 한번에 처리할 수 있는 데이터의 크리를 말하며, 32비트 CPU에서 1워드..

    [JAVA] 변수와 변수의 타입

    1.변수(variable) 1.1 변수(variable)란? 프로그래밍 언어에서 변수란, 단 하나의 값을 저장할 수 있는 메모리상의 공간을 의미한다. 1.2 변수의 선언와 초기화 //age라는 이름의 변수 선언 int age // 변수타입 변수이름 변수타입은 변수에 저장될 값이 어떤 타입인지를 지정하는 것이다. 자바는 정수형, 실수형, 문자형 등이 있다. 변수이름은 말 그대로 변수에 붙인 이름이다. 변수는 값을 저장할 수 있는 메모리 공간이므로 변수의 이름은 메모리 공간에 이름을 붙여주는 것이다. 그래야 이름을 이용해 저장공간(변수)에 값을 저장하고 , 저장된 값을 읽어오기도 할 수 있는 것이다. 변수의 초기화 변수를 선언한 이후부터는 변수를 사용할 수 있으나 그 전에 반드시 변수를 초기화(Initial..

    [JAVA] TreeMap

    1. TreeMap TreeMap은 이전검색트리의 형태로 키와 값의 쌍으로 이루어진 데이터를 저장한다. 그래서 검색과 정렬에 적합하다. 이진트리를 기반으로 한 Map컬렉션이며, TreeSet과의 차이점은 TreeSet은 값만 저장 , TreeMap은 키와 값 Map.Entry에 저장한다. 검색의 관한 부분에서는 HashMap과 TreeMap 중 HashMap이 검색성능이 더 뛰어나므로 HashMap을 사용하는 것이 좋다. 다만 정렬이 필요한 경우에는 TreeMap을 사용하는 것이 좋다. 메서드 설명 메서드 설명 TreeMap() TreeMap 객체 생성 TreeMap(Comparator c) 지정된 Comparator을 기준으로 정렬하는 TreeMap 객체 생성 TreeMap(Map m) 주어진 Map에..

    [JAVA] HashMap과 Hashtable

    1. HashMap과 Hashtable HashMap과 Hashtable의 관계는 Vector과 ArrayList과 같아서 Hashtable보다 새로운 버전인 HashMap을 사용할 것을 권한다. HashMap은 Map을 구현했으므로 앞에서 살펴본 Map의 특징, key와 value를 묶어서 하나의 데이터(entry)로 저장한다는 특징을 갖는다. 그리고 해싱(hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는데 있어 뛰어난 성능을 보인다. HashMap은 Entry라는 내부 클래스를 정의하고, 다시 Entry 타입의 배열을 선언하고 있다. 키와 값은 별개의 값이 아니라 서로 관련된 값이기때문에 각각의 배열로 선언하기 보다는 하나의 클래스로 정의해서 하나의 배열로 다루는 것이 데이터의 무결성적인..

    [JAVA] TreeSet

    1. TreeSet TreeSet은 이진검색트리(Binary search tree)라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스이다. 이진 검색 트리는 정렬,검색, 범위검색(range search)에 높은 성능을 보이는 자료구조이며, TreeSet이는 이진 검색 트리의 성능을 향상시킨 레드-블랙 트리(Red Black Tree)로 구현되어 있다. 그리고 Set인터페이스를 구현했으므로 중복된 데이터의 저장을 허용하지 않으며 정렬된 위치에 저장하므로, 저장순서를 유지하지도 않는다. 이진트리(Binary Tree) 는 링크드 리스트처럼 여러 개의 노드가 서로 연결된 구조로, 각 노드에 최대 2개의 노드를 연결할 수 있으며 루트라고 불리는 하나의 노드에서부터 시작해 계속 확장해 나갈 수 있다. 위 아래..

    [Java] HashSet

    1. HashSet HashSet은 Set 인터페이스를 구현한 가장 대표적인 컬렉션이며, Set인터페이스의 특징대로 중복된 요소를 저장하지 않는다. 따라서 새로운 요소를 추가할 때는 add, addAll메서드를 사용하는데 만약 이미 저장되어 있는 요소와 중복된 요소를 추가하고자 하면 이 메서드들은 false를 반환해 추가에 실패했다는 것을 알려준다. 따라서 이러한 특징을 이용하면 컬렉션 내의 중복 요소들을 쉽게 제거할수 있다. ArrayList와 달리 HashSet은 저장순서를 유지하지 않으므로 저장순서를 유지하고자 한다면 LinkedHashSet을 이용해야한다. 메서드 설명 HashSet() 객체 생성 HashSet(Collection c) 주어진 컬렉션을 포함하는 HashSet 객체 생성 HashSe..