[Java] 기본 문법

최동혁·2023년 4월 14일
0

java

목록 보기
2/2

length()

String a = "abc";
int strlen = a.length();

length

int[] i = new int[10];
int intlen = i.length;

size

ArrayList<Integer> arr = new ArrayList<>();
arr.add(1);
int arrlen = arr.size();

정리

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        String a = "abc";
        int strlen = a.length();
        int[] i = new int[10];
        int intlen = i.length;
        ArrayList<Integer> arr = new ArrayList<>();
        arr.add(1);
        int arrlen = arr.size();

    }
}

나누기

정수 나누기

  • 3/4 = 0

실수 나누기

  • 3/4.0 = 0.75
  • 3.0/4 = 0.75
  • 3.0/4.0 = 0.75
double num = 3.0 / 4.0;
>>> 0.75

substring()

  • substring(int, int)
  • substring은 문자열 중 특정 부분을 뽑아낼 경우에 사용한다.
String a = "Hello Java";
System.out.println(a.substring(0, 4));  // Hell 출력
>>> Hell
  • 위처럼 substring(시작위치, 끝위치)와 같이 사용하면 문자열의 시작위치에서 끝위치까지의 문자를 뽑아내게 된다. 단 끝위치는 포함이 안된다는 점에 주의하자. 이것은 다음과 같은 수학의 식과 비슷하다.

시작위치 <= a < 끝위치

  • 만약 인수로 시작 위치, 끝 위치를 쓰는게 아닌 시작 위치만 쓴다면 그 위치부터 시작해서 끝까지 반환해준다.

배열과 리스트

Q. 배열과 리스트의 차이점은 배열은 크기가 정해져있고, 리스트는 동적으로 할당할 수 있는건데, 그러면 왜 배열을 쓰는거야?

A.

  • 배열은 고정 크기이며, 메모리 내에 연속된 블록으로 할당된다. 따라서 배열은 인덱스를 사용하여 요소에 빠르게 액세스 할 수 있다. 반면에 리스트는 동적으로 크기가 조정될 수 있으며, 메모리 내에 연속된 블록으로 할당되지 않으므로 일반적으로 더 많은 메모리 공간을 사용한다.
  • 배열은 정해진 크기를 가지므로 요소의 추가 및 제거가 더 어렵다. 따라서 크기가 고정된 데이터 집합을 다룰 때는 배열을 사용하는 것이 좋다. 또한 배열은 메모리를 연속적으로 할당하므로 캐시 효율이 더 좋아 빠르게 액세스 할 수 있다.
  • 반면에 리스트는 동적으로 크기가 조정되므로 요소의 추가 및 제거가 더 쉽다. 또한 리스트는 연속된 메모리 블록으로 할당되지 않으므로 크기가 고정되어 있지 않은 데이터 집합을 다룰 때 유용하다.
  • 따라서 데이터 집합의 크기와 변경 가능성에 따라 배열과 리스트 중에서 선택해야 한다. 예를 들어 크기가 고정된 정적인 데이터 집합을 다루어야 할 경우에는 배열을 사용하고, 크기가 동적으로 변하는 데이터 집합을 다루어야 할 경우에는 리스트를 사용하는 것이 좋다.
  • 약간 파이썬으로 치면 tuple과 list의 차이점에 대해서 생각하면 편할듯 싶다.
  • 파이썬에서 tuple은 immutable 객체로 크기가 정해져있어 속도가 list보다 빠르다.

Integer, Char, String 형변환

public class Main {
    public static void main(String[] args) throws Exception {
        int a = 65;
        System.out.println("Integer to Character : " + (char) a);           //A
        System.out.println("Integer to String : " + String.valueOf(a));     //65
 
        char ch = '3';
        char[] ch2 = {'a','b'};
        System.out.println("Character to Integer : " + ((int) ch - '0'));   //3
        System.out.println("Character to String : " + String.valueOf(ch));  //3
        System.out.println("Character to String : " + String.valueOf(ch2)); //ab
 
        String s = "9";
        String s2 = "123";
        System.out.println("String to Integer : " + Integer.parseInt(s));   //9
        System.out.println("String to Character : " + s.charAt(0));         //9
        System.out.println("String to Character : " + Arrays.toString(s2.toCharArray()));   // [1, 2, 3]
    }
}
profile
항상 성장하는 개발자 최동혁입니다.

0개의 댓글