JAVA/JAVA 18

연산자 Operator

연산자의 개념 연산(Operations) : 프로그램에서 데이터를 처리하여 결과를 산출하는 것. 연산자(Operator) : 연산에 사용되는 표시나 기호 피연산자(Operand) : 연산에 사용되는 데이터 연산식(Expressions) : 연산 계산식 연산자의 종류 피연산자의 갯수에 따라 단항, 이항, 삼항 연산자로 구분됨. 연산식은 무조건 1개의 값만 반환함. 연산자의 종류에 따라 산출되는 값의 데이터타입이 다름. 산술연산자는 숫자타입(byte, short, int, long, float, double), 비교연산자와 논리연산자는 boolean 타입이 반환됨. 단항 : a++; !조건식 이항 : x + y; 삼항 : (score>90) : "A" : "B"; 연산자 종류 연산자 피연산자수 산출값 설명 ..

JAVA/JAVA 2021.10.04

JVM 자바 가상머신

JVM : Java Virtual Machine 바이트 코드인 자바를 해석하고 실행하는 가상의 운영체제 운영체제와 자바 사이의 중간단계 역하을 수행하는 것으로, 개발자는 운영체제를 신경쓰지 않고 자바 프로그램을 개발할 수 있음. JVM의 구성 ① 자바 인터프리터 : 바이트 코드 파일을 읽고 실행 ② 클래스 로더 : 실행 중에 자바를 읽어 클래스를 로딩 ③ JIT컴파일러 : 실행 중에 자바 바이트 코드를 기계어로 번역 ③ 가비지 컬렉터 : 메소드 작동이 끝나면 자동으로 메모리를 회수. (메모리관리) 메모리 사용 영역 [메소드 영역] 클래스 로더로 읽어 클래스별로 런타임 상수풀, 필드, 메소드, 생성자 등을 분류해서 저장하는 데이터 영역 JVM이 시작할 때 생성되고 모든 스레드가 공유하는 영역 [힙 영역] ..

JAVA/JAVA 2021.10.02

Objects 클래스

Objects 클래스 Object의 유틸리티 클래스 Method Return Type 설명 compare(T o1, T o2, Comparator c) int Comparator(우선순위)를 이용해 두 객체를 비교 deepEquals(Object o1, Object o2) boolean 깊은 비교 : 두 객체의 데이터 값을 비교 equals(Object o1, Object o2) boolean 얕은 비교 : 두 객체의 번지(주소값) 비교 hashCode(Object o) int 객체의 해시코드 hash(Object o) int 입력값으로 배열을 생성하고 해시코드를 생성 isNull(Object o) boolean 객체가 null인지 조사 nonNull(Object o) boolean 객체가 null이 아..

JAVA/JAVA 2021.09.28

Object Class

Object Class 자바의 가장 최상위 클래스 필드 없이 메소드로만 구성되어 있고, 모든 클래스에서 Object 클래스의 메소드를 사용할 수 있음. * 모든 클래스는 Object 클래스를 상속받기 때문 equals() 두 객체가 동일하면 True, 아니면 False를 반환하는 메소드 Object A = new Object(); Object B = new Object(); Object C = A; System.out.println(A.equals(B)); System.out.println(A.equals(C)); false true 두 객체가 같은 값인지를 비교하기 위해 클래스에서 재정의 Override해서 사용할 수 있다. 대표적으로 String클래스의 equals가 있다. [Telephone 클래스..

JAVA/JAVA 2021.09.28

java.lang 패키지

java.lang 자바 프로그램의 기본적인 클래스를 담고 있는 패키지로 import 없이 사용할 수 있음. Class 설명 Object 최상위 클래스 System 표준 입출력, JVM 종료, Garbage Collector 실행 요청 Class 클래스를 메모리로 로딩 String 문자열 저장, 정보 얻기 StringBuffer, StringBuilder 문자열 저장, 조작 Math 더하기, 곱하기, 나머지 구하기 등의 수학 함수 사용 Wrapper Byte, Short, Character, Integer, Float, Double, Boolean, Long 기본 타입 객체, 입력값 검사, 기본 타입으로 변환 java.util Class 설명 Arrays 배열의 복사, 비교, 정렬, 문자열로 변환 등 Ca..

JAVA/JAVA 2021.09.27

어노테이션 Annotation (@)

어노테이션 컴파일 및 실행 과정에서 코드를 어떻게 컴파일하고 처리할 지를 알려주는 메타데이터 정보 @Annotation 어노테이션의 용도 컴파일러에게 코드 문법 에러를 체크하도록 정보를 제공 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보를 제공 실행 시(런타임 시) 특정 기능을 실행하도록 정보를 제공 어노테이션 정의와 사용 어노테이션은 element를 가질 수 있음. element는 타입과 이름으로 구성되어 있고, default값을 가질 수 있음. public @interface AnnotationName{ String elementName1(); String elementName2() default "Manta.Ray"; } public class AnnotationTes..

JAVA/JAVA 2021.09.26

데이터 타입 Data Type

기본타입 Primitive Type byte, char, short, int, long, float, double, boolean 실제 값을 변수 안에 저장한다. 참조타입 Reference Type 배열타입, 열거타입, 클래스, 인터페이스, Integer 메모리에는 실제값의 주소(번지)가 저장되고, 실제 값은 힙 영역에 저장된다. 2021.10.02 - [JAVA/JAVA] - JVM 자바 가상머신 기본타입 종류 정수형 [byte] 색상 정보 및 파일 또는 이진(바이너리) 데이터를 처리할 때 주로 사용됨. 정수 타입 중 가장 작은 범위의 값을 표현함. 저장되는 값의 범위 : -27 ~ 27 메모리 사용 크기 : 1 byte ( 8 bit ) [char] 글자 1개, 유니코드 1개를 저장하기 위한 데이터 ..

JAVA/JAVA 2021.09.24

NaN과 Infinity

개념 NaN : Not a Number, 숫자가 아닌 값 Infinity : 무한대 System.out.println( 5 % 0.0); System.out.println( 5 / 0.0); NaN Infinity 실제 연산 시 ArithmeticException이 발생함. System.out.println( Integer.valueOf(5%0) ); System.out.println( Integer.valueOf(5/0) ); Exception in thread "main" java.lang.ArithmeticException: / by zero 특징 /, % 연산의 우측 연산자가 0일때 나타남. 이 값들에 추가 연산을 해도 NaN 또는 Infinity가 그대로 출력됨. 처리방법 해당 값이 NaN이나 ..

JAVA/JAVA 2021.09.24