나 Java봐랏 1일차
Java Programming
설치
- JDK(Java Development Kit) 설치
- JRE(Java Runtime Environment) 설치 - JVM(Java Virtual Machine) Java Class Library, Java Command 등 컴파일된 Java 프로그램 실행 위한 패키지
Java 파일 --> Class 파일 (컴파일 되어 최종적으로 실행되는 파일이에용)
Package 이름: 소문자 시작
Class 이름: 대문자 시작
ctrl+d : 한줄 지우기
ctrl+F11: 실행
Java 특징
- C: OS에 종속적(OS마다 컴파일러 차이 있음)
- Java: OS에 독립적(JVM - 자바 가상머신 위에서 돌아가므로 OS에 관련없이 어느 환경이든 잘 돌아감) - .class 파일로 돌아감
- 원래는 속도에서 C >> Java였는데 JVM 성능, 기기 성능 좋아져서 어느정도 극복!!
- 객체 지향 언어 - 유지 보수 쉽고 확장성 good!
- 안정적, 여러 기능 제공(오픈소스 많아욧)
변수와 자료형
진수
1byte == 8bit
10진수, 2진수 변환은 식상하니 pass!
10진수: 9 10 11 12 13 14 15 16
16진수: 9 A B C D E F 10
why 16진수?
: 10진수 -> 2진수 가 너무 길어진다! -> 16진수로 간단히 나타내자!
ex) 10 -> 0000 1010 -> 0 A
2진수 4bit를 16진수로는 1bit로 표현 쌉가능
package helloworld;
public class HelloWorld {
public static void main(String[] args) {
int num = 10;
int bNum = 0B1010; //0B가 2진수임을 의미
int oNum = 012;
int hNum = 0XA; //모두 10
System.out.println(num);
System.out.println(bNum);
System.out.println(oNum);
System.out.println(hNum);
}
}
음의 정수
- 가장 왼쪽의 수가 부호 결정
0: 양수 1: 음수 - MSB(Most Significant Bit): 가장 왼쪽의 부호비트 명
만드는 법
- 1의 보수를 취한다(부호 결정 수를 1로 바꿈)
- 1을 더한다
- 이렇게 만든 음의 정수와 원래의 수를 더해보면 0이 된닷
package helloworld;
public class BinaryNegative {
public static void main(String[] args) {
int num1 = 0B00000000000000000000000000000101; //5
int num2 = 0B11111111111111111111111111111011; //-5
int sum = num1 + num2;
System.out.println(num1);
System.out.println(num2);
System.out.println(sum);
}
}
변수
변수를 선언하고 값을 넣는...그런...거는...생...략...뿅!
변수 선언시 유의점도...생...략...뿅!
자료형
모든 자료형에서 맨 앞의 (왼쪽의)비트는 부호 비트이므로 ex) int형이 4byte이면 32비트 중 31비트가 숫자 나타낼 때 쓰인닷
한눈에 쏘옥><
int
- byte는 숫자보다는 동영상, 음악 파일 등의 실행 파일의 자료 처리에 적합!
- int에서 32비트 초과하면 long을 씁시다
long num1 = 123456789000; // long으로 해도 수 자체는 4byte로 저장되기에 오류
long num2 = 123456789000L;//L써줘서 저장도 8byte로 되도록 변경
쉽게 말해서 long으로 처리하도록 명시하는 것이다!
char
- 디코딩: 숫자 -> 문자
- 인코딩: 문자 -> 숫자
아스키코드에서 'A' -> 65...생...략...뿅!
package helloworld;
public class Character {
public static void main(String[] args) {
char ch = 'A';
System.out.println(ch);
System.out.println((int)ch);//65
char ch2 = 66;
System.out.println(ch2);//B
}
}
float
- 부동 소수점 방식: 실수를 지수부, 가수부로 표현
- float사용시 float f = 3.14F 와 같이 숫자에 f, F를 명시해야 한닷
package helloworld;
public class Float {
public static void main(String[] args) {
double dNum = 3.14;
//float fNum = 3.14; // 실수는 무조건 double로 저장되기에 오류발생
float fNum = 3.14F;//float형으로 쓰기 위한 방안
}
}
boolean
- 참, 거짓 표현
자료형 없이 변수 선언?
- 자료형 - 변수의 메모리 크기와 타입 구분 위해 사용
- 지역 변수 자료형 추론(local variable type inference): 변수에 대입되는 값 보고 컴파일러가 추론
var num = 10; --> int num = 10;
var dNum = 10.0; --> double dNum = 10.0;
var str = "abc"; --> String str = "abc";
요건 C/C++과의 차이를 보여줘서 함 가져와봐따
상수
: 변하지 않는 값
final 키워드 사용
ex) final double PI = 3.14;
리터럴(literal)
: 프로그램에서 사용되는 모든 숫자, 값, 논리 값
- 리터럴들은 상수 풀(constant pool)에 저장되어 있음
- 위의 예시에서 PI는 상수, 3.14는 리터럴!!
- 정수 - int, 실수 - double -> long, float는 따로 명시 필요!!
형 변환(type conversion)
- 묵시적 형 변환: 작은 수-> 큰수 / 덜 정밀 -> 더 정밀
ex) long 값(3) -> int 값(3)
package helloworld;
public class ImplicitConversion {
public static void main(String[] args) {
byte bNum = 10;
int num = bNum;
System.out.println(num); //10(int)
long lNum = 10;
float fNum = lNum;
System.out.println(fNum);//10.0(float)
double dNum = fNum + num;
System.out.println(dNum);//20.0(double)
}
}
- 명시적 형 변환: 변환하려는 자료형 명시 필요, 자료의 손실 가능성
ex) double 값(3.14) -> int 값(3)
package helloworld;
public class ExplicitConversion {
public static void main(String[] args) {
int iNum = 1000;
byte bNum = (byte)iNum;
System.out.println(iNum);//1000
System.out.println(bNum);//-24 -128<byte<127
double dNum = 3.14;
iNum = (int)dNum;
System.out.println(iNum);//3
}
}
지금까지 나 java바랏 1일차 끄읏 XD
Author And Source
이 문제에 관하여(나 Java봐랏 1일차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@khsfun0312/나-Java봐랏-1일차저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)