JAVA/Java 기초
문자열 변환하는 방법
문자열 → 문자배열 toCharArray() String 클래스의 인스턴스 메소드로, 문자열을 문자 배열로 변환 문자열과 변환된 배열은 동일한 길이를 유지한다. String str = "asdf"; char[] strArray = str.toCharArray(); System.out.println(str); System.out.println(strArray); System.out.println(strArray.toString()); 문자열 → 정수 Integer.parseInt() 문자열에 정수가 아닌것이 포함되어 있으면 NumberFormatException 오류가 발생한다. 따라서 try-catch 안에 코드를 작성하여 예외처리를 해야한다. String str = "456"; try{ int num ..
Java 동등비교, equals() 메소드
== 연산자 객체의 내용이 아니라 객체의 참조값이 동일한지만 검사한다 equals() 서로다른 객체가 동일한 값을 가지고 있는지 검사하기 위해선 equals() 메소드를 재정의하여 사용해야 한다 출처 power JAVA
컬렉션프레임워크 - HashMap
Map 인터페이스를 구현한 클래스 중 가장 많이 사용 새로운 key-value 자료가 입력되거나, key를 알고 있는 상태에서 value 를 검색 자료 추가 속도, 검색속도가 빠르다 put(), get() public class CollEx20hashMap { public static void main(String[] args) { HashMap h = new HashMap(); h.put("물", "water"); h.put("커피", "coffee"); h.put("티", "tea"); System.out.println( h.get("커피") ); //키를 기준으로 값을 뽑아냄 Set keys = h.keySet();//물, 커피, 티 Iterator it = keys.iterator(); while..
Set 인터페이스
HashSet 클래스 순서와 상관없이 중복을 허용하지 않는 경우 사용 자바에서 두 인스턴스가 같다면 hashCode() 에서 반환하는 해시코드값이 같아야 한다. Object 클래스에서는 논리적으로 같은 객체를 구현하기 위해 equals() 메서드와 hashCode() 메서드가 재정의 되어 있다. 만든 클래스에서도 equals() 메서드와 hashCode() 메서드를 재정의 하여 같은 객체임을 구현해야 한다. package collection; import java.util.HashSet; import java.util.Iterator; class Num { int a; Num(int a) { this.a=a; } public String toString() { return a+""; } @Override..
컬렉션 프레임워크 - 제네릭
제네릭(모형자) → 템플릿(모형자) generic angle blanket 컬렉션 프레임워크 Vector, ArrayList, Map, Set 제네릭 자료형이 딱히 정해지지 않은 것.. 여러 참조 자료형이 쓰일 수 있는 곳에 특정한 자료형을 지정하지 않고, 클래스나 메서드를 정의한 후 사용하는 시점에 어떤 자료형을 사용할 것인지 지정하는 방식 클래스명 : 참조자료형이 정해져있지 않음 : 모형자 T : type의 약자, 자료형 매개변수 나중에 클래스를 사용할 때 T 위치에 실제 사용할 자료형을 지정한다. class Java { String title; Java(String t) { title = t; } void show() { System.out.println(title); } } class DB { i..
Iterator
요소를 순회할 때 사용하는 메서드 boolean hasNext() : 이후에 요소가 더 있는지 체크하는 메서드, 요소가 있으면 true를 반환 E next() : 다음에 있는 요소를 반환 순차적으로 반환 public class CollEx16Iterator { public static void main(String[] args) { ArrayList a = new ArrayList(); a.add(5); a.add(8); a.add(0); Iterator it = a.iterator();//Iterator 반환 while(it.hasNext()) { int n = it.next();//다음 데이터를 n에 대입 System.out.println(n); } } }
Stack
스택 구현하기 class St { int n; Object[] st;//배열, 반환형은 Object St(){ st = new Object[3];//생성자에서 객체(배열)생성 n=0; } public void push(T item) { if(n==3)//스택이 가득 차있다. 더이상 요소를 삽입 불가 return;//push 함수 종료 st[n] = item;//item을 배열에 추가 n++;//인덱스 증가 } //스택에서 꺼내기 public T pop() { if(n==0)//스택이 비어있어 꺼낼 수 없다. return null;//반환형이 T 이기 때문에 null //null : 레퍼런스 타입의 값으로 사용가능하다. n--;//인덱스가 하나씩 줄어들면서 return (T)st[n];//배열 전체를 반환..
List 인터페이스 - ArrayList 클래스
자바에서 배열을 구현한 대표 클래스 : ArrayList, Vector, LinkedList 기본 배열은 항상 배열 길이를 정하고 시작, 배열을 사용 중에는 배열 길이를 변경 할 수 없다. 객체 배열을 좀 더 쉽게 사용할 수 있도록 객체 배열 클래스 ArrayList를 제공 주요 메서드 boolean add(E e) public class CollEx09ArrayList { public static void main(String[] args) { //List Interface => ArrayList a = new ArrayList(); a.add("세종"); a.add("정조"); a.add("정종"); for(int i=0; i
2의 보수법
n비트의 2진수로 표현할 수 있는 값의 개수 → 2의 n승 → 4비트의 2진수 = 16개 = (부호없는 정수)0부터 15까지의 정수를 나타낼 수 있다. 양수의 첫 번째 비트만 1로 바꾸면 음수가 되지만, 두 수를 더했을 때 2진수로 0이 되지 않는다. 그리고 0이 두 개(0, -0)존재하게 된다. 2의 보수법에 의해 음수를 배치하면, 모순이 없어진다. 'n의 보수' : 더했을 때 n이 되는 수 '2의 보수법' : 두 2진수로 절대값이 같고 부호가 다른 두 10진수를 표현한것 → 부호있는 정수를 표현한다. 간단하게 '2의 보수'를 구하는 방법 2의 보수 = 1의 보수 + 1 '1의 보수'는 0을 1로, 1을 0으로 바꾸면 된다. → 2진수에 1의 보수를 더하면 모든 자리가 1이 된다. → 양 변애 1을 더..
자바 이론 복습용 정리
자바 개발환경설정: JDK와 이클립스 설치 .java(자바소스파일) → 컴파일러 → .class(바이트코드) → JVM JDK: Java Development Kit → 개발에 필요한 라이브러리와 플랫폼이 포함 JRE: 자바 실행 환경(런타임 관련된것들) 오픈소스: 무상으로 공개한 소프트웨어 컴파일: 자바를 기계어로 변경해주는 과정 bin 폴더: 개발에 필요한 도구들이 들어있다. API: Application Programming Interface JDK에 포함된 클래스 라이브러리 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 변수와 자료형 보수: x에 대한 (x+k)의 보수는 k이다 데이터 타입 기본타입 8개 null : 레퍼런스 타..