2023. 10. 12. 20:19ㆍ콛/Til
Chapter 1 : 개발언어 Java
· Java의 특징 : JVM, 클래스 + 객체지향
· JVM : 어느 장비(PC, 모바일, 서버..) 에서든 JVM을 깔아주면 Java가 놀 수 있는 놀이터
· Java 컴파일러(compiler)란 ?
- 내가 작성한 Java 코드들(.java 파일)을 운영체제가 읽을 수 있는 바이트 코드(.class 파일)로 변환하는 변환기
· 인터프리터
- 운영체제가 읽은 바이트 코드를 기기(기계)가 실행할 수 있는 기계어 (row레벨 언어)로 번역
· JIT 컴파일러
- 인터프리터의 효율을 높여주는 코드 해석기
· 메모리 영역
- Java 데이터를 저장하는 영역 = 운영체제(window..)로부터 JVM(가상기계)이 할당받은 메모리 영역
· 클래스 로더
- JVM으로 Java.class 바이트코드를 불러와서 메모리에 저장하는 운반기
· 가비지 컬렉터
- Java 쓰레기 청소기
- 메모리 영역에서 안쓰는 데이터를 주기적으로 흡수해가는 청소기
· JDK (Java Development Kit)
- JRE(Java Runtime Environment) 기능 가지고 있음
- .java 파일들을 .class파일로 변환해주는 기능 = Java Compiler(javac) 가짐
- 코드 디버깅 = jdb기능 가짐
· 기본 형태 해석
// 클래스
// public : (접근)제어자, public(공공의, 공통의)
public class Main {
//JDk
// (1) compiler : .java -> .class
// (2) JRE
// (3) JDB : 디버깅
// main 메소드
// 자바 프로젝트(앱)는, 제일 먼저 클래스의 main 메소드를 실행시킨다.
// =JVM의 약속
// static : 이 프로그램이 시작될 때 무조건 실행되는 녀석임을 표현
//output
// void : 메서드의 출력값의 데이터 타입
// void : "아무것도 없다." -> 출력은 없다.
//input
// String[] args : 매개변수 자리
//args : 변수명, 아무렇게나 써도 상관이 없다.
public static void main(String[] args) {
// 객체 : 특징(속성, 변수), 행동(메소드)
// print -> 줄바꿈 하지 x
// println -> 줄바꿈 o
// ln : Line
}
}
Chapter 2 : 변수
· 변수 : 하나의 값을 저장할 수 있는 저장공간
· 상수 : 변하지 않는 값 ex) pi
· 저장공간의 선언과 값의 저장
· 기본형 변수
- 논리형 변수 : boolean (True :1, False :0)
- 문자형 변수 : char (문자 하나 'A' , '1' 하나만 저장)
- 실수형 변수 : float(4byte), double(8byte)
- 정수형 변수 : byte, short, int, long
byte byteNumber = 127; // byte 는 -128 ~ 127 범위의 숫자만 저장 가능합니다.
short shortNumber = 32767; // short 는 -32,768~32,767 범위의 숫자만 저장 가능합니다.
int intNumber = 2147483647; // int 는 -21억~21억 범위의 숫자만 저장 가능합니다.
long longNumber = 2147483647L; // long 은 숫자뒤에 알파벳 L 을 붙여서 표기하며 매우 큰수를 저장 가능합니다.
· 참조형 : 뭔가 복잡한..., 별도 저장
- 문자열 변수 : String ("apple")
- 배열 Array
int[] a = {1,2,3};
- 출력시
public class Main {
public static void main(String[] args) {
int[] a= {1,2,3};
System.out.println(a); //[I@6d311334
System.out.println(Arrays.toString(a)); //[1, 2, 3]
}
}
- 그 외 : Object, Array, List... (단일 공간에 담을 수 없는 값)
* 1byte : 8bit →2^8 =256 == -128 ~ 127
* bit : 0과 1을 표현
· 래퍼 클래스(Wrapper Class 변수)
public class Main {
public static void main(String[] args) {
int number =21;
Integer num = number;
//boxing
System.out.println(num.intValue());
//unboxing
}
}
· 문자와 문자열 저장 관점에서의 차이점
- 문자
: 문자 뒤에 \0(널문자)가 없다.
- 문자열
: 문장 끝에 \0(널문자)가 함께 저장된다.
· 기본형 변수 vs 참조형 변수의 저장관점에서의 차이점
· 형변환
- 변수 타입별 크기 순서
- byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)
· 자동 형변환 vs 강제 형변환
- 작은타입 > 큰타입( 자동형변환)
값의 손실이 없기에 컴파일러가 자동으로 형변환 해줌
- 큰타입 > 작은타입 (강제 형변환 = 캐스팅)
값의 손실이 생기기 대문에 개발자가 선택하여 형변환
· 입력과 출력
- 입력
- scanner.in 객체의 next() 명령을 사용해서 입력받는다.
Scanner sc = new Scanner(System.in); // Scanner 객체를 new 명령어로 생성합니다.
String input = sc.next(); // sc(Scanner)의 .next(); 를 실행하면 input 변수에 입력한 글자를 받을 수 있습니다.
- 출력
- System.out 객체의 println() 명령을 사용해서 출력
Scanner sc = new Scanner(System.in);
String input = sc.next();
System.out.println("입력값 : " + input); // 입력한 글자를 출력합니다.
// 실행 결과
{입력}
입력값 : {입력}
'콛 > Til' 카테고리의 다른 글
2023.10.13.<Java>문법2_연산자, 조건문/반복문, 배열 (0) | 2023.10.13 |
---|---|
2023.10.12.<계산기Pj>next()와 nextLine() 메소드의 차이 (1) | 2023.10.12 |
2023.09.19.<강의>SQL 3주차_Join (0) | 2023.09.19 |
2023.09.14.<SQL>MySQL_문법정리 (0) | 2023.09.14 |
2023.09.13.<SQL>MySQL 2_Group by , Order by, SQL 쿼리 순서 (0) | 2023.09.12 |