String 클래스 파고들기 - 객체의 특성 및 더하기 연산의 버전별 차이
String 클래스 파고들기 - 객체의 특성 및 더하기 연산의 버전별 차이 Language/JAVA 2024. 4. 9. 16:31

String Constant Pool(String Pool) String 객체는 불변객체라고 합니다. 한 번 객체가 생성되면 값이 바뀌지 않는 것이죠. 그렇다면 아래 코드의 결과는 어떻게 될까요? public class StringExample { public static void main(String[] args) { String str1 = "abc"; String str2 = "abc"; String str3 = new String("abc"); System.out.println(str1 == str2); System.out.println(str1 == str3); System.out.println(str1.equals(str3)); } } 결과 첫번째 String과 두번째 String이 다르다고 ..

String 클래스 파고들기 - String 생성과 byte 변환시 주의점
String 클래스 파고들기 - String 생성과 byte 변환시 주의점 Language/JAVA 2024. 4. 5. 18:00

String 클래스 String 클래스를 API문서와 클래스를 직접 확인해보면 위와같이 선언되어 있는 것을 볼 수 있습니다. final로 선언되어 있고 Object 를 상속받으며 Serializable, Comparable CharSequence 인터페이스를 구현하고 있는 구현체입니다. final로 선언되어 있으니 String 클래스는 상속이 불가능하고, 자바의 모든 클래스는 Object로 부터 상속받니 이것은 당연한(?)사실입니다. 그렇다면 인터페이스가 궁금해집니다. 먼저, Serializable은 '구현해야 하는 메소드가 하나도 없는 특이한 인터페이스' 입니다. 이 인터페이스로 선언하면, 해당 객체를 다른 서버로 전송 가능하거나 파일로 저장이 가능한 상태가 됩니다. 그리고 Comparable은 이름에..

자바가 돌아가는 동작 원리
자바가 돌아가는 동작 원리 Language/JAVA 2024. 3. 6. 20:00

자바의 가장 큰 특징 중 하나는 플랫폼에 독립적으로 실행이 가능하다는 것입니다. 이것은 CPU 또는 운영체제에 상관없이 코드를 실행시킬 수 있다는 의미인데요. 이를 위해서는 자바의 동작 방식에 대한 이해가 필요합니다. 자바의 기본동작 자바는 기본적으로 JVM 위에서 동작합니다. JVM이란 Java Virtual Machine의 약자로 이 JVM이 실질적으로 기계어로 번역 후 컴퓨터에게 전달시켜주면 컴퓨터가 프로그램을 실행 시킬 수 있습니다. 각 OS 종류에 맞는 자바를 설치하면, 함께 JVM은 OS에 맞게 설치 됩니다. 자바코드 실행 과정 자바코드의 실행 과정은 아래와 같습니다. 컴파일 순서 먼저 작성한 java 코드를 실행시키면 javac 컴파일러가 바이트코드로 컴파일합니다. 컴파일 된 결과로 작성한 ..

자바에서의 Call by value 와 Call by reference
자바에서의 Call by value 와 Call by reference Language/JAVA 2024. 3. 6. 02:11

Call by value 와 Call by reference Call by value는 값에 의한 호출을 의미하고, Call by reference는 참조에 의한 호출을 의미합니다. Call by value는 원래 값이 수정되지 않고, 함수에 변수가 전달될 때 변수의 복사본이 생성되어 전달되고, Call by reference는 함수에 변수 자체가 전달이 되어서 함수 내에서 변수 값이 변경 될 경우 원래 변수 값도 변경됩니다. 자바에서는? 자바에서는 Call by value만 존재하고, Call by reference는 존재하지 않습니다. 얼핏 보면 String이나 객체는 Call by reference로 불러오는 것 같지만 자바에서는 원래 할당된 참조는 수정되지 않습니다. 예시코드 public clas..

기본형 타입과 참조형 타입 Language/JAVA 2023. 2. 21. 06:47

자바에서는 데이터를 저장할 때 기본형 타입과 참조형 타입을 제공합니다. 기본형 타입 먼저 기본형 타입은 데이터 그 자체를 변수에 저장하기에 메모리 사용량이 적고 연산이 빠릅니다. 타입은 아래와 같이 8가지가 있습니다. [정수형] boolean타입 - 기본값 false. true 또는 false를 저장 byte타입 - 기본값 0. -128~127 까지의 정수를 저장 short타입 - 기본값 0. -32,768~32,767까지의 정수를 저장 int타입 - 기본값 0. -2,147,483,648~2,147,483,647(약 21억)까지의 정수를 저장 long타입 - 기본값 0L. -9,223,372,036,854,775,808~9,223,372,036,854,775,807까지의 정수를 저장 [실수형] floa..

추상 클래스 정리 Language/JAVA 2022. 10. 24. 12:26

추상클래스 추상클래스는 클래스를 정리하고 규격화하기 위하여 만들어졌습니다. 자주 사용하는 값을 변수로 지정하여 변수 값만 변화시키면 그 변수를 사용하는 곳은 모두 변하는 것처럼, 추상 클래스도 클래스 내부의 필드와 생성자를 변경하면 상속받은 클래스를 일일이 수정할 필요 없다는 것입니다. 예를 들어 손으로 사용하는 드라이버 클래스와 전동드라이버 클래스가 있다고 합시다. public class ScrewDriver { //필드 String user; //생성자 public ScrewDriver(String user){ this.user = user; } //메소드 public void screwIn(){ } } public class ElectricDriver { //필드 String users; //생성자..

image