logo

자바 소개

Java는 객체 지향, 클래스 기반 프로그래밍 언어입니다. 언어는 가능한 한 적은 수의 종속성 구현을 갖도록 설계되었습니다. 이 언어를 사용하는 목적은 개발자가 모든 플랫폼에 대한 코드를 작성하는 수고를 덜어주기 위한 것입니다. WORA라는 용어는 한 번 작성하면 어디에서나 실행할 수 있다는 의미로 이 언어와 관련이 있는 경우가 많습니다. 이는 Java 코드를 컴파일할 때마다 바이트 코드(.class 파일)를 얻고 Java를 지원하는 다른 플랫폼에서 (다시 컴파일하지 않고도) 실행할 수 있음을 의미합니다. 1995년에는 자바 언어가 개발됐다. 주로 웹, 데스크톱, 모바일 기기 개발에 사용됩니다. Java 언어는 견고성, 보안 및 단순성 기능으로 잘 알려져 있습니다. 이는 구현 종속성을 가능한 한 적게 갖도록 설계되었습니다.

역사

Java 언어는 매우 흥미로운 역사를 가지고 있습니다. Green 팀으로 알려진 Patrick Naughton, Mike Sheridan 및 James Gosling은 1991년에 Java 개발을 시작했습니다. 썬 마이크로시스템즈 . 1996년에 최초의 공개 구현이 Java 1.0으로 출시되었습니다. Java 1.0의 컴파일러는 Arthur Van Hoff가 해당 사양을 엄격하게 준수하도록 다시 작성했습니다. Java 2가 도입되면서 새 버전에는 다양한 플랫폼용으로 구축된 다양한 구성이 포함되었습니다. James Gosling이 Java의 아버지라고도 알려져 있다는 점은 주목할 가치가 있습니다.

1997년 Sun Microsystems는 Java를 공식화하기 위해 ISO 표준 기관에 접근했지만 프로세스는 곧 철회되었습니다. 한때 Sun Microsystems는 독점 소프트웨어 상태임에도 불구하고 대부분의 Java 구현을 무료로 제공했습니다.

늑대인가 여우인가

응용 프로그램

Java 애플리케이션에서 애플리케이션 프로그램의 구현에는 다음 단계가 포함됩니다.

  1. 프로그램 작성(코드 작성)
  2. 프로그램 컴파일입니다.
  3. 컴파일된 코드를 실행합니다.

여기서 주목할 점은 JDK(Java Development Kit)가 시스템에 제대로 설치되어 있어야 하며 경로도 설정되어야 한다는 점입니다.

프로그램 창조

Java 프로그램은 텍스트 편집기(Notepad++ 또는 NotePad 또는 다른 편집기도 작업을 수행함) 또는 IDE(Eclipse, NetBeans 등)를 사용하여 작성할 수 있습니다.

