본문 바로가기

JAVA13

10. Casting (형변환) Casting 이란? 자료형에서 다른 자료형으로 바꾸는 과정을 Casting(형변환)이라고 한다.3. 자료형 포스트에서 확인할 수 있듯이 각 자료형은 변수를 선언할 때, 자료형 크기 만큼 공간을 가진다.그리고 그 공간에 값을 넣음으로써 할당이 되는데 Casting도 같은 원리이다. long a - [size = 8], int b - [size = 4] 이미 a와 b를 선언하는 순간부터 컴퓨터 메모리에는 저 공간이 할당이 된다.이 때, b에 있는 데이터를 a에 넣어봤자 8개의 size 중 4개의 size만 사용하므로 아무 문제가 없다.이런 원리 때문에 Casting이 되는 것이다. 작은 Data type 에서 큰 Data type만? 위 예시만 보면 크기가 더 작은 자료형에서 더 큰 자료형으로 대입할 때만.. 2024. 7. 14.
Java Fast I/O 3 (feat. BOJ, String, StringBuilder) 앞선 포스트와 마찬가지로 사람들은 PS에서 속도를 개선하기 위한 방법 중 하나로 StringBuilder를 사용한다. StringBuilderabstract sealed class AbstractStringBuilder implements Appendable, CharSequence permits StringBuilder, StringBuffer { byte[] value; byte coder; boolean maybeLatin1; int count; private static final byte[] EMPTYVALUE = new byte[0]; AbstractStringBuilder() { value = EMPTYVALUE; } .. 2024. 7. 6.
Java Fast I/O 2 (feat. BOJ, StringTokenizer, String.split()) 이번 포스트에는 StringTokenizer에 대해 작성해보려고 합니다.PS에서 어떻게든 속도를 조금 더 높여보려고 사람들이 여러 방법을 사용하죠?그 중 하나가 StringTokenizer 입니다. 정말 StringTokenizer의 성능이 그렇게 우수할까? 직접 테스트 해봤습니다.package com.study.datastructrue.string;import java.util.StringTokenizer;public class DevidePerformTest { public static void main(String[] args) { String str = "one two three four five one two three four five one two three four five.. 2024. 7. 6.
Java Fast I/O (feat. BOJ, BufferedReader, BufferedWriter) BOJ JAVA 풀이에서 왜 BufferedReader, BufferedWriter 를 사용할까? 사람들은 PS 중 시간 효율을 조금이라도 올리기 위해서 Fast I/O를 사용한다.보통 I/O 속도는 Default I/O, Fast I/O, Custom Fast I/O 가 있다.찐 고수들은 종종 Custom Fast I/O를 사용하는 것을 볼 수 있는데 나는 기본적인 Fast I/O만 사용한다. (초보) Python 에서는 sys.stdin.readline, C++ 에서는 ios_base::sync_with_stdio(0), C에서는 fread() 등Java에서는 BufferedReader 나 BufferedWriter를 사용하는 것을 볼 수 있다. 그럼 왜 사용하는지 한 번 알아보자. BufferedR.. 2024. 7. 6.
4. 입/출력 (Input/Output, I/O) 프로젝트 진행 중이라 글을 작성하지 못하고 있었네요. 다시 블로그 글 열심히 작성해보겠습니다. 앞서 확인해보니 입/출력에 대해 빼뜨려먹어서 지금 작성합니다. 입/출력이란? 자바에서 입/출력이란 우리가 알고 있는 느낌 그대로. 우리가 지금 포스트 글 또는 댓글과 같이 텍스트 박스에 글을 작성하면 화면에 보이는 것. 키보드를 이용해서 글을 작성하는 행위가 입력이고 작성된 글이 화면에 보이는 것이 출력이다. 자바에서 출력하는 방법 public class Main { public static void main(String[] args){ System.out.println("Hello World!"); } } 기본적으로 자바를 시작하게 되면 Intelli J와 Eclipse같은 IDE에서 제공하는 문법이다. 자바.. 2024. 2. 24.
9. 반복문 - while 문, do while 문 while 문 이란? while문도 for문과 마찬가지로 ~동안 이라는 뜻을 가지고 있는 반복문입니다. 이전 포스트에서 for문에서 ~동안을 의미하는 곳이 조건식이라고 설명했습니다. while문도 마찬가지로 '조건식' 동안 반복을 하겠다는 의미가 됩니다. 조금 더 자세히 알기 위해서 for문의 수행 과정을 복습해보겠습니다. 첫 번째 수행 (초기값), 먼저, '초기값'에 들어가는 내용은 0개 이상 작성하면 됩니다. 초기값을 설정하지 않아도 수행되는 것이죠. 저는 3개의 변수 i, j, cnt를 초기값으로 특정 값을 할당 했습니다. 두 번째 수행 (조건식), 조건동안 for문을 수행할 수 있는지 확인합니다. 조건은 i < j 이므로, (i : 10) < (j : 20) 를 만족합니다. 두 번째 수행에서 조건.. 2024. 2. 10.
8. 반복문 - for 문 반복문이란? 프로그래밍 언어에서 반복문이란 말 그대로 반복하는 과정을 수행할 수 있는 문법을 뜻한다.반복문에는 잘 알려진 for문과 while문이 존재한다.추가로 do while문도 존재하는데 아직 까지는 특별한 경우를 제외하고는 사용을 하지 않았다. for문 for문은 기본적인 문법으로 대부분의 사람이 잘 알고 있다.하지만, 생각보다 헷갈려하는 포인트들이 있어서 그것을 짚기 위해서 가져왔다. 우선, 웬만한 책에서 설명하는 for문의 기본 구성은 아래와 같다.for (int i = 0; i  대부분 여기서 int i = 0 을 초기값, i for (초기값; 조건식; 증감식)근데 저는 헷갈리던 부분이 좀 있었습니다.맨 처음 for문을 접했을 때, 조건식이 ' i ' 이면 i 인가? 라는 생각 때문에 조금.. 2024. 2. 10.
7. 다차원 배열 (Multi Dimensional Array) 2차원 배열이란? 우리는 2차원 배열에 익숙하다. 지금 이 글을 보는 화면도 x by y의 해상도를 가진 2차원 배열이다. 2차원 배열의 경우, 1차원 배열이랑 다를게 없어서 솔직히 뭘 써야 할 지 모르겠다. 조금만 생각을 바꾸면 되는게 2차원 배열이라서... 1차원 배열이 배열 형태를 띠는 것이 2차원 배열입니다. 어떻게 봐야할까요? 변수 큐브를 생각해봅시다. 우리 눈에는 3차원으로 보이는 해당 큐브는 한 블럭이 단위입니다. 컴퓨터에서도 똑같이 int cube 라고 하면 저 한 블럭은 int 정보를 갖게 되는 것이에요. 선형 배열 (1차원 배열) 그럼 배열은? 지갑을 설명했듯, 큐브에서도 보일 수 있는데요. 같은 '단위'를 기준으로 크기를 가진 것이 배열인데요. 해당 사진에서는 block이 3개 있다는.. 2024. 2. 10.
6. 배열 (Array) 블로그 글을 열심히 써보려고 했지만, 최근에 생각을 정리하는 시간을 많이 갖게 되었습니다.결국 블로그 글을 작성하는 것이 옳다고 생각했고. 글을 주로 쓰려고 합니다.다만, 제 생각을 정리하고 기본을 다시 채우는 느낌의 블로그라서 공부의 지침서가 될 지는 모르겠습니다.몇 번씩, 방문하면서 제 글을 읽어주시는 분들께 감사합니다! 배열이란 무엇일까?배열은 자료구조 관점에서 보면 상당한데요.현재 글의 카테고리는 Java의 기본이론이므로 단순하게만 보도록 하겠습니다! 현실과 빗대어 생각해보자. 숫자가 `1, 2, 3, 4`의 형태를 띠고 있으면 우리는 '수가 나열되어 있다.' 라고 하죠?글자가 `ㅈ, ㅣ, ㄱ, ㅏ, ㅂ`의 형태를 띠고 있을 때, 올바른 글자로 '배열'해 보세요. 라고도 하죠?올바르게 배열 한다면.. 2024. 2. 10.