일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 이것이 자바다
- Algorithm
- 윤성우의 열혈 자료구조
- buffer
- stream
- 윤성우 열혈자료구조
- 알기쉬운 알고리즘
- Selection Sorting
- list 컬렉션
- Stack
- datastructure
- Serialization
- C 언어 코딩 도장
- 이스케이프 문자
- s
- coding test
- insertion sort
- JSON
- C programming
- R
- 메모리구조
- 혼자 공부하는 C언어
- Graph
- Today
- Total
목록Programming Language/Java (39)
Engineering Note

배열은 생성하면 기본적으로 데이터 타입에 해당하는 기본값으로 초기화 된다. int 배열은 0으로, String 배열은 null로, boolean 배열은 false로 int[] nums = new int[]; //0으로 초기화됨String[] words = new String[] //null로 초기화됨boolean[] check = new boolean[] //false로 초기화됨 그런데 기본값이 아닌 다른 값으로 초기화를 할 경우가 있다. 그럴때는 for문을 이용해서 인덱스 길이만큼 순회하면서 초기화할 수 있다.int[] nums = new int[26];for(int i = 0; i 하지만 Arrays 객체의 fill 메서드를 사용하면 같은 방식으로 초기화 할 수 있다.int[] nums = ne..

먼저 Java가 컴퓨터에 설치가 되어 있어야 한다. java --version 명령어가 실행된다면 자바가 잘 설치 된거다.vi나 nano 에디터 파일을 열어서 java 파일을 만들어준다.나는 vi 에디터로 아래와 같이 작성해주었다. HelloWorld.java 이때 .java 파일명과 class 명은 동일 해야 한다. java 파일을 만들었다면, javac 명령어로 컴파일해준다. 컴파일을 해주면 .class 파일이 생성된다. ls 명령어로 확인한 HelloWorld.class 파일 생성 컴파일한 .class은 java명령어로 직접 실행할 수도 있다.

C언어, Python, Java를 배울 때 C언어가 어렵다는 말이 많은데 오히려 나는 Java가 초심자들에게는 배우기 가장 어려운 언어 같다. OOP라는 다소 철학적인 개념도 나오고 접근제어자 등 이해해야 할 개념이 많기 때문이다. 그 중에서 맨처음에 Hello World를 찍으면서 나중에 정리해야지 했던 개념을 다시 정리해보려고 한다. 그중에서 아래 개념은 Java를 처음 접하고 좌절을 안겨주었던 내용이다. public static void main(String[] args) public public은 우선 접근제어자로 정보의 캡슐화 등을 위한 설정 키워드다. Java는 기본적으로 객체지향의 철학을 바탕에 둔 프로그래밍 언어라서 '프로그램세계는 객체들 간의 협력으로 이루어지고, 객체는 각자 역할과..
문자 연산, 그리고 숫자문자를 숫자로 변환하기컴퓨터는 내부적으로 0과 1밖에 모른다. 그런데 우리는 숫자보다 일반 문자가 편하다. 숫자를 문자로 변환해야 한다. char는 16바이트고 int는 32바이트를 저장할 수 있다. char, int 타입은 둘 다 숫자를 저장하는데 char는 ''를 통해 하나의 문자를 담는데 이때 ''에 남긴 문자를 유니코드(문자, 숫자 변환 표로 정해놓은 규칙)에 따라 숫자로 바꾸어서 저장한다.그리고 char는 숫자처럼 연산할 수 있다. 'A'는 유니코드로 65인데 'A' - 2를 하면 63이 되고 int에 형변환 없이 저장할 수 있다. (=> char + char는 int)그래서 '2' 숫자 처럼 보이는 '2' 문자를 진짜 2로 변환하려면 '2' - '0'을 해주면 2로 변환..
String 클래스의 공백 제거 메서드는 두 가지가 있다. trim()과 strip()strip()은 Java 11부터 추가된 메서드다. trim은 아스키 코드 기반의 whitespace만 제거가 가능한데 비해 strip()은 유니코드기반까지 포함한다. 공백에는 \t, \n " " 등이 있는데 유니코드에는 \u2002, \u00A0, \u3000 등고 공백이고 trim으로는 이런 공백은 제거할 수 없다.공백 기준으로 문자열을 나눌 때도 주의할 사항이 있는데, split()메서드에서 split(" ");를 사용하면 " "공백 하나를 기준으로 문자열을 나누기 때문에 정규표현식을 사용하면 좋다. 공백을 나타내는 정규표현식은 \s이다. 쌍따옴표 안에서 사용하려면 \\s로 사용할 수 있고 연속된 공백은 \\s+로..
5.2 메모리 사용 영역Java 명령어로 JVM이 구동되면 JVM은 운영체제에서 할당받은 메모리 영역을 다음과 같이 구분해서 사용한다. 메소드 영역바이트코드 파일을 읽은 내용이 저장되는 영역으로 클래스별로 상수, 정적 필드, 메소드 코드, 생성자 코드 등이 저장된다. ⇒ 바이트 코드 파일의 내용이 저장되는 영역. 힙 영역객체가 생성되는 영역.객체의 번지는 메소드 영역과 스택 영역의 상수와 변수에서 참조할 수 있다.스택 영역메소드를 호출할 때마다 생성되는 프레임이 저장되는 영역.메소드 호출이 끝나면 프레임은 자동제거 된다.프레임 내부에는 로컬 변수 스택이 있다.Java의 문자열은 String 객체로 생성된다. String 변수 name과 hobby 변수에 “홍길동”, “여행” 문자열을 생성하여 저장하면 ..
Java에서 String은 불변 객체다. 아래처럼 String s를 만들고 "world"를 붙이면 "hello world"가 새로 만들어진다.String s = "hello";s = s + " world" StringBuilder는 String과 달리 가변이다.그래서 내부적으로 문자열을 가변할 수 있는 유용한 메서드가 많이 제공된다. 대표적으로 reverse()메서드가 있다. 당연히 받환 타입은 StringBuilder이다. String으로 변환하려면 toString() 메서드를 사용하면 된다.
BOJ에서 문제를 풀려면 입력을 받아야 하는데 그때, Java는 Scanner 객체를 사용해서 입력을 받을 수 있다. 메서드 반환 타입 입력 기준 예시 입력 설명next()String공백 기준hello world → hello다음 "단어" 한 개만 읽음nextLine()String줄 기준hello world → hello world줄 전체를 읽음nextInt()int공백 기준123 456 → 123다음 숫자(int)만 읽음nextDouble()double공백 기준3.14 2.71 → 3.14실수(double)만 읽음nextBoolean()boolean공백 기준true false → true논리값 읽음 Scanner sc = new Scanner(System.in);sc.nextLine(); 이렇게 사..