파일 이름: TestClass.java

 public class TestClass { // main method public static void main(String []args) { // print statement System.out.println('Hello World is my first Java Program.'); } } 

위의 코드를 작성하고 TestClass라는 이름으로 파일을 저장합니다. 파일에는 .자바 확대.

프로그램 편집

명령 프롬프트를 열고 다음을 입력하세요. javac TestClass.java . javac Java 컴파일러가 Java 프로그램을 컴파일하도록 하는 명령입니다. 명령 뒤에는 컴파일해야 하는 파일 이름을 입력해야 합니다. 우리의 경우에는 TestClass.java . 입력 후 엔터버튼을 눌러주세요. 모든 것이 순조롭게 진행되면 바이트 코드가 포함된 TestClass.class 파일이 생성됩니다. 프로그램에 오류가 있으면 컴파일러는 이를 지적하고, TestClass.class 생성되지 않습니다.

프로그램 실행 / 실행

.class 파일이 생성된 후 다음을 입력합니다. 자바 테스트클래스 프로그램을 실행합니다. 프로그램의 출력은 아래에 언급된 콘솔에 표시됩니다.

산출:

 Hello World is my first Java Program. 

자바라는 이름

처음에는 언어에 오크라는 이름이 부여되었습니다. 그러나 팀은 언어에 새로운 이름을 붙여야 한다고 결정했고, DNA, revolution, Jolt, Dynamic, Silk 등과 같은 단어가 제안되었습니다. 이 이름들은 모두 말하기 재미있고 철자하기 쉬웠습니다. 그러나 누락된 것은 팀이 원했던 제안된 이름에 있는 언어의 본질이었습니다. James Gosling에 따르면 Java와 Silk가 가장 인기 있는 옵션 중 하나였으며 Java에는 고유한 이름이 있으므로 대부분의 사람들이 이를 선호했습니다.

자바(Java)는 커피(자바 커피(Java Coffee)라는 이름)가 생산된 인도네시아 섬의 이름이기도 합니다. Java라는 이름은 James Gosling이 사무실 근처에서 커피를 마시고 있었기 때문에 선택했습니다. 독자들은 Java가 약어가 아니라는 점에 유의해야 합니다. 그것은 단지 이름일 뿐이다.

Java의 용어

JVM(자바 가상 머신): JVM은 Java 바이트코드 실행이 이루어지는 런타임 환경을 용이하게 하는 사양입니다. 명령을 사용할 때마다 자바, JVM 인스턴스가 생성됩니다. . JVM은 메모리 영역, 레지스터 세트, 클래스 파일 형식 및 치명적인 오류 보고의 정의를 용이하게 합니다. JVM은 플랫폼에 따라 다릅니다.

바이트 코드: Java 컴파일러가 Java 코드를 컴파일하여 .class 파일 또는 바이트 코드를 생성하는 것은 소개 부분에서 이미 논의되었습니다. 하나는 javac Java 컴파일러를 호출하는 명령입니다.

JDK(Java 개발 키트): JRE(Java Runtime Environment), 컴파일러, Java 문서, 디버거 등 모든 것을 포함하는 완전한 Java Development Kit입니다. Java 프로그램을 생성하고 컴파일하고 실행하려면 컴퓨터에 JDK가 설치되어 있어야 합니다.

자바 런타임 환경(JRE): JRE는 JDK의 일부입니다. 시스템에 JRE만 설치된 경우 사용자는 프로그램만 실행할 수 있습니다. 즉, 오직 자바 명령이 작동합니다. Java 프로그램의 컴파일은 불가능합니다( javac 명령이 작동하지 않습니다).

가비지 컬렉터: 프로그래머는 Java에서 객체를 삭제할 수 없습니다. 이를 위해 JVM에는 Garbage Collector라는 프로그램이 있습니다. 가비지 컬렉터는 참조되지 않은 객체를 기억하거나 삭제합니다. Garbage Collector는 메모리 관리에 대해 걱정할 필요가 없으므로 개발자/프로그래머의 삶을 쉽게 만듭니다.

클래스 경로: 이름에서 알 수 있듯이 classpath는 Java 컴파일러와 Java 런타임이 로드할 .class 파일을 검색하는 경로입니다. JDK는 많은 내장 라이브러리를 제공합니다. 그러나 외부 라이브러리를 사용하려는 경우에는 클래스 경로에 추가해야 합니다.

자바의 주요 특징

플랫폼 독립적: .exe 파일을 직접 생성하는 대신 Java 컴파일러는 Java 코드를 바이트 코드로 변환하며, 이 바이트 코드는 문제 없이 다른 플랫폼에서 실행될 수 있으므로 Java는 플랫폼 독립적인 언어입니다. 바이트 코드를 실행하려면 플랫폼에 따라 JVM이 시스템에 설치되어 있어야 합니다.

객체 지향 프로그래밍 언어: 객체지향 프로그래밍의 개념은 객체와 클래스의 개념을 기반으로 합니다. 또한 객체 지향 프로그래밍에는 몇 가지 특성이 있습니다. 그 중 몇 가지가 아래에 언급되어 있습니다.

  • 추출
  • 계승
  • 다형성
  • 캡슐화

Java 언어는 또한 클래스와 객체의 개념을 광범위하게 사용합니다. 또한 위에서 언급한 모든 기능이 Java에 포함되어 있어 Java를 객체 지향 프로그래밍 언어로 만듭니다. Java는 객체 지향 프로그래밍 언어이지만 100% 객체 지향은 아닙니다.

mysql 워크벤치를 사용하는 방법

단순한: Java에는 포인터, 다중 상속, 명시적인 메모리 할당 또는 연산자 오버로드 개념이 없기 때문에 간단한 언어로 간주됩니다.

건장한:

Java 언어는 매우 강력합니다. 견고하다는 의미는 신뢰할 수 있습니다. Java 언어는 많은 오류 검사가 가능한 한 빨리 수행되는 방식으로 개발되었습니다. 이 언어가 다른 프로그래밍 언어에서 식별하기 어려운 오류를 식별할 수 있는 것은 바로 이러한 이유 때문입니다. 예외 처리, 가비지 수집 및 메모리 할당은 Java를 강력하게 만드는 기능입니다.

안전한: Java 언어에서는 악용할 수 없는 버퍼 오버플로 또는 스택 손상과 같은 몇 가지 오류가 있습니다. 우리는 Java 언어에 포인터가 없다는 것을 알고 있습니다. 따라서 경계를 벗어난 배열에 액세스하는 것은 불가능합니다. 누군가 그렇게 하려고 하면 ArrayIndexOutofBound 예외가 발생합니다. 또한 Java 프로그램의 실행은 운영 체제와 완전히 독립된 환경에서 이루어지므로 이 언어가 더욱 안전해집니다.

분산: Java 언어를 사용하여 분산 애플리케이션을 만들 수 있습니다. Enterprise Java Bean 및 원격 메소드 호출은 분산 애플리케이션을 작성하는 데 사용됩니다. Java 프로그램 배포는 인터넷을 사용하여 서로 연결된 하나 이상의 시스템 간에 쉽게 발생할 수 있습니다.

멀티스레딩: Java 언어는 멀티스레딩을 지원합니다. 멀티스레딩 기능은 프로그램의 둘 이상의 부분을 동시에 실행할 수 있도록 지원합니다. 따라서 CPU 활용도가 극대화됩니다.

이식성: 우리는 Java가 플랫폼 독립적인 언어라는 것을 알고 있습니다. 따라서 한 시스템에서 생성된 바이트 코드는 다른 플랫폼에서 실행될 수 있으므로 Java를 이식 가능하게 만듭니다.

높은 수준의 성능: Java의 아키텍처는 런타임 오버헤드를 줄이는 방식으로 만들어졌습니다. 어떤 곳에서는 Java가 요청에 따라 코드를 컴파일할 때 JIT(Just In Time) 컴파일러를 사용합니다. 여기서 컴파일러는 호출되는 메서드만 컴파일하므로 애플리케이션 실행 속도가 더 빨라집니다.

자바 반복 맵

동적 유연성: Java 언어는 객체 지향 프로그래밍 패러다임을 따르므로 기존 클래스에 새로운 메소드와 클래스를 자유롭게 추가할 수 있습니다. Java 언어는 C/C++ 언어에서 언급되고 일반적으로 기본 메소드라고 불리는 기능도 지원합니다.

샌드박스 실행: Java 프로그램이 다른 환경에서 실행된다는 것은 알려진 사실입니다. 이는 사용자가 바이트코드 검증기를 사용하여 기본 시스템에 영향을 주지 않고 자신의 애플리케이션을 실행할 수 있는 자유를 제공합니다. 바이트코드 검증기는 코드에서 액세스 위반을 확인하므로 추가 보안도 제공합니다.

한 번 작성하면 어디서나 실행 가능: Java 코드는 컴파일러에 의해 컴파일되어 기계 아키텍처와 완전히 독립적인 .class 파일 또는 바이트 코드를 얻습니다.

컴파일 및 해석된 언어: 대부분의 언어는 해석된 언어이거나 컴파일된 언어입니다. 그러나 Java 언어의 경우 해석된 언어와 마찬가지로 컴파일됩니다. Java 코드는 바이트코드를 얻기 위해 컴파일되고, 바이트코드는 소프트웨어 기반 인터프리터에 의해 해석됩니다.

Java의 몇 가지 프로그램

몇 가지 기본 Java 프로그램이 아래에 언급되어 있습니다.

프로그램 - 1

파일 이름: DemoClass.java

 // Importing different classes import java.io.*; // Main class public class DemoClass { // main method public static void main(String argvs[]) { System.out.println('Welcome to javaTpoint.'); } } 

산출:

 Welcome to javaTpoint. 

프로그램 - 2

파일 이름: AddMul.java

자바 8
 // Computing the sum and product of the two numbers public class AddMul { // main method public static void main(String argvs[]) { int a1; int a2; int add = 0; int prod = 0; a1 = 12; a2 = 14; add = a1 + a2; // addition prod = a1 * a2; // multiplication System.out.println('Sum = ' + add); System.out.println('Product = ' + prod); } } 

산출:

 Sum = 26 Product = 168 

프로그램 - 3

파일 이름: ComputeAv.java

 // A Java program to allow the user to input two numbers from the user and compute its average. import java.util.*; public class ComputeAv { // main method public static void main(String argvs[]) { double a1; double b1; double sum1 = 0; double avg1 = 0; Scanner scnr = new Scanner(System.in); System.out.println('Input the First Number: '); a1 = scnr.nextDouble(); System.out.println('Input the Second Number: '); b1 = scnr.nextDouble(); sum1 = a1 + b1; // computing the sum avg1 = sum1 / 2; // computing the average System.out.println('Average = ' + avg1); } } 

산출:

 Input the First Number: 4 Input the Second Number: 5 Average = 4.5 

프로그램 - 4

파일 이름: 화씨Celsius.java

 // A Java program that converts Celsius to Fahrenheit using formula // Fahrenheit = ((Celsius / 5) x 9 ) + 32 // import statement for taking input import java.util.Scanner; public class FahrenheitCelsius { // main method public static void main(String argvs[]) { double cel, far; Scanner scnr = new Scanner(System.in); System.out.println('Input the temperature in Celsius: '); cel = scnr.nextDouble(); far = ((cel / 5.0) * 9.0) + 32; System.out.println('Temperature in Fahrenheit is: ' + far); } } 

산출:

 Input the temperature in Celsius: 15 Temperature in Fahrenheit is: 59.0 

프로그램 - 5

파일 이름: TriangleArea.java

 // A Java program for computing the triangle's area using its three sides // using heron's formula. import java.util.Scanner; public class TriangleArea { // main method public static void main(String[] argvs) { int s1, s2, s3; double halfPeri, ar; Scanner scnr = new Scanner(System.in); System.out.print('Enter the value of triangle's three sides:'); // taking user inputs s1 = scnr.nextInt(); s2 = scnr.nextInt(); s3 = scnr.nextInt(); // computing half perimeter halfPeri = (s1 + s2 + s3) / 2; // computing area of the triangle ar = Math.sqrt(halfPeri * (halfPeri - s1) * (halfPeri - s2) * (halfPeri - s3)); System.err.println('Triangles Area: ' + ar); } } 

산출:

 Enter the value of triangle's three sides: 15 16 17 Triangles Area: 109.98181667894016 

위 프로그램에서 사용되는 다양한 키워드에 대한 설명

//: 독자가 더 쉽게 읽을 수 있도록 코드에 주석을 추가하는 데 사용됩니다. 컴파일러는 프로그램을 컴파일하는 동안 주석을 완전히 무시합니다. 여러 줄 주석의 경우 다음을 사용합니다: /* … */

마우스와 마우스 종류

메인() 메소드: 실행이 시작되는 프로그램의 가장 중요한 메소드입니다. 따라서 모든 논리는 기본 메서드에 있어야 합니다. main() 메서드에 논리가 포함되어 있지 않으면 다른 메서드에 있지만 해당 메서드는 main() 메서드에서 직접 또는 간접적으로 호출되어야 합니다.

수업: class 키워드는 Java 언어에서 클래스를 선언하는 데 사용됩니다.

무효의: 이는 함수나 메서드가 아무 것도 반환하지 않는다는 의미입니다.

System.out.println(): 콘솔에 명령문, 패턴 등을 인쇄하는 데 사용됩니다.

문자열 인수[]: 입력을 받는 데 사용되는 명령줄 인수입니다.

공공의: 액세스 지정자 키워드입니다. 메소드에 적용되면 해당 메소드가 모든 사람에게 표시됩니다. 다른 액세스 지정자 키워드로는 private, protected 및 default가 있습니다.

java.io.* 가져오기: 이는 패키지에 존재하는 모든 클래스를 의미합니다. java.io 수입됩니다. java.io 패키지는 파일에 데이터를 쓰고 읽기 위한 출력 및 입력 스트림을 용이하게 합니다. *는 모두를 의미합니다. 특정 클래스만 가져오려면 *를 클래스 이름으로 바꾸세요.

시스템인: 우리의 경우 일반적으로 키보드인 입력 제공 장치에서 문자를 읽는 데 사용되는 입력 스트림입니다.

정적 무효 메인(): static 키워드는 클래스를 인스턴스화하지 않고도 메서드에 액세스할 수 있음을 알려줍니다.

시스템 출력: System.in이 문자를 읽는 데 사용되는 것처럼 System.out은 프로그램의 결과를 컴퓨터 화면과 같은 출력 장치에 제공하는 데 사용됩니다.

더블, 정수: 다양한 데이터 유형, 정수의 경우 int, double의 경우 double. 다른 데이터 유형으로는 char, boolean, float 등이 있습니다.

인쇄(): 이 메서드는 콘솔에 텍스트를 표시합니다. 이 메서드는 텍스트를 화면에 인쇄한 후 다음 줄로 이동합니다. 다음 줄에는 ln이 사용됩니다. 커서가 다음 줄로 이동하는 것을 원하지 않으면 print() 메소드를 사용하십시오.