일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 서블릿
- vmax
- nth-of-type()
- 자바
- 소스트리
- 복합 선택자
- 김성박
- 부정 선택자
- vmin
- nth-child()
- 웹개발
- JavaScript
- optgroup
- jsp
- 즐거운 자바
- 부스트코스
- ES6
- 다시보자
- datalist
- 상속
- 속성 선택자
- 즐거운자바
- 다시볼 것
- 깃헙
- spring
- EDWITH
- 가상요소 선택자
- 가상클래스 선택자
- 보충필요
- HTML Templating
Archives
- Today
- Total
기억의 DataBase
package(디렉토리)와 중요 package 본문
-
package(디렉토리)와 중요 package
package가 없는 경우 : 그냥 java Hello.java로 실행
package가 있는 경우 : 그냥 javac -d c:₩tmp Hello.java로 실행
-
package명을 도메인으로 짓는 이유
중복으로 인하여 충돌이 발생할 수 있기 때문에
도메인명을 거꾸로 + 프로젝트명
package가 없는 경우 : 그냥 java Hello.java로 실행
package가 있는 경우 : 그냥 javac -d c:₩tmp Hello.java로 실행
ex) www.naver.com >> com.naver.projectName
-
기본 package중에서 가장 중요한 것들
-
java.lang - 기본이 되는 package(import하지 않아도 사용가능) - lib에 들어있는 jar 파일로 되어있음
※나머지는 import를 해줘야함
(import는 사용하는 class가 어떤 package에 있다는 것을 JVM과 컴파일러에게 알려주는 것)
(import는 사용하는 class가 어떤 package에 있다는 것을 JVM과 컴파일러에게 알려주는 것)
※같은 package내에서는 import를 할 필요없이 쓸 수 있음
-
java.util - 유용한 class(날짜, 자료구조)
-
java.io - 입출력
-
자바 API 문서를 볼때(https://docs.oracle.com/javase/8/docs/api/)
Constructor Summary를 먼저 확인 - 생성자가 있는지를 먼저 파악
생성자가 없는 Class는 없지만
생성자를 사용하지 못하게 하는 Class는 있음(private 생성자를 가진 경우 - api에 안나옴)
ex) Math m1 = new Math(); >> 불가능(컴파일 오류가 남 / import할 필요도 없음(lang클래스))
>> new로 Instance를 만들지 않아도, static을 활용해서 사용
>> static 메소드의 경우는 객체가 없어도 사용이 가능
생성 안하고 바로 Math.random( );
-
만약 각각 다른 패키지에 이름이 같은 Class를 동시에 import하려면 어떻게 할까?
Package Class
exam1 Bean
exam2 Bean
import exam1.Bean;
import exam2.Bean;
Bean b1 = new Bean();
exam2.Bean b2 = new exam2.Bean(); >> 패키지명까지 다 적어주면 됨
※ imort 할때 *를 사용한다고 해서 성능이 저하되는 것은 아님(Compile 할때 필요한 것만 import함),
어떤 package를 사용했는지 파악이 어려울 뿐
어떤 package를 사용했는지 파악이 어려울 뿐
-
필드
클래스 변수(static이 붙어있는 변수) >> JVM이 먼저 사용할 수 있도록메모리에 올린다
인스턴스 변수
클래스 변수(static)은 인스턴스가 만들어지기 전에 딱 한번만 메모리에 올라감
같은 클래스는 디스크에서 딱 한번만 읽어들임
public class MyBean {
static int staticValue; // class 변수
int instanceValue; // 인스턴스 변수
}
public class MyBeanTest {
public static void main(String[] args) {
MyBean b1 = new MyBean();
MyBean b2 = new MyBean();
b1.staticValue = 5; // b1 인스턴스에서 값을 줌
System.out.println(b2.staticValue);
// 5가 출력됨(다른 인스턴스지만, staticValue는 메모리에 올라가 있는 상태라 b2에서 호출해도 나옴)
System.out.println(MyBean.staticValue);
// 클래스 변수를 사용할때는 이렇게 써주는게 정확함
}
}
※ 각각의 인스턴스가 다른 값을 가지게 하려면, 클래스변수가 아니라, 인스턴스 변수를 줘야함
'Java' 카테고리의 다른 글
생성자 (0) | 2019.01.17 |
---|---|
예외처리(Exception) (0) | 2019.01.17 |
객체지향 (0) | 2019.01.16 |
OOP(Object Oriented Programming) - 객체지향과 Memory (0) | 2019.01.14 |
JAVA Start (0) | 2019.01.11 |
Comments