java
-
[JAVA] String Class언어/JAVA 2022. 9. 8. 10:30
// 가용한 HEAP 공간에 "Hello" 를 저장하고 그 주소를 s 에 전달 String s = "Hello"; String s1 = "Hello"; // 이미 저장된 "Hello" 가 있다면 그 주소를 전달하여 s1에 저장합니다 System.out.println("0. " + s); // 단점 : 같은 문자열 Hello 를 다른 변수에 저장하려 한다면, 새로운 공간이 할당 되지 않음 // new에 의해 새로운 HEAP 공간에 "Hello" 를 저장, 그 주소를 s 에 전달 s = new String("Hello"); s1 = new String("Hello"); // new에 의해 새로운 HEAP 공간에 "Hello" 를 저장, 그 주소를 s1 에 전달 System.out.println("1. " +..
-
[JAVA] Calendar Class언어/JAVA 2022. 9. 8. 10:09
싱글톤 방식의 클래스 -생성자가 private 으로 접근 차단됨(외부에서 접근 금지.-> 외부에서 new Calendar() 사용 안됨) -유일하게 실행된 new Calendar() 는 클래스 내부에서 실행되어 클래스내부에 단하나만 존재하게끔 생성된 레퍼런스 변수에 주소를 저장. 그리고 그 레퍼런스 변수가 갖고 있는 주소를 리턴하는 public static 형태의 getInstance 메서드로 인스턴스의 주소를 리턴 받아 씀. -이후 다시 getInstance() 메서드가 실행되도 현재 HEAP 에 이미 있는 인스턴스의 주소가 리턴 됨. import java.util.Calendar; public class CalendarClass01 { public static void main(String[] arg..
-
[JAVA] Object 클래스언어/JAVA 2022. 9. 8. 09:54
-사용자 정의 클래스를 생성하면서, extends(상속)을 구현하지 않으면 자동으로 java.lang.Object 클래스를 상속. -Object 클래스는 Java 에서 사용되는 모든 클래스들의 최상위 부모클래스 -Subclass extends Super 라는 건 Subclass 는 Object 클래스를 상속하지 않지만 Super 클래스가 Object 클래스를 상속하므로, Subclass 는 Object 클래스를 상위의 상위로 상속한것과 같은 의미 class UserClass { } public class Extends09_Object01 { public static void main(String[] args) { UserClass obj = new UserClass(); // getClass 메소드는 해..
-
[JAVA] Extends TypeCastion언어/JAVA 2022. 9. 8. 09:43
class NormalA { int num; } class NormalB { int num; } public class Extends08_TypeCasting01 { public static void main(String[] args) { short s = 10; int i = s; // 자동 형변환 (short -> int) : 작은용량에서 큰용량의 변수로 int j = 10; // short k = j; // 에러(int -> short) : 큰 용량에서 작은 용량의 변수로 // 해결 방법은 강제 캐스팅 연산자를 앞에 붙여서 사용 short k = (short)j; // 클래스의 레퍼런스 변수간의 형변환은 각 레퍼런스의 접근 범위에 영향을 받음 // 서로 다른 클래스 객체간의 형변환은 허용되지 않음 ..
-
[JAVA] 상속(Extends)언어/JAVA 2022. 9. 7. 18:01
-다수개의 클래스들이 중복되는 멤버 변수, 멤버 메서드를 포함하고 있는 경우 부모 자식 관계를 생성하여 코드의 중복을 방지하는 것을 1차 목적으로 사용함 -2차 목적으로 코드의 재활용 방법을 목적으로 사용함 -코드의 중복이 발생하고 있는 클래스에서 중복되는 멤버들을 별도의 클래스로 선언하고 상속을 구현하여 사용함 상속의 구현 -extends 키워드의 사용 -class SubClass명(자식클래스) extend SuperClass명(부모클래스) -상속을 받는 클래스: 서 클래스, 자식클래스, 하위클래스 -상속을 제공 해주는 클래스: 슈퍼클래스, 부모클래스, 상위클래스 //코드의 중복이 발생하고 있는 클래스들 /*class PersonA{ String name; int age; String hakbun;..
-
[JAVA] SingletonPattern언어/JAVA 2022. 9. 7. 17:53
-웹프로그래밍에서 자주 사용하는 기법 -웹프로그래밍의 특성상 하나의 프로그램을 서버에 두고 다수의 사용자가 접속해서 그 하나의 프로그램을 사용하게 되는데 이때 그 프로그램내의 클래스로 만들어지는 객체는 다수의 사용자인원수 만큼 따로생성되어 사용되기 마련임. 이때 메모리 과부하가 일어날 수 있으며 이를 해결하기 위해 하나의 객체를 각각 다른 사용자가 혼자 사용하는 것처럼 공유해서 쓸 수 있게 하는 방식이 싱글턴 방식임 -특정 클래스의 인스턴스를 반드시 한개만 생성할 수 있도록 강제하는 패턴 -하나의 인스턴스를 여러 래퍼런스 변수가 공유하여 사용하도록 제어하는 방식임 // 싱글톤 생성법 import java.util.Calendar; class SingletonEx{ int n1; int n2; // 1..
-
[JAVA] Static언어/JAVA 2022. 9. 7. 17:52
-멤버변수, 멤버메서드에 적응할 수 있는 키워드 -정적 변수(클래스의 변수), 정적 메소드(클래스의 메소드)를 선언할 때 사용 자바프로그램의 구동 과정 1. JVM에 의해서 실행할 모든 클래스 중 static 메소드, static 멤버필드를 수집해서 메모리에 로딩되고 프로그램의 시작(main 메소드의 실행) 전에 메모리 적재됨 2. 메모리에 로딩된 static 메소드 중 main 이름을 검색 3. main 메소드가 검색되었다면 JVM해당 main 메소드를 호출하여 프로그램 시작 class StaticA{ int num; // instance member variable(동적 멤버변수) static int number=100; // static member variable(정적 멤버변수) } publi..
-
[JAVA] This언어/JAVA 2022. 9. 7. 17:44
-멤버변수와 지역변수(매개변수)와 부득이하게 이름이 같았을 때, 그 둘을 구분하기 위해 멤버변수 앞에 this. 을 붙여서 사용함. -this 키워드는 클래스 내부에서 사용되는 모든 멤버 변수에 원래 붙어 있지만 사용 편의상 확실히 멤버변수로 구분할 수 있는 경우 생략해서 사용하고 있음 -매개변수와 이름이 같지 않은 경우도 this를 붙여서 사용할 수 있음 -this 변수는 래퍼런스(참조) 변수임 -클래스의 멤버 필드들은 new라는 키워드에 의해서 각각의 객체별로 생성됨(서로 다른(겹치지 않는) 메모리 공간) -반면, 멤버 메서드는 생성된(오버로딩 포함) 메서드별로 하나만 존재하여 모든 객체들이 공유해서 필요시 호출함. -이때 현재 메서드를 호출한 객체가 어떤 객체인지 구분하여 실행될 수 있게 thi..