728x90

자바의 특징

 

◆ 자바는 객체지향 언어이다.

 - 객체지향 프로그램(OOP, Object Oriented Programming)이란 프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결하여 전체 프로그램을 완성하는 것이다.

 

- 객체를 만들기 위해서는 설계도인 클래스를 작성하고, 객체와 객체를 연결하여 목적에 맞는 프로그램을 만들어 낸다.

 

- 객체지향 언어의 특징인 캡슐화, 상속성, 다향성을 완벽하게 지원한다. 

 

◆ 이식성이 높다

- 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것을 말한다.

 

- 자바는 자바 실행환경(JRE)이 설치 되어 있는 모든 운영체제에서 실행이 가능하다.

 

◆ 인터프린터 언어이다.

- 컴파일 언어인 동시에 인터프리터 언어이다.

 

- 텍스트 소스를 컴파일 하여 2진 파일(클래스 파일)로 만든 다음 자바 런타임이 클래스 파일을 인터프리트 하면서 실행한다.

 

- 시스템에 무관한 2진 파일을 만듬으로써 자바는 컴파일 언어에 가까운 속도와 시스템 독립성을 얻을 수 있다.

 

◆ 메모리를 자동으로 관리한다.

- C++은 메모리에 생성된 객체를 제거하기 위해 개발자가 직접 코드를 작성해야 한다. 만약 이 작업을 성실하게 해주지 않는다면 프로그램은 불안전해지고 갑자기 다운되는 현상을 겪을수도 있다. (JAVA와 다른점)

 

- 자바는 개발자가 직접 메모리에 접근할 수 없으며 메모리는 자바가 직접 관리한다.

 

- 객체 생성시 자동으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 쓰레기 수집기(Garbage Collector)를 실행시켜 자동으로 사용하지 않는 객체를 제거한다.

 

- 덕북에 개발자는 메모리 관리의 수고를 덜고, 핵심기능 코딩에 집중할 수 있다.

 

◆ 멀티 스레드 구현이 쉽다.

- 운영체제에 따라 멀티 스레드를 구현하는 방법이 다르지만, 자바는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하므로 운영체제에 상관없이 멀티 스레드를 쉽게 구현할 수 있다.

 

◆ 동적 로딩을 지원한다.

- 실행시에 모든 클래스가 로딩되는 것이 아니라 필요한 시점에 클래스를 로딩하여 사용할 수 있다는 장점을 지닌다.

 

- 애플리케이션의 변경사항이 발생해도 비교적 적은 작업만으로도 처리할 수 있는 유연한 애플리케이션을 장성할 수 있다.

 

◆ 분산환경을 지원한다.

- 자바에는 TCP/IP 라이브러리가 기본적으로 포함되어 있다.

 

- 또한 http 와 htp 프로토콜을 기본적으로 지원한다.

 

◆ 오픈소스 라이브러리가 풍부하다.

- 자바는 오픈소스(Open Source) 언어이고 자바 프로그램에서 사용하는 라이브러리 또한 오픈소스의 양이 방대하다. 

 

- 고급 기능을 구현하는 코드를 작성하는 대신 검증된 오픈소스 라이브러리를 사용하면 애플리케이션을 다시 컴파일 할 필요가 없다.

 

- 따라서 유지보수를 쉽고 빠르게 진행 할 수 있다.

 

◆ 단점

- 자바는 실행을 위해 자바 가상 머신을 거쳐야 하므로, 다른 언어에 비해 실행 속도가 느리다.

 

- 자바는 예외 처리가 잘 되어 있지만, 개발자가 일일이 처리를 지정해 줘야 한다는 불편함이 있다.

 

- 자바는 다른 언어에 비해 작성해야 하는 코드의 길이가 긴 편이다.

 

참고)

https://helloworld-88.tistory.com/3

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

[JSP] JSP기본 개념 및 객체  (0) 2023.06.27
[JSP] JSP (JavaServer Pages) 란 무엇일까?  (0) 2023.06.24
<Java> JDBC에 대해서 개념 공부  (0) 2023.02.21
<Git>PrintMe.java  (0) 2023.02.05
<Git>PlusMinus02.java  (0) 2023.02.05
728x90

package ch01_variable_operator;

public class Operator01 {
    public static void main(String[] args) {
        int a = 10 , b = 8 ;

        boolean bool1 = a!=b ;
        boolean bool2 = --a == b++ ;
        // a = 9 , b = 9

        boolean bool3 = a++ != --b ;
        // a = 10 , b = 8

        boolean bool4 = bool3 && (5>7) ;
        boolean bool5 = !bool4 || (bool1 && bool2) ;

        System.out.println("bool1 : " + bool1);
        System.out.println("bool2 : " + bool2);
        System.out.println("bool3 : " + bool3);
        System.out.println("bool4 : " + bool4);
        System.out.println("bool5 : " + bool5);

        System.out.println();
        System.out.println();
        System.out.println();
        System.out.println();

    }
}

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

<Git>PlusMinus01.java  (0) 2023.02.05
<Git>OperatorEx.java  (0) 2023.02.04
<Git> Increment01.java  (0) 2023.02.04
<Git>MyPrint.java  (0) 2023.02.04
<Git>MyBox.java  (0) 2023.02.04
728x90

package ch01_variable_operator;

