본문 바로가기

Java7

[Java] String, StringBuffer, StringBuilder 자바에서 대표적으로 문자열을 다루는 자료형 클래스로 String, StringBuffer, StringBuilder를 지원한다. 3가지 클래스는 모두 문자열을 다룰 때 공통적으로 사용되지만, 사용 목적에 따라 쓰임새가 달라진다. String 자바에서 String 객체의 값은 변경할 수 없다. 즉, 불변의 속성을 갖는다.(immutable) 참고) String 내부 코드 public final class String implements java.io.Serializable, Comparable { private final byte[] value; } 예제를 통해 살펴보자. public static void main(String[] args) { String str = "Hello"; str += "Worl.. 2023. 6. 9.
[Java] equals()와 hashCode()(+ 동일성, 동등성) equals와 hashCode함수 모든 Java 객체의 부모 객체인 Object 클래스에 정의되어 있다. 따라서 모든 객체는 Object 클래스에 정의된 equals와 hashCode함수를 상속받는다. 동일성(Identity), 동등성(Equality) 함수를 설명하기 전 알아두면 좋을 개념인 것 같아서 먼저 정리하였다. 동일성(Identity) 동일성은 비교 대상의 두 객체의 메모리 주소가 같음을 의미한다. 자바에서 비교연산자(==)를 통해 확인할 수 있다. public class Main { static class Person{ int age; public Person(int age) { this.age = age; } } public static void main(String[] args) { Pe.. 2023. 6. 9.
[Java] Call by value vs Call by reference 메서드를 호출할 때 파라미터를 전달하는 방법에는 2가지가 있다. 👆 Call by value 👆 Call by reference Java에서의 파라미터 전달 방법 Java에서는 이 두 가지의 방법 중 Call by value만 사용한다. Call by value (값에 의한 호출) 메서드 호출 시에 사용되는 인자의 메모리에 저장되어 있는 값(value)를 복사하여 보낸다. 원시 타입 public class Main { public static void main(String[] args) { int a = 1; int b = 2; modify(a, b); System.out.println(a); System.out.println(b); } static void modify(int a, int b) { a .. 2023. 6. 8.
원시 타입(Primitive), 참조 타입(Reference) 원시 타입, 기본형(Primitive Type) 👆 특징 - 총 8가지의 타입 존재 - 실제 데이터 값을 저장한다. - 사용하기 전에 반드시 선언되어야 한다. - 비객체 타입으로 null 값을 가질 수 없다. 만약 Primitive type에 Null을 넣고 싶다면 Wrapper Class를 활용한다. - Stack에 저장된다. 👆 종류 - 논리형 (boolean): true와 false 중 하나를 값으로 가짐 - 문자형 (char): 하나의 문자만 저장 가능 - 정수형 (byte, short, int, long) - 실수형 (float, double) 1byte (8bit) 2byte (16bit) 4byte (32bit) 8byte (64bit) 논리 형 boolean 문자 형 char 정수 형 by.. 2023. 6. 7.
접근 제어자(private, default, protected, public) private 해당 클래스에서만 접근 가능하다. public class Main { private String access; private String getAccess() { return this.access; } } access변수와 getAccess 메서드는 오직 Main 클래스에서만 접근 가능하고 다른 클래스에서는 접근이 불가능하다. default 접근 제어자를 별도로 설정하지 않는다면 해당 변수, 메서드는 defauilt 접근 제어자가 되어 해당 패키지 내에서만 접근 가능하다. 👆 name/Park.java (name 패키지) package name; public class Park { String lastname = "Park"; } 👆name/Kim.java (name 패키지) package.. 2023. 6. 7.
클래스, 객체, 인스턴스란? 클래스(class) 정의: 객체를 정의해 놓은 것, 객체의 설계도 또는 틀 용도: 객체를 생성하는 데 사용 클래스는 객체를 생성하는 데 사용되며, 객체는 클래스에 정의된 대로 생성된다. 클래스는 속성(field)와 동작(method)으로 이루어져 있다. class Main { // field area private int a = 0; // method area public void run() { a += 1; } } 객체(Object) 정의: 소프트웨어 세계에 구현할 대상, 클래스를 통해 생성할 대상 용도: 객체가 가지고 있는 기능과 속성에 따라 다름 인스턴스(Instance) 정의: 소프트웨어 세계에 구현된 실체, 런타임에 동작하는 객체로 구체적인 실체이다. 객체와 인스턴스 💡클래스로부터 객체를 만드는.. 2023. 6. 7.