본문 바로가기

자바 프로그래밍

[JAVA] 자바 기초 (식별자, 자료형, 연산자)

* INTRO

교수님 성함 : 이지유

iamjiyoo@naver.com / gmail.com

교수님 사이트 : http://192.168.23.13/

 

* 과정

제어문, 배열, 클래스, 메소드, string, 상속, 추상클래스, 인터페이스, 예외처리

=> Date, 콜렉션, I/O, JDBC (심화)

 

* 혼자 고민해보기

 

객체지향 C++, JAVA, C#

절차지향 C

 

하나의 소프트웨어에 하나의 프로젝트(Java Project) 일반적임.

 

 

 

객체지향언어 vs 절차지향언어

유지보수가 좋은 이유 ? 객체 단위라 문제 발견이 쉬움

 

Write Once Run AllTime 

 

메모리 관리 ? 힙 관리가 중요

 

컴파일러 + 인터프리터 : OS에 독립적 (명령어 해석기) -> 10진수를 2진수로 !

 

인터프리터 : 10진수를 읽으며 바로바로 2진수로 (보안 ↓)

컴파일러 : 10진수를 2진수로 한 번만 하면 돼 (보안 ↑)

자바는 컴파일러와 인터프리터를 함께 쓴다. (인터프리터 역할을 하는 것이 jre)

 

.java를 컴파일 하면 .class로 돌아감.

회사에서 누군가가.. .java를 주는게 아니라, .class 로 주어야 함

 

인터프리터를 사용하기 위해 JVM이 존재함.

JVM 자체가 JRE에 있음

JDK는 .java → .class로 만들어줌.

개발자가 아닌 사람들은 보통 jre만 있음..

.class 파일은 바이너리 코드이므로 열어도 코드가 보이지 않는다. (보안이 좋음)

 

 

소프트웨어의 시작과 끝을 알려주는 메소드를 main 메소드라고 한다.

반드시 메소드는 클래스 내부에 선언되어야 한다.

 

java → src 에는 .java만 만들어지고, bin 폴더에는 .class 파일만 만들어진다.

파일명이 같아도 패키지가 다르면 상관없음.

보통 패키지명은 회사의 도메인을 거꾸로 써서 사용한다.

클래스명은 첫글자 대문자!

.java 파일 Rename -> F2

main + ctrl + space + enter

package kr.co.mlec.day01; // . 으로 디렉토리를 구분한다. -> 일반적으로 패키지명은 다음과 같이 만든다

 

public static void main = static public void main

String[] args = String args[] = String a[] = .... = 상관없음.

 

 

 

자바는 유니코드 기반!

System.out.println('가');

이렇게 해도 가 라는 한글이 출력돼!

 

 

.

.

 

//선언부

public class A {

//내용부

}

 

- 기본자료형 (8가지) 과 참조자료형이 존재함

  참조자료형은 첫글자가 반드시 대문자로 시작한다.

  사용자가 클래스를 만들었다 ? 그러면 그 클래스 하나하나가 자료형임. 그래서 클래스의 첫글자는 대문자!

  클래스를 참조 자료형이라고 함.

  문자열은 참조 자료형!!

  상수값을 저장하기 위한 공간을 만들기 위함 → 자료형이 있는 이유 ~~~

 

 

정수는 int형, 실수는 double형이 기본형임.

 

boolean a;   // 메모리에 1 byte
char b;  //  메모리에 2 byte
int c; //  메모리에 4 byte
double d;   //  메모리에 8 byte
String e;   //   C에서 포인터가 자바에서 참조 자료형  
// 참조 자료형은 실제 값을 가지고 있는 공간이 별도로 만들어짐. e는 주소 공간의 소유주? X, e는 참조 변수 O

// 하지만 기본 자료형은 해당 값을 직접 가짐.

기본 자료형의 데이터는 스택에 저장, 참조 자료형은 힙 영역

 

 

 

데이터(Data) 영역

 

 - 전역 변수와 static 변수가 할당되는 영역

 - 프로그램의 시작과 동시에 할당되고, 프로그램이 종료되어야 메모리에서 소멸됨

 

스택(Stack) 영역

 

 - 함수 호출 시 생성되는 지역 변수와 매개 변수가 저장되는 영역

 - 함수 호출이 완료되면 사라짐


힙 영역 

할당해야 할 메모리의 크기를 프로그램이 실행되는 동안 결정해야 하는 경우(런 타임때) 유용하게 사용되는 공간


출처: https://dsnight.tistory.com/50 [기초 탄탄 영상털이's Stroy]

 

[C] 스택(Stack), 힙(Heap), 데이터(Data)영역

C언어의 메모리 구조 프로그램을 실행시키면 운영체제는 우리가 실행시킨 프로그램을 위해 메모리 공간을 할당해준다. 할당되는 메모리 공간은 크게 스택(Stack), 힙(Heap), 데이터(Data)영역으로 나뉘어진다. 이..

dsnight.tistory.com

 

(1) String s = "abc" (X)

(2) String s = new String("abc") (0) 

2번이 옳은 표현! 하지만 String 만 (1) 과 같은 방식을 허용한다.

 

 

 

 

 

묵시적 형변환은 크기가 작은 자료형의 변수가 크기가 큰 자료형의 변수에 들어갈 때 발생!

반대의 경우에는 명시적 형변환이라고 한다. 

 

이와 같은 경우를 묵시적 형변환이라고 한다.

 

12 앞에는 (double) 이 생략 가능하다.

 

 

10 을 3으로 나눈 실수값을 받고 싶으면 

피연산자의 값 중 하나에 (double) 명시적 형 변환을 해주어야 함.

 

이건 2,0,0 나오는거 맞음

논리 && , || 중에 && 연산자가 우선순위가 높다.

 

이건 2,0,0 나오는거 아님

논리 && , || 중에 && 연산자가 우선순위가 높다.

 

|| 이후의 연산은 수행하지 않는다. 그래서 b : -1, c : 0 의 결과가 출력된다.

 

 

 

 

 

 

 

 

'자바 프로그래밍' 카테고리의 다른 글

[JAVA] 나비 모양 그리기  (0) 2019.05.15
[JAVA] 조건문/반복문  (0) 2019.05.13
[JAVA] 싱글톤 패턴  (0) 2019.01.06
[JAVA] DAO와 DTO  (0) 2019.01.06
[JAVA] 엑셀 파일 읽기 (API)  (0) 2019.01.04