public class LogicalOperator {
    public static void main(String[] args) {
        // hard coding
        System.out.println(3 >= 2);
        System.out.println(!(3 >= 2));
        System.out.println(3 == 2);
        System.out.println(3 != 2);
        System.out.println(3.45 < 2);

        System.out.println("------------------------------");

        System.out.println((3>2) && (3>4));

        int x = 3, y = 2 ;
        System.out.println((x != y) || (-1 > 0));

        // 문자는 정수 값으로 변환되어 연산이 됩니다.
        System.out.println('a' > 'b');
    }
}

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

<Git>MyPrint.java  (0) 2023.02.04
<Git>MyBox.java  (0) 2023.02.04
<Git> ErrorDebug.java  (0) 2023.02.02
<Git> Condition02.java  (0) 2023.02.02
<Git> CondOper01.java  (0) 2023.02.02
728x90

package ch01_variable_operator;

public class CondOper {
    public static void main(String[] args) {
        int x = 3, y = 8, z = 4 ;
        int max = x > y ? x : y ;
        max = max > z ? max : z ;
        System.out.println("최대 : " + max);

        // 최소 값은 ?
        int min = x < y ? x : y ;
        min = min < z ? min : z ;
        System.out.println("최소 : " + min);

        max = x > y ? (x > z ? x : z) : (y > z ? y : z)  ;
        System.out.println("최대 : " + max);

        min = x < y ? (x < z ? x : z) : (y < z ? y : z)  ;
        System.out.println("최소 : " + min);
    }
}

 

cf) Myjava/CondOper.java at master · nolooker/Myjava (github.com)

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

<Git> Condition02.java  (0) 2023.02.02
<Git> CondOper01.java  (0) 2023.02.02
<Git> Casting.java  (0) 2023.02.02
<Git> ArithmeticOperator2.java  (0) 2023.02.02
<Git> ArithmeticOperator.java  (0) 2023.02.02
728x90

package ch01_variable_operator;

public class ArithmeticOperator2 {
    public static void main(String[] args) {
        

        int TIME = 8000 ;

        int hour ;
        int minute ;
        int second ;

        hour = TIME / 3600 ;
        minute = (TIME - hour * 3600) /60 ;

        second = TIME % 60 ;

        System.out.println("시간 : " +TIME);
        System.out.println("시 : " +hour);
        System.out.println("분 : " +minute);
        System.out.println("초 : " +second);

        System.out.println("-----------------------------");

        int x = 20 ;

        x += 5 ;

        x += 10 ;

        x -= 15 ;

        x /= 5 ;

        x *= 100 ;

        int y = 300 + x ;


        System.out.println("x 는 : " +x);

        System.out.println(+y);

    }
}

 

cf) Myjava/ArithmeticOperator2.java at master · nolooker/Myjava (github.com)

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

<Git> CondOper.java  (0) 2023.02.02
<Git> Casting.java  (0) 2023.02.02
<Git> ArithmeticOperator.java  (0) 2023.02.02
<Git> Arithmetic01.java  (0) 2023.02.02
<Git> AreaTest.java  (0) 2023.02.02
728x90

package ch01_variable_operator;

public class Arithmetic01 {
    public static void main(String[] args) {
        int x = 14 ;
        int y = 5 ;

        System.out.println("더하기 : " + (x + y));
        System.out.println("빼기 : " + (x - y));
        System.out.println("곱하기 : " + (x * y));
        System.out.println("나누기 : " + (x / y));
        System.out.println("나눗셈 : " + (x % y));
    }
}

 

cf) Myjava/Arithmetic01.java at master · nolooker/Myjava (github.com)

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

<Git> ArithmeticOperator2.java  (0) 2023.02.02
<Git> ArithmeticOperator.java  (0) 2023.02.02
<Git> AreaTest.java  (0) 2023.02.02
<Git> add2.java  (0) 2023.02.02
<Git> add.java  (0) 2023.02.02
728x90

package ch01_variable_operator;

public class Add {
    public static void main(String[] args) {
        // 변수 선언(정의)
        int x ; // 정수형 데이터를 저장하기 위하여 변수 x를 준비해주세요.
        int y, z ; // 정수가 2개 필요해요.

        // 값을 대입(할당) assign
        // =를 대입 연산자라고 부름
        x = 3 ; // writer
        y = 5 ;
        z = x + y ; // z = 3 + 5

        // +의 2가지 역할) (1) 덧셈 (2) 문자열 결합
        System.out.println(x + " 더하기 " + y + "는(은) " + z + "입니다." );

        x = 4 ; // overwrite
        y = 9 ;
        z = x * y ;

        System.out.println(x + " 곱하기 " + y + "는(은) " + z + "입니다." );

    }
}

 

cf ) Myjava/Add.java at master · nolooker/Myjava (github.com)

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

<Git> Arithmetic01.java  (0) 2023.02.02
<Git> AreaTest.java  (0) 2023.02.02
<Git> add2.java  (0) 2023.02.02
Java Programming <덧셈 연산>  (0) 2023.02.02
Java Programming <변수와 연산자>  (0) 2023.02.01
728x90

임의의 변수를 만들고 계산하는 방법

 

출력값 =

 

예시 문제) a,b,c, 결과 값 ;

a,b,c 변수를 적용하고 결과 값을 출력해보자!

 

출력값 = 

 

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

<Git> Arithmetic01.java  (0) 2023.02.02
<Git> AreaTest.java  (0) 2023.02.02
<Git> add2.java  (0) 2023.02.02
<Git> add.java  (0) 2023.02.02
Java Programming <변수와 연산자>  (0) 2023.02.01

+ Recent posts

728x90
반응형
728x90
반응형