나 Java봐랏 1일차

18362 단어 JavaJava

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로 바꿈)
  2. 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

좋은 웹페이지 즐겨찾기