JAVA

책 [GOOD JAVA] 정리

깊은바다거북 2022. 8. 22. 20:28

 

CH 9. 문자열과 메소드

문자열 메소드의 종류

  • String.charAt(인덱스)
  • String.length()
  • String.startsWith(”문자열”)
  • String.endsWith(”문자열”)
  • String.indexOf(”문자열”)
  • String.lastIndexOf(”문자열”) // 가장 마지막에 나오는 ‘첫글자’의 위치 반환
  • // 못 찾으면 -1 반환
  • String.replace(”찾을 문자열”, “덮어씌울 문자열”)
  • String.substring(시작 인텍스, 마지막 인덱스+1) // (0, 4)라면 인덱스 0~3까지 반환
  • String.split(”구분자 문자열”)
  • String.toUpperCase()
  • String.toLowerCase()
  • String.trim() // 앞뒤 공백 제거
  • str1.compareto(str2) // str1 - str2 의 결과를 반환. 예를 들면,
    • “Java Programming”
      • “Java IT CookBook”
    • ⇒ (P = 아스키 80) - (I = 아스키 73)
    • ⇒ 7 반환
  • String.contains(”문자열”)
  • 내용과 주소가 모두 같아야 하는 비교 ==
  • 내용만 같으면 참인 비교 str1.equals(str2)

 

지역변수와 전역변수

지역변수(local)

: 현재 메소드 내부에서만 정의되고 사용되는 변수

전역변수(global)

: 메소드 밖에서 정의되는 변수. = 필드 변수 = 클래스/인스턴스 변수

 

값의 전달과 주소의 전달

이 인자가 네 것이냐, 저 인자가 네 것이냐?

예이,

static void func2(char x, char y) {

 

→ 전 기본 데이터 형식을 파라미터로 갖는 “값 전달” 메소드입니다요~

static void func2(Character x, Character y) {

 

→ 전 클래스 객체(=기본 데이터 형식이 아닌 모든 것)를 파라미터로 갖는 “주소 전달” 전용 메소드입니다요~

값의 전달, call by value

: 인자의 값을 복사해서 메소드의 자체 지역변수에 할당하는 것.

주소의 전달, call by reference

: 클래스 객체를 인자로 전달하는 것.

클래스 객체를 전달할 경우 (클래스 객체는 어떤 하나의 값이 아니므로) 그 주소가 전달되게 되므로 주소(=참조) 전달이 되는 것이다. 그래서 메소드 내에서 그 클래스 객체를 부르고 그 안의 필드 변수를 조작하면, 메소드 밖에서 조작하는 것과 같이 조작할 수 있게 된다.

  • [ ] ⇒ 쉽게 말해 필드 변수는 무조건 전역 변수니까, 메소드 안에서라도 전역변수 값을 변경하면 그 전역변수를 메소드 밖에서 호출해도 당연히 바뀌어 있는 것이다. 란 논리가 가능할까? 다시 말해, 메소드 안에서 전역변수를 수정할 수 있을까?
    • [ ] static으로 된 클래스 변수, 클래스 메소드는 “클래스 변수와 메소드이기 때문에’ 자기 자신 클래스 안에서 불릴 수 있는 걸까, static이 아니어도 불릴 수 있는 걸까?
기본 데이터 형식 래퍼 클래스 
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character

 

 

 

 

https://www.notion.so/CH-9-f92df275145f4e4385d56d6d1d752137

https://brainy-shop-8e4.notion.site/CH-9-f92df275145f4e4385d56d6d1d752137

 

CH 9. 문자열과 메소드

문자열 메소드의 종류

brainy-shop-8e4.notion.site