본문 바로가기
#IT 업무노트

JAVS VS C#

by 꾸미라기 2024. 1. 5.
반응형
SMALL

C#과 Java는 모두 객체지향 프로그래밍 언어로서, 각각의 생태계에서 널리 사용되고 있는 언어입니다.

오늘의 포스팅은  C#과 Java의 특징, 문법 차이에 대해 설명하겠습니다.

 

 

 

1. C#

 

(1) 개발 환경 및 플랫폼
주로 Microsoft의 .NET 플랫폼에서 사용됩니다.
Visual Studio는 C# 개발을 위한 통합 개발 환경(IDE)로 널리 사용됩니다.

(2) 생태계
.NET 생태계에 편입되어 있으며, ASP.NET, Xamarin 등 다양한 플랫폼 및 프레임워크에서 사용됩니다.

(3) 언어 특징:
이벤트 기반 프로그래밍, 속성과 이벤트를 간단하게 정의하는 특징이 있습니다.
LINQ(Language Integrated Query)를 통해 데이터베이스 및 컬렉션과 같은 데이터에 쿼리를 수행할 수 있습니다.

(4) 기타
Windows 기반 응용 프로그램 개발에 주로 사용되지만, .NET Core 및 .NET 5, .NET 6 등을 통해 크로스 플랫폼 개발이 가능해지고 있습니다.

*LINQ
LINQ는 다양한 형태의 데이터 소스를 지원하며, 컬렉션, 데이터베이스, XML, Entity Framework와 같은 데이터 소스에 대한 쿼리를 일관된 방식으로 작성할 수 있습니다. LINQ 쿼리는 SQL 문법과 유사하지만, 코드 내부에 직접 통합되어 있어 형식 안전성을 유지하면서 쿼리 작성이 가능합니다.

 

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };


var evenNumbers = from num in numbers
                  where num % 2 == 0
                  select num;

// Print the result
foreach (var number in evenNumbers)
{
    Console.WriteLine(number);
}

 

2. JAVA

 

(1) 개발 환경 및 플랫폼
주로 Oracle JDK, OpenJDK 등의 자바 개발 키트를 사용하여 다양한 플랫폼에서 실행됩니다.
Eclipse, IntelliJ IDEA, NetBeans 등의 IDE를 사용할 수 있습니다.

(2) 생태계
Java는 다양한 플랫폼에서 사용되며, 대규모 엔터프라이즈 응용 프로그램, 웹 개발, Android 앱 등 다양한 분야에서 사용됩니다.

(3) 언어 특징
JVM(Java Virtual Machine)에서 실행되는 중간 언어로 컴파일되어 크로스 플랫폼 가능합니다.
멀티스레딩 및 가비지 컬렉션과 같은 특징으로 안정성과 생산성을 제공합니다.

(4) 기타
Write Once, Run Anywhere(WORA) 철학에 따라 한 번 작성한 코드를 여러 플랫폼에서 실행할 수 있도록 합니다.
Android 앱 개발에도 널리 사용되는 언어 중 하나입니다.

 

3. C#, JAVA 문법 차이

 

(1) C#

using System;

class Program
{
    static void Main()
    {
        // 변수 및 데이터 형식 선언
        int number = 42;
        string name = "John";

        // 조건문
        if (true)
        {
            // code
        }
        else
        {
            // code
        }

        // 반복문
        for (int i = 0; i < 5; i++)
        {
            // code
        }

        // 함수 선언
        int result = Add(10, 20);

        // 클래스 선언
        MyClass myObject = new MyClass();
        myObject.MyProperty = 42;
        myObject.MyMethod();

        // 예외 처리
        try
        {
            // code
        }
        catch (Exception ex)
        {
            // handle exception
        }
        finally
        {
            // code
        }
    }

    static int Add(int a, int b)
    {
        return a + b;
    }

    class MyClass
    {
        public int MyProperty { get; set; }

        public void MyMethod()
        {
            // code
        }
    }
}


(2) JAVA

public class Main {
    public static void main(String[] args) {
        // 변수 및 데이터 형식 선언
        int number = 42;
        String name = "John";

        // 조건문
        if (true) {
            // code
        } else {
            // code
        }

        // 반복문
        for (int i = 0; i < 5; i++) {
            // code
        }

        // 함수 선언
        int result = add(10, 20);

        // 클래스 선언
        MyClass myObject = new MyClass();
        myObject.setMyProperty(42);
        myObject.myMethod();

        // 예외 처리
        try {
            // code
        } catch (Exception ex) {
            // handle exception
        } finally {
            // code
        }
    }

    static int add(int a, int b) {
        return a + b;
    }

    static class MyClass {
        private int myProperty;

        public int getMyProperty() {
            return myProperty;
        }

        public void setMyProperty(int value) {
            myProperty = value;
        }

        public void myMethod() {
            // code
        }
    }
}




 

 

 

 

반응형