일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Class #클래스 #Java #JAVA #자바 #java기초 #java입문 #java #자바 개념 #programming #공부 #개발 공부 #코드 정리 #코딩테스트 #알고리즘
- field #Field #Method #method #필드 #속성 #메소드 #행동 #객체 #Class구성요소
- this. #this #this키워드 #객체 자신 참조 #필드호출 #메소드호출
- RPA #실습 #라이브러리 #RPA라이브러리 #task #Process #Task #Script #ExecuteScript
- Brity #BrityRPA #FlowControl
- SQLD #DDL #DML #DCL #TCL #DB #SQLP #DataBase #자격증 # IT #명령어 #SQL #쿼리
- #시그모이드 #광주인공지능학원 #스인개
- String Class #String #Class
- Java #JAVA #자바 #java기초 #java입문 #java #자바 개념 #programming #공부 #개발 공부 #코드 정리 #코딩테스트 #알고리즘
- 열거형 #enum #JDK5
- 학습하기 #봇 학습 #테스트 방법 #디버깅
- 스마트인재개발원 #스마트인재캠퍼스 #MLP #이미지분석 #AI #인공지능 #머신러닝 #딥러닝
- 스마트인재개발원 #deep learning #MLP #다층 레이어 퍼셉트론 #퍼셉트론 #선형분류 #다중 선형분류 #AI #머신러닝 #뉴런 #신경망
- VDI #DRM #디지털 저작권 관리 #가상 데스크톱 인프라 #용어 #IT용어 #개발자 #신입
- Brity Assistant #대화분석 #설계 #ChatBot #변수 #학습 #대화학습 #동의어 #동의어 처리 #단어사전
- For #Loop #반복문
- 변수의 범위 #Scope #scope #Static #static #지역변수 #전연변수 #global #local
- 순전파 #역전파 #MLP
- 참조(Reference)타입 #클래스
- 연산자 #일치연산자 #기본연산자 #불일치연산자
- 스마트인재개발원 #광주인공지능학원 #JavaScript #JS #형변환 #자바스크립트 #Web #back-end #front-end
- Brity #Brity Assistant #ChatBit #챗봇 #자연어 처리 #Brity RPA #삼성SDS #대화분석 #대화설계
- 대화설계 #시나리오 설계 #Flowchart #플로우차트 작성
- Class #class #reference
- RPA #실습 #라이브러리 #RPA라이브러리 #task #Process #Task
- 메소드 오버로딩 #Method Overloading #오버로딩 #중복정의 #Overloading
- #Brity #BrityRPA #FlowControl
- 생성자 #메소드랑 햇갈려 #생성자랑 메소드는 다른거지롱 #객체생성 #new 연산자 #인스턴스화 #인스턴스 생성
- 스마트인재개발원 #광주인공지능학원 #JavaScript #Web #Java
- RPA #실습 #라이브러리 #RPA라이브러리 #task #Process #Task #Assign #변수
- Today
- Total
코딩몬
[Java] String Class 본문
String Class
String Class는 Java에서 가장 많이 사용하는 Class이다.
String Class에서 인스턴스를 생성하는 방법
모든 Class는 new연산자를 이용해야만 인스턴스를 만들어낼 수 있다.
하지만, String Class는 특이하게 new 연산자를 이용해서 / 하지 않고 즉, 두 가지 방식 모두 인스턴스 생성이 가능하다.
- 방법1. new 연산자를 이용하지 않고 인스턴스 생성(리터럴 방식)
String str1 = "hello";
String str2 = "hello";
- "hello"라는 문자열이 메모리 중에서 상수가 저장되는 영역 즉, constant pool에 저장된다.
- 두 번째 줄이 실행될 때, str2는 constant pool에 자신에게 할당된 값과 같은 값이 있는지 확인한 후, 있다면 해당
데이터의 주소값을 갖는다.
- 결론적으로 str1과 str2는 같은 인스턴스를 참조한다.
- 방법2. new 연산자 이용 인스턴스 생성
String str3 = new String("hello");
String str4 = new String("hello");
- new연산자를 이용하여 인스턴스를 생성하면 heap영역에 값을 저장하기 위한 메모리 할당이 이루어진다.
- 다시말해 new 1개당 하나의 새로운 메모리 주소값이 생성된다고 볼 수 있다.
- 즉, new연산자를 이용하여 인스턴스를 만들면 인스턴스는 무조건 새롭게 만들어진다.
- 결론적으로 str3과 str4는 같은 값이 할당되어있으나, 다른 인스턴스를 참조한다.
String Class의 특징
1. 다른 클래스들과 달리 new 연산자를 사용하지 않고도 인스턴스를 생성할 수 있다.
(메모리를 아끼려면 String 은 new를 사용하지 않는게 좋다.)
2. String Class는 불변 클래스 이다.
(String 이 가지고 있던 값을 나중에 수정할 수 없다.)
String str5 = "hello world";
String str6 = str5.substring(3);
: substring()은 문자열을 자른 결과를 반환하는 메소드로, 해당 코드가 실행되어도 str5의 값 자체에는 변함이 없다.
3. String 은 문자열과 관련된 다양한 메소드를 가지고 있으며, 호출한다하더라도 String 내부의 값이 변하지 않는다.
4. String이 가지고 있는 메소드중 String을 반환하는 메소드는 모두 새로은 String을 생성하여 반환한다.
(str6에는 새로은 String값인 lo가 저장된다.)
'Java > Java 기초' 카테고리의 다른 글
[Java] 열거형(enum) (0) | 2021.10.21 |
---|---|
[Java] 변수의 범위(Scope)와 static (0) | 2021.10.21 |
[Java] Class 의 구성요소 필드(Field), 메소드(Method) (0) | 2021.10.21 |
[Java] Class (0) | 2021.10.20 |
[Java] 참조(Reference)타입 / 클래스,객체,인스턴스 (0) | 2021.10.20 |