안치현의 블로그
시프트 연산자(shift operator)는 각 비트들을 대상으로 연산이 이루어진다. float, double, boolean 데이터는 시프트 연산을 할 수 없다. >> 와 b a의 각 비트를 오른쪽으로 b번 시프트한다. 최상위 비트의 빈자리는 시프트 전의 최상위 비트로 다시 채운다. 산술적 오른쪽 시프트라고 한다. a >>> b a의 각 비트를 오른쪽으로 b번 시프트한다. 그리고 최상위 비트의 빈자리는 0으로 채운다. 논리적 오른쪽 시프트라고 한다. a
import java.util.Scanner; public class InputExam{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println(sc.next()); } } Scanner 클래스는 사용자가 입력하는 키 값을 공백('\f', \r', ' ', '\n')으로 구분되는 토큰 단위로 읽는다. System.in은 자바에서 제공하는 표준 입력 스트림 객체이며 키보드 장치와 직접 연결되어 키 값을 바이트 정보로 바꾸어 제공하는 저수준(low-level) 스트림 객체이다. Scanner 클래스의 주요 메서드 메서드 설명 String next() 다음 토큰을 문자열로 리턴 byte next..
자바 소스 파일의 확장자 .java 컴파일을 통해 만들어진 목적 파일의 확장자 .class 플랫폼에 맞게 소스코드를 작성하고 컴파일해야하는 언어의 특징을 플랫폼 종속성(platform dependence)라고 한다. 자바는 플랫폼에 상관없이 자바 가상 머신(JVM)만 있으면 동일하게 실행되며, 이를 WORA(Write One Run Anywhere)라고 한다. 자바 가상 머신은 플랫폼에 적합하게 서로 다르게 구현되므로 플랫폼 종속적이다. 자바 배포판은 자바 응용프로그램을 개발하고 실행하는데 필요한 총제적 환경을 말하며 JDK(Java Development Kit)라고도 부른다. JDK는 자바 컴파일러 등 자바 응용프로그램을 개발하는데 필요한 도구와 자바 응용프로그램이 실행될 때 필요한 자바 가상 머신과 ..
list = new ArrayList(); list = new LinkedList(); 는 되지만 list = new List(); 는 되지 않는다. List는 인스턴스가 되지 않는다. List는 인터페이스(interface)다. 인터페이스는 abstract 메서드를 포함하기 때문에 객체를 생성할 수 없다. 현실 세계의 개체를 프로그래밍하기 위해 행위와 속성을 추상화하여 클래스와 인터페이스로 만든다는 것으로 보면 클래스와 인터페이스를 분리하여 생각하지 않아도 된다. 하지만 객체를 구현하는 데 있어서 그 객체만의 유니크한 identity와 상태 정보를 가지고 있어야 한다는 전체를 생각해보면 인터페이스로는 객체를 생성할 수 없다는 것을 알 수 있다. 출처 : https://www.slipp.net/quest..
ArrayList는 배열을 사용하여 리스트를 사용하는 것. 데이터의 추가 인덱스 1의 위치에 데이터를 추가하기 위해서는 제일 끝 데이터를 한 칸씩 밀면서 인덱스 1의 자리를 확보하고 인덱스 1의 자리에 데이터를 추가한다. 데이터의 삭제 인덱스 3의 위치에 있는 데이터를 삭제하면 인덱스 3의 위치는 빈자리가 되고 인덱스 4의 위치에 있는 데이터를 인덱스 3의 위치로 옮기고, 인덱스 5의 위치에 있는 데이터를 인덱스 4의 위치로 옮기고.... 이렇게 마지막 인덱스 위치의 데이터까지 옮기면서 중간의 빈 공간을 없앱니다. ArrayList 장단점 단점 : ArrayList에서 데이터를 추가/삭제할 때 시간이 많이 걸린다. 장점 : 인덱스 값으로 데이터를 가져올 때 바로 가져올 수 있다. 자바에서 ArrayLis..
출처 : https://programmers.co.kr/learn/courses/17 배열을 선언하는 방법 자바에서 배열은 객체이다. int[] numbers = new int[4]; int[] numbers = new int[]{10, 20, 30, 40}; int[] numbers = {10, 20, 30, 40}; 배열의 크기 length 라는 인스턴스 변수를 사용하면 배열의 크기를 알 수 있다. numbers.length 리스트 리스트 자료구조를 이해하는데 있어 중요한 키워드는 순서, 중복허용. 데이터는 순서대로 저장되고 중복을 허용한다. 배열은 데이터의 인덱스가 중요하다. 리스트는 데이터의 순서가 중요하다. 배열 VS 리스트 새로운 데이터를 추가할 때 배열은 기존의 데이터를 덮어쓰고 리스트는 원..