반응형

Programming/JAVA 26

연산자란?

연산자란? 주어진 식의 결과 값을 산출하는 것을 연산이라고 하는데, 연산을 위해 사용하는 기호를 연산자라고 한다. 산술 연산자 (Arithmetic Operator) 사칙연산과 나머지를 구하는 연산까지 5가지가 있다. (더하기, 빼기, 곱하기, 나누기(몫), 나누기(나머지)) boolean타입을 제외한 모든 Primitive type에서 사용이 가능하다. 컴퓨터 시스템적으로 곱하기와 나누기의 연산방식은 비트를 Shift하여 계산한다. 피연산자들 중 부동 소수점이 있다면 부동 소수점으로 산술된다. 더하기 더하기는 + 연산자를 사용하고, 기본적으로는 두 수의 합을 산출할 때 사용하지만 문자열을 연결 시킬때도 사용할 수 있다. 피연산자 중 문자열이 포함되어 있다면 다른 피연산자도 문자열로 취급되어 결과값도 문..

Programming/JAVA 2020.12.22

데이터 타입, 변수, 배열 그리고 타입추론

데이터 타입 JAVA의 데이터 타입은 Primitve Type과 Reference Type으로 나뉜다. 기본형 타입 (Primitive Type) 미리 정의되어 제공되는 데이터 타입으로 원시 타입이라고도 함. 기본값이 있기 때문에 Null을 허용하지 않는다. 기본형 타입에 Null을 넣고 싶다면 래퍼 클래스를 사용해야한다. 스택(Stack) 메모리에 실제값을 저장한다. 값을 저장할 수 있는 범위가 있어 크기를 벗어나면 컴파일 에러가 난다. 타입 할당되는 메모리 크기 기본값 데이터 표현 범위 논리형 boolean 1 byte false true, false 정수형 byte 1 byte 0 -128 ~ 127 short 2 byte 0 -32, 768 ~ 32,767 int 4 byte 0 -2, 147, ..

Programming/JAVA 2020.12.21

JVM이란?

JVM 이란? Java Virtual Machine의 약자로 자바 가상 머신을 의미 한다. Java Byte Code를 OS에 맞게 해석을 해주기 때문에 JAVA의 애플리케이션이 OS에 영향을 받지 않고 실행할 수 있게해주는 역할을 한다. Java Compiler가 .java파일을 .class파일인 Java Byte Code로 변환을 해준다. 하지만 Java Byte Code는 OS에서 바로 실행 할 수가 없다. 이 Byte Code를 OS에 맞게 실행할 수 있게 해석해주는 것이 JVM이다. 자바 바이트 코드 (Java Byte Code) JVM이 이해할 수 있는 언어로 변환된 자바 소스 코드를 의미한다. (.class파일) 자바 컴파일러에 의해 변환되는 코드의 명령어 크기가 1바이트여서 자바 바이트 코..

Programming/JAVA 2020.12.21

[JAVA] Arrays.asList()

Arrays.asList Arrays.asList의 패키지는 java.util.Arrays로 보통의 사용하던 java.util.ArrayList의 ArrayList와는 다르다. java.util.Arrays의 ArrayList 클래스는 remove(), add() 메소드를 제공하지 않고 set(), get(), contains()를 제공한다. 배열에 엘리먼트를 추가하거나 삭제할 수 없어서 배열의 사이즈를 변경할 수 없다. Array를 List 처럼 사용할 수 있게 도와주는 클래스 String[] strs = {"apple", "banana", "orange"}; // List list = new ArrayList(); 대신 사용이 가능하다. List list = Arrays.asList(strs); st..

Programming/JAVA 2020.09.17

[JAVA] 쓰레드 (Thread), Runnable 인터페이스

