일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #route53 #igw #연결
- 쓰레드 #쓰레드풀 #프로세스
- sasac #aws 클라우드 #아키텍트 과정 #가상화 #vmbox #vmware #esxi #tar #selinux
- aws #클라우드 #퍼블릭 클라우드 #아키텍트 #과정
- ubuntu #설정변경 #vmware #vmbox #linux #명령어
- storage #로컬스토리지 #세션스토리지 #백그라운드 서비스
- aws #아키텍트 #과정 #vpc #인프라 구축
- mysql #linux #설정 #wordpress #웹사이트 #db 연결 #
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- aws #아키텍트 #과정 #vpc #인프라 구축 #퍼블릭 #보안그룹 #생성 #http #ipv4
- virtualbox #vmware #router #nat #pat #네트워크 구성도 #aws #ubuntu #
- aws #아키텍트 #과정 #vpc #인프라 구축 #php #웹페이지 #http #public #instance
- 인바운드 #아웃바운드 #방화벽설정
- tar #build #배포 #통신포트 #설정방법 #linux #apache
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #웹개발
- oracle vmbox #rocky #linux9 #명령어 #암호화인증 #해시알고리즘
- aws #아키텍트 #과정 #s3 #bucket #생성 #이미지업로드
- aws #아키텍트 #과정 #vpc #인프라 구축 #퍼블릭 서브넷 #안에 #ec2 인스턴스 #ami #생성 #firewall
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #private subnet
- 비트 #바이트 #이진수
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #igw #curl #명령어 #http
- 프로세스 #CPU #시공유 #커널
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- 공간복잡도 #공간자원 #캐시메모리 #SRAM #DRAM #시간복잡도
- haproxy #wordpree #php #linux #가상화 #가상머신 #내용정리
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #internet gateway #연결
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #OSI #ISO #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #KDT #기본문법 #데이터베이스 #Computer #Science #CPU #메모리
- samba #가상머신 #daemon
- Today
- Total
요리사에서 IT개발자로
스파르타 코딩클럽 부트캠프 (Java 문법 1장) 본문
개발 언어의 역사
A언어
- 첫 개발 언어 A Programming Language의 약자
- 1960년대 발표
핵심기능
- 입/출력, 문맥
B언어
- Bell사에서 개발한 언어
- 1960년대 발표
핵심기능
- A언어 기능 + 기계식 데이터 타입, 연산기능 , 메서드
C언어
- B언어보다 좋은의미로 C언어
- 1970년대 발표
핵심기능
- B언어 기능 + 자료형 데이터 타입, 자료구조
자바언어
- 어디서나 동작가능한 , 자바 커피에서 이름을 따서 만든 Java언어
- 1990년에 발표
핵심기능 : C언어 기능 + 공통 실행환경, 클래스, 객체
Java를 배워야 하는 이유는?
가장 많이 쓰이는 개발 언어중 하나
- 여러 OS에 실행이 가능하다
- 이해하기 쉽고 유지보수가 쉽다.
- 안전성이 높아서 프로그래밍 오류를 방지하고 안전하다.
- 대규모 앱개발이 가능하다
- 다양한 개발 도구와 라이브러리를 사용할 수 있다.(API)
JVM이란
Java Virtual Machine (자바 가상 머신)
가상의 기기를 만들어 준다
여러가지 기기 위에 Java 프로그램을 실행 시킬수 있는 가상머신을 만들어준다.
- 바이트코드 = Java프로그램 변환코드
- 인터프리터 = Java .class 코드 해석기
- JIT 컴파일러 = 빠른 Java.class 코드 해석기
- 메모리 영역 = Java 데이터를 저장하는 영역
- 클래스 로더 = Java .class 바이트 코드를 메모리 영역에 담는 운반기
- 가비지 컬렉터 = 쓰레기 청소기
Java 컴파일러
내가 작성한 Java 코드들을 운영체제가 읽을 수 있는 바이트 코드로 변환하는 변환기
JRE란
Java Runtime Environment (자바 실행 환경)
Java의 JVM을 설치하는 방법은 JRE를 설치하는것
하지만 .class 파일만 실행이 가능하다.
JDK란
Java Development Kit (자바 개발 키트)
Java의 기능과 함께 Java 프로그램을 개발할 수 있는 JDK가 있다
JDK는 JRE 기능을 포함한다.
.java 파일을 .class 파일로 변환해주는 Java Compiler(Javac)기능이 있다.
코드를 디버깅 하는 jdb 기능이 있다.
JDK 디버깅 기능
- JDK의 jdb기능을 통해 실행 중인 프로그램의 코드 실행을 따라다니며 볼 수 있다.
- 내가 작성한 코드라인에 중단점을 설정하고 디버그 모드로 프로그램을 실행하면
- 프로그램의 중단점 코드라인을 수행할 때 프로그램 흐름이 일시정지되며 변수들을 볼 수 있게 도와준다.
- 디버깅 = 중단점 일시정지 + 코드라인 단위 수행
변하는것, 변하지 않는것
저장공간에 담을 값의 타입과 이름을 명시하여 선언한다.
값의 타입 : 저장공간(그릇)의 종류
값의 이름 : 저장공간(그릇)의 이름
int number; //number라는 이름의 int(숫자)타입의 저장공간을 선언
String name; // name이라는 이름의 String(문자열)타입의 저장공간을 선언
값의 저장
선언과 동시에 저장 = 초기화
선언 이후 값을 저장 = 덮어쓰기
int number = 10; // 선언과 동시에 저장공간에 값을 저장
number = 11; //이후에 다른값을 저장공간에 저장
저장공간의 종류 (변수 타입)
저장공간은 변수와 상수로 나뉜다.
논리형 변수 = boolean
boolean flag = true; //boolean으로 선언하고 true값으로 초기화
flag = false; // false 값으로도 저장할 수 있다.
문자형 변수 = char
char alphabet = 'A'; //문자 하나를 저장
정수형 변수 = byte, short, int, long
byte = -128 ~127 범위만 저장 가능
shoty (2byte)는 -32768~32,767 범위만 저장가능
int(4byte)는 -21억 ~ 21억 범위의 숫자만 저장가능
long(8byte)는 9백경 정도의 매우 큰 수를 저장가능.
public class Main {
public static void main(String[] args) {
byte byteNumber = 127;
short shortNumber = -32767;
int intNumber = 214783847;
long longNumber = 123543346454L;
}
정수형 리터럴 구분값 (리터럴 = 데이터 값)
int와 long의 데이터 를 구분하기위해 숫자뒤 L을 붙인다. (접미사)
실수형 변수 : flaot, double
실수는 표현범위가 넓어 정수형 변수에서 담지 못할 수 있다.
float(4byte) = 3.4 * 10^38 ~ 3.4 * 10&38(long보다 크다) 범위만 저장가능
double(8byte) = 1.7 * -10^308 ~ 1.7* 10^308(long보다 크다) 범위만 저장가능
float이 long보다 더 넓은 범위를 표현하는 이유
부동 이라는 의미를 갖고 소수점이 움직인다는 의미의 부동 소수점 방식으로 숫자를 저장한다
부동 소수점 방식 : 가수와 지수를 구분해서 저장 및 값을들 곱한 값을 표현 하는 방식
float과 double의 데이터값(리터럴)을 구분하기위해서 담을 숫자 뒤에 f를 붙인다.(접미사)
float은 소수점 7자리, double은 16자리까지 표현가능하다.
문자열 변수 : String
그외 : Object, Array, List
박싱과 언방식
박싱
기본타입에서 래퍼클래스 변수로 변수를 감싸는 것
언방식
래퍼 클래스 변수를 기본 타입 변수로 가져오는 것.
public class Main {
public static void main(String[] args) {
// 박싱 VS 언박싱
// 박싱
// Integer 래퍼 클래스 num 에 21 의 값을 저장
int number = 21;
Integer num = number;
// 언박싱
int n = num.intValue(); // 래퍼 클래스들은 inValue() 같은 언박싱 메서드들을 제공해줍니다.
}
}
기본 타입 | 래퍼 클래스 |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
아스키 코드 표
숫자를 문자로 매핑 (int = > char) 해서 표현한다.
숫자에서 문자로
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int asciiNumber = sc.nextInt();
char ch =(char)asciiNumber;
System.out.println(ch);
} //100을 입력하면
} //아스키코드의 해당 문자값이 출력되어 나온다
문자에서 숫자로
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char letter = sc.next().charAt(0);
int asciiNumber = (int)letter;
System.out.println(asciiNumber);
} //A를 입력하면
} //해당하는 문자의 숫자코드가 출력되어 나온다.
문자와 문자열이란
문자는 문자 한개만 저장
char alphabet = 'A';
문자열은 문자 여러개를 문장형태로 저장
String message = "Hello world";
문자와 달리 문자열은 문장끝에 \0(널문자)가 저장된다.
참조형변수는 주소값을 저장하는 주소형변수이다.
기본형 변수는 원본 값이 Stack 영역에 있다.-> Stack영역은 정적으로 할당된 메모리 영역이다.
참조형 변수는 원본 값이 Heap 영역에 있다.-> Heap영역은 동적으로 할당도니 메모리 영역이다.
입 출력
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
System.out.println("입력값 : " + input);
} //Scanner 객체를 new명령어로 생성
} //sc(Scanner)의 .next();를 실행하면 input변수에 입력한 글자가 출력
//입력값 : input
형변환의 이해
변수를 문자로 숫자로
숫자에서 문자로
또는 문자에서 문자로 등등
변환을 하고싶은 값으로 변경하는 과정
1이 10에 저장될수는 있지만 10이 1에 저장될 수 없다.
자동 타입 형변환 과 강제 형변환
작은타입에서 큰타입으로 변경하는것은 자동으로 가능하다.
큰타입에서 작은타입으로 변경하는것은 강제로 해야한다.
https://hs-backend.tistory.com/17
https://hs-backend.tistory.com/23
'Java' 카테고리의 다른 글
스파르타 코딩클럽 자바문법 2장 배열, 컬렉션정리 (1) | 2024.04.25 |
---|---|
스파르타 코딩클럽 부트캠프 (Java 문법 2장) (0) | 2024.04.24 |
Eclipse 단축키 정리(with 자바의 정석) (0) | 2024.04.18 |
Java 2장(with 이것이 자바다) (0) | 2024.04.11 |
Java 2장(with 자바의 정석) (0) | 2024.04.10 |