[JAVA] Chapter1~5

이진규·2024년 12월 21일
0

자바

목록 보기
3/6

Chapter1. JAVA

  • 운영체제에 독립적
    자바가상머신(JVM)라는 에뮬레이터 사용
    자바로 작성된 프로그램은 운영체제에 독립적
    JVM은 운영체제에 종속적이어서 서로 다른 버전의 JVM 제공
  • 객체지향언어
    상속, 캡슐화, 다형성을 지원하는 객체지향언어
  • 비교적 배우기 쉬움
  • 자동 메모리 관리 (Garbage Collection)
  • 네트워크와 분산처리를 지원
  • 멀티쓰레드를 지원
    관련 라이브러리가 제공
    여러 쓰레드에 대한 스케줄링을 자바 인터프리터가 담당
  • 동적 로딩을 지원
    실행시에 모든 클래스가 로딩되지 않고 필요한 시점에 로딩

Chapter2. 변수

문자 리터럴과 문자열 리터럴

String str = ""; // OK. 내용이 없는 빈 문자열
cahr ch = ''; // 에러. ''안에 반드시 하나의 문자가 필요
char ch = ' '; // OK. 공백 문자(blank)로 변수 ch를 초기화

문자열 결합

문자열 + any type -> 문자열 + 문자열 -> 문자열
any type + 문자열 -> 문자열 + 문자열 -> 문자열

기본형과 참조형

자바는 C언어와 달리 참조형 변수 간의 연산을 할 수 없음
실제 연산에 사용되는 것은 모두 기본형 변수

기본형 : boolean, char, byte, short, int, long, float, double
참조형 : 8개의 기본형을 제외한 나머지 타입

기본형의 종류와 범위

정수형의 경우 2n1-2^{n-1} ~ 2n112^{n-1}-1 의 범위
n은 bit수 (1byte = 4bit)

printf를 이용한 출력

double d = 1.23456789;
System.out.printf("d=%14.10f%n",d); // d=  1.23345678900
// %전체자리.소수점아래자리f -> 전체 14자리 중 소수점 아래 10자리
// 앞의 빈자리는 공백으로 채우고 뒤의 빈자리는 0으로 채움

Chapter3. 연산자

형변환 연산자

(char) 65 // 'A'
(int) 'A' // 65
(int) 1.6f // 1
(float) 10 // 10.0f

자동 형변환

표현 범위가 좁은 타입에서 넓은 타입으로 형변환하는 경우에는 값 손실이 없으므로 투 타입 중에서 표현버위가 더 넓은 쪽으로 형변환

산술 변환

1. 두 피연산자의 타입을 같게 일치 시킴 (보다 큰 타입으로 일치)
long + int -> long + long -> long
float + int -> float + float -> float
double + float -> double + double -> double

⭐️ 2. 피연산자의 타입이 int보다 작은 타입이면 int로 변환
byte + short -> int + int -> int
char + short -> int + int -> int

반올림 연산

// 무조건 소수점 첫째자리에서 반올림
long result = Math.round(3.14); // 3
// 자리수를 조절하는 방법 
// ex) 소수점 3자리만 출력하고 싶을때
double pi = 3.141592;
double shortPi = Math.round(pi*1000) / 1000.0; // 3.142

⭐️ 문자열의 비교

String str1 = "abc"; // String pool에 저장
String str2 = new String("abc"); // 새로운 객체를 Heap에 생성

== : 내용과 같은 객체인지 비교, equals : 내용만 같은지 비교
str1 =="abc"; // true
str2 == "abc"; // false
str1.equals("abc"); // true
str2.equals("abc"); // true
str2.equalsIgnoreCase("ABC"); // true

Chapter4. 조건문과 반복문

switch문의 제약 조건

  1. switch문의 조건식 결과는 정수 또는 문자열이어야 한다.
  2. case문의 값은 정수 상수(문자 포함), 문자열만 가능하며 중복 X

임의의 정수 만들기

0.0 <= Math.random() < 1.0
// 1~3 사이의 임의의 정수 만들기
1 <= (int) (Math.random() * 3) +1 < 4

Chapter5. 배열

profile
웹 개발자

0개의 댓글