본문 바로가기
Java/기초

[java기초] 모듈과 기본패키지

by Meaning_ 2021. 7. 2.
728x90
반응형

<모듈>

 

- java9에서 도입된 개념

- 패키지와 이미지등의 리소스를 담은 컨테이너

- 모듈파일(.jmod)로 저장

 

<자바 모듈화의 목적>

 

- 자바 컴포넌트들을 필요에 따라 조립하여 사용하기 위함

- 컴퓨터 시스템의 불필요한 부담 감소 

 

<java 주요 패키지>

 

 

java.lang - 자바 language패키지
- 스트링,수학 함수, 입출력 등 자바 프로그래밍에 필요한 기본적인 클래스와 인터페이스

- import문 사용하지 않아도 사용 가능!
java.util - 자바 유틸리티 패키지
- 날짜, 시간,벡터,해시맵 등과 같은 다양한 유틸리티 클래스와 인터페이스 제공 
java.io - 키보드,모니터,프린터,디스크 등에 입출력할 수 있는 클래스와 인터페이스 제공
java.awt 자바 GUI 프로그래밍을 위한 클래스와 인터페이스 제공 
java.swing 자바 GUI 프로그래밍을 위한 스윙 패키지 

<Object 클래스>

 

- java.lang 패키지에 포함

- 모든 클래스의 수퍼 클래스

--> 모든 클래스에 강제 상속

--> 모든 객체가 공통으로 가지는 객체의 속성을 나타내는 메소드 보유 

 

<객체를 문자열로 변환>

 

String toString()

- 객체를 문자열로 반환

- Object 클래스에 구현된 toString()이 반환하는 문자열

- 객체를 출력할 때도 toString 메서드가 같이 나옴 

- 개발자는 자신만의 toString() 작성 필요

-->Object의 toString() 오버라이딩 (이때는 public으로 접근제어자 설정해야)

 

p가 p.toString()으로 자동변환된다.

 

<콘솔창>

 

 

<객체 비교와 equals()>

 

 ==연산자

 

두개의 레퍼런스 비교 (두 레퍼런스가 동일한 객체를 가리키고 있는지 비교)

 

equals()

 

- 객체 비교를 위해서는 equals() 이용해야함

- 객체 내용이 같은지 비교

 

x=2,y=3 이라는 내용이 같아도 a와 b는 다른 객체를 가리키기 때문에 "a==b"가 출력되지 않지만 c는 a와 같은 객체를 가리키기 때문에 "a==c"가 출력된다.

 

 

콘솔창에는 "a is eqaul to b" 가 뜬다. 이는 a,b,c가 가리키는 객체는 모두 다르지만 a와 b는 2*3의  값과 3*2의 값이 같으므로 객체의 내용 자체는  같아지기 때문이다!

 

 

<Wrapper클래스>

 

- 이름이 Wrapper인 클래스는 존재하지 않는다

- 용도는 기본 타입의 값을 객체로 다룰 수 있게 한다.

- java.lang 패키지에서 제공됨 

 

Integer i = integer.valueOf(10);   --> 기본타입의 값으로 Wrapper 객체 생성 

 

Integet i=Integer.valueOf("10");  --> 문자열로 Wrapper 객체 생성

 

Wrapper 객체로 부터 기본타입 값 알아내기

 

Integer i=Integer.valueOf(10);

int ii= i.intValue(); //ii=10

 

문자열을 기본 데이터 타입으로 변환

 

int i=Integer.parseInt("123"); // i=123

 

기본타입을 문자열로 변환

 

String s1=Integer.toString(123); //정수 123을 문자열 "123"으로 변환 

 

<박싱과 언박싱>

 

박싱

 

- 기본 타입의 값을 Wrapper 객체로 변환

예) Integer ten=Integer.valueOf(10);

 

언박싱

 

- Wrapper 객체에 들어이는 기본 타입의 값을 빼내는 것 

예) int n=ten.intValue();

 

<String의 특징과 객체 생성>

 

String - java.lang.String

 

= String 클래스는 하나의 문자열 표현

 

 

스트링 생성 방법

 

- 리터럴로 생성 String s="Hello";

 

- String 객체로 생성 String t=new String("Hello");

 

 

- 스트링 객체는 수정 불가능

 

- 스트링은 비교시 반드시 equals 비교 --> equals()는 내용을 비교하기 때문 

 

String a="Hello";

String b="Java";

String c="Hello";

String d=new String("Hello");

String e= new String("Java");

String f= new String("Java");

 

<int compareTo(String anotherString)>

 

- 문자열이 같으면 0 리턴

 

- 문자열이 anotherString 보다 사전(dictinary) 상에 먼저 나오면 음수 리턴

 

- 문자열이 anotherString 보다 사전에 나중에 나오면 양수 리턴

 

- == 연산자 사용하면 안됨

 

<문자열 연결>

 

+ 연산자로 문자열 연결

 

피연산자에 문자열이나 객체가 포함되어 있는 경우

: 객체는 객체.toString()을 호출하여 문자열로 변환하여 연결

 기본 타입값은 문자열로 변환하여 연결

 

String concat(String str)을 이용한 문자열 연결

 

 

"I love".concat("Java")는 "I love Java" 리턴 

 

<공백제거>

 

String trim()

 

=문자열 앞 뒤 공백문자 제거한 문자열 리턴 

 

String a= "     abcd def    ";

String c= a.trim(); // c="abcd def" -->문자열 중간에 있는 공백은 제거되지 않음 

 

char charAt(int index)

 

String a="class";

char c=a.charAt(2); //c='a'

728x90
반응형

'Java > 기초' 카테고리의 다른 글

[java 기초] 제네릭과 컬렉션  (0) 2021.07.04
[java기초] 제네릭 프로그래밍  (0) 2021.07.02
[java기초] 패키지  (0) 2021.07.02
[java 기초] 인터페이스와 다형성  (0) 2021.06.30
[java기초] 인터페이스  (0) 2021.06.30

댓글