쓰레드 (Thread) 쓰레드를 알기 위해선 먼저 프로세스(process)에 대해 알아야한다. 프로세스란 쉽게 말해 실행되고 있는 프로그램이다. 그렇다면 쓰레드란 무엇일까? 쓰레드란 프로세스 내에서 실행되는 작업 단위를 말한다. 프로그램은 코드를 작성한대로 순차적으로 실행이 되는데 이 쓰레드를 이용하면 동시의 여러개의 코드를 실행할 수 있다. 여러 쓰레드를 이용하여 프로그램을 동시에 여러 동작으로 실행시키는것을 멀티쓰레딩이라고 한다. 멀티 쓰레딩 예제 (Thread 클래스 상속) public class ThreadTest extends Thread{ String name; int num; public ThreadTest(String name, int num) { // TODO Auto-generated ..

Programming/JAVA 2020.03.15

[JAVA] 접근 지정자, Final 기본적인 개념

접근 지정자 접근지정자는 클래스 내에서 멤버의 접근할 수 있는 범위를 제한해주는 역할을 한다. 접근 제한자라고도 불린다. 접근 지정자로는 public, protected, default, private과 같이 4가지가 있다. Public 모든 접근을 허용한다. protected 같은 패키지에서만 접근이 가능하고, 다른 패키지라면 상속을 받은 클래스에서는 접근이 가능하다. default protected에서 상속의 개념을 뺀것으로 생각하면 된다. 접근지정자를 적지 않을경우 자동으로 지정된다. 같은 패키지에서만 접근이 가능하다. private 같은 클래스 내에서만 접근이 가능하다. 접근 지정자 // 동일 클래스 // 동일 패키지 // 다른 패키지 상속관계 // 다른 패키지 public O O O O prot..

Programming/JAVA 2020.03.02

[JAVA] 기본적인 enum

enum (열거형 상수) enum은 열거형 상수라고 부르며 자바 1.5 버전부터 enum은 enum 데이터 타입으로 표시가 되었다. enum이 생기기 이전에는 상수를 사용할때 public static final과 같이 사용하였지만, 값 충돌 및 논리적인 문제점 등 다양한 문제가 발생되어 enum으로 대체하여 사용하고 있다. enum은 잘못 설정되면 컴파일 단계에서 에러가 발생하기 때문에 실행단계에 가기전에 에러를 파악할 수 있다. enum 생성 public enum 열거데이터타입 {상수값1, 상수값2, 상수값3 ... } //예 public enum Colors {RED, BLUE, WHITE, BLACK} Color는 열거형데이터타입이고 Red, Blue 등은 열거형 상수값이다. 열거형 상수는 열거데이..

Programming/JAVA 2020.02.25

[JAVA] 인터페이스 (Interface)

Interface 추상 메소드와 상수(final), default 메소드, static 메소드로 구성되어있다. 추상메소드로 인해 강제성을 줄 수 있어 통일성 및 일관성이 지켜져 재사용성과 유지보수가 좋아진다. 인터페이스의 추상 메소드는 abstract키워드를 생략할 수 있다. java 8버전 이상부터는 default와 static 메소드를 사용할 수 있게 되었다. 인터페이스는 객체생성이 불가능하며 상속과 비슷한 구현(implement)를 이용한다. 구현할때는 implements키워드를 사용하고, 구현한 클래스에서 반드시 인터페이스의 모든 추상 메소드들을 구현(재정의) 해야한다. public interface InterfaceName { public void test(); // abstract 생략가능 }..

Programming/JAVA 2020.02.24

[JAVA] 다형성(Polymorphism)

다형성(Polymorphism) 하나의 메소드나 클래스가 다양한 방법으로 동작하는 것을 의미한다. 혹은 하나의 객체가 여러가지 타입을 가질수 있는것을 말한다. 두 의미 달라보이지만 말만 다르지 똑같은 결과를 말하고 있는 것이다. 오버로딩 또한 다형성의 예라고 볼 수 있는데 이점에 대해서는 이견이 존재한다. 클래스 다형성 상속관계에서 상위타입의 변수로 하위타입을 참조할 수 있는 것을 다형성이라고 한다. 즉 부모 클래스 데이터타입의 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있다. class Parent { public void superObj() { System.out.println("부모 클래스"); } } class Child { public void superObj() { System.out.p..

Programming/JAVA 2020.02.24

[JAVA] 상속(Inheritance), 오버라이딩(Override), super, super()

상속 우리가 현실세계에서 쓰는 상속과 비슷한 의미를 가지고 있다. 자바에서 상속은 부모 클래스의 메소드와 변수같은 멤버와 자원을 자식 클래스가 사용할 수 있다. 자바에서는 다중 상속을 지원하지 않는 대신 객체의 명확성을 높였다. 상속을 사용하면 중복된 코드를 줄이고 코드의 재사용성을 높여 유지보수가 편리하다 부모클래스 parent 클래스, 기반(base)클래스, Super 클래스, 상위 클래스 자식클래스 children 클래스, 후손 클래스, sub 클래스, 하위 클래스 상속을 받게 되면 부모 클래스의 필드와 메소드와 같은 멤버등을 물려받게 된다. 하지만 접근제어자가 private을 가지고 있는 멤버는 불가능하며, 부모 클래스와 패키지가 다를 경우 접근제어자가default인 멤버도 상속 받을 수 없다. ..

Programming/JAVA 2020.02.21
반응형