본문 바로가기

TIL(Today I Learned)

TIL-230621

📝오늘 공부한 것

  • Java의 정석 기초편 5. 배열
  • Java의 정석 기초편 6. 객체지향 프로그래밍| 1 ~ 26
  • 프로그래머스 자바 문제풀기

 

공부한 것 정리

[String클래스의 주요 메서드]

 - char charAt(int index) : 문자열에서 해당 위치(index)에 있는 문자를 반환한다.

 - int length( ) : 문자열의 길이를 반환한다.

 - String substring (inr from, int to) : 문자열에서 해당 범위(from ~to)의 문자열을 반환한다.(to는 포함 안 됨)

 - boolean equals(Object obj) : 문자열의 내용이 같은지 확인한다. 같으면 결과는 true, 다르면 false

 - char[ ] toCharArray( ) : 문자열을 문자배열(char[ ])로 변환해서 반환한다.

https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html

 

String (Java SE 11 & JDK 11 )

Compares two strings lexicographically. The comparison is based on the Unicode value of each character in the strings. The character sequence represented by this String object is compared lexicographically to the character sequence represented by the argum

docs.oracle.com

 

[Arrays로 배열 다루기]

배열의 비교와 출력 - equals( ), toString( )

Arrays.toString(arr);
Arrays.deepToString(arr2D);	//다차원 배열

Arrays.equals(str, str2);
Arrays.deepEquals(str2D, str2D2);	//다차원 배열

배열의 복사 - copyOf( ), copyOfRange( )

int[] arr = {0,1,2,3,4};
int[] arr2 = Arrays.copyOf(arr, arr.length); //arr2=[0,1,2,3,4]
int[] arr3 = Arrays.copyOf(arr, 3); //arr3=[0,1,2]
int[] arr4 = Arrays.copyOf(arr, 7); //arr4=[0,1,2,3,4,0,0]
int[] arr5 = Arrays.copyOfRange(arr, 2, 4); //arr5=[2,3]
int[] arr6 = Arrays.copyOfRange(arr, 0, 7); //arr6=[0,1,2,3,4,0,0]

배열의 정렬 - sort( )

Arrays.sort(arr);

배열의 복사(Arrays.copyOf( )  vs  System.arraycopy( ) )

https://velog.io/@kai6666/Java-System.arraycopy-%EC%99%80Arrays.copyOf%EC%9D%98-%EC%B0%A8%EC%9D%B4-%EB%B0%B0%EC%97%B4-%EB%B3%B5%EC%82%AC

 

[Java] System.arraycopy() 와Arrays.copyOf()의 차이 (배열 복사)

자바에서 배열을 복사할 때 사용할 수 있는 두 가지 메서드가 있다. 바로 System.arraycopy()와 Arrays.copyOf()이다. 사용법은 아래와 같다.먼저 1부터 10까지의 수를 담은 배열 arr과 크기 15의 배열 copied를

velog.io

알고리즘 문제를 풀때 배열을 복사해야 할 일이 생기면 for문으로 배열을 복사했었는데, 메서드를 사용하는 게 코드가 짧고 쉬워보인다. 다음에는 잊지말고 사용해보자!!

 

[객체의 구성요소 속성과 기능]

객체지향 프로그래밍에서는 속성과 기능을 각각 변수와 메서드로 표현한다.

속성(property) -> 멤버변수(variable)
기능(function) -> 메서드(method)

채널 -> int channel
채널 높이기 -> channelUp( ){ ... }

 

[한 파일에 여러 클래스 작성하기]

- 하나의 소스파일에 하나의 클래스만을 정의하는 것이 보통이지만, 하나의 소스파일에 둘 이상의 클래스를 정의하는 것도 가능하다.

- 소스파일의 이름은 public class의 이름과 일치해야 한다.

- 하나의 소스파일에 둘 이상의 public class가 존재하면 안된다.

- 소스파일과 달리 클래스 파일은 클래스마다 하나씩 만들어진다.

     소스파일(*.java) / 클래스파일(*.class)

 

[객체배열]

객체배열 안에 객체가 저장되는 것이 아니고, 객체의 주소가 저장된다.

= 객체배열은 참조변수들을 하나로 묶은 참조변수의 배열인 것이다.

 

느낀 점🤔

메서드가....너무 너무 많다....모든 메서드를 외울 순 없지만 자주 쓰는 것들은 빨리 외워놔야 겠다. 내가 문제풀때 쓴 코드를 보면 코드도 복잡하고 길고 중복된 코드도 많아보인다. 문제를 다 풀고 다른 사람들의 풀이를 보면 메서드를 이용해서 깔끔하게 푼 것들이 많다. 나도 얼른 그렇게 되었으면.....ㅎ....열심히 해야겠다....!!!!

 

 

 

 

참고자료: Java의 정석 기초편(남궁성)

'TIL(Today I Learned)' 카테고리의 다른 글

TIL-230624  (0) 2023.06.24
TIL-230623  (0) 2023.06.23
TIL-230620  (0) 2023.06.20
TIL-230617  (0) 2023.06.17
TIL-230617([프로그래머스/자바] 없는 숫자 더하기)  (0) 2023.06.17