고급언어로 작성된 프로그램은 컴퓨터가 바로 이해할 수 없기 때문에 기계어로 변환하는 과정을 거쳐야만한다. 소스코드를 기계어로 변환하는 처리기법으로 번역 기법(컴파일 기법)과 인터프리터 기법이 있고 컴파일 기법을 이용해 프로그램을 실행시키는 언어를 컴파일 언어, 인터프리터 기법을 통해 프로그램을 실행시키는 언어를 인터프리터 언어라 한다. 컴파일러 고급언어로 작성된 소스프로그램을 기계어로 번역된 목적프로그램으로 번역해주는 번역기로 번역기법에서 사용된다. 저급언어로 작성된 프로그램은 어셈블러라고 하는 번역기를 통해 번역되며 사용되는 번역기 및 번역과정은 다음과 같다. 번역기 종류 1. 컴파일러 -고급언어를 번역해 어셈블리언어 혹은 기계어로된 목적 프로그램을 생성 2. 어셈블러 - 저급언어를 번역해 기계어로된 ..
생성자 생성자는 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드이다. 주로 인스턴스 생성 시 실행되는 작업이나 변수 초기화 작업에 사용된다. class Card{ private String cardName; public Card() { } } 생성자의 조건은 클래스와 이름이 같으면서, 리턴 값이 없어야한다. 리턴 값이 없음에도 void형을 적지않는다. 생성자는 보통 public 접근제어자를 이용하는데, private으로 생성자를 만들면 다른 클래스에서 인스턴스를 생성할 수 없게된다. private생성자를 이용한 예제 생성자 오버로딩 class Card{ private String cardName; //생성자1 public Card() { } //생성자2 public Card(String _cardN..
한 클래스에서 매개변수의 개수 또는 타입이 다르면 이름이 같은 메소드를 여러개 정의할 수 있는데, 이처럼 이름이 같은 메소드를 여러개 정의하는 것을 메소드 오버로딩 또는 오버로딩이라고 한다. 오버로딩 조건 메소드 이름이 같아야한다. 매개변수의 개수 또는 타입이 달라야한다. 위의 조건이 만족되면 메소드의 이름이 같더라도 서로 식별될 수 있기때문에 오버로딩이 가능하다. 이 때, 메소드의 리턴타입과 매개변수명은 전혀 영향을 미치지 않는다는걸 주의해야한다. 오버로딩 잘못된 예시 1. 메소드 이름은 같지만 매개변수 이름만 다른 경우 public int add(int a, int b){ return a + b; } public int add(int x, int y){ return x + y; } 메소드의명이 같지만..
함수를 사용할 때 괄호() 안에 지정하는 값을 인자라고 부를 때도 있고 매개변수라고 부를 때도 있다. 이 둘은 같아보이지만 상황별로 다르게 사용되는데, 어떤 차이가 있는지 알아보자. 인자 : 메서드를 호출할 때 괄호() 안에 전달하는 값 매개변수 : 인자의 값을 복사해 받아들이는 메서드 선언부에 지정된 변수 코드를 통한 예시를 알아보자. 매개변수 // 메서드의 선언 public static int addNum(int a, int b) { //parameter : a, b return a + b; } int 형 정수 2개를 매개변수로 받아 합을 리턴하는 메서드이다. 여기서 사용되는 a와 b는 전달되는 값을 담는 변수로써 매개변수라고 할 수 있다. 인자 public static void main(String..
JVM 자바의 가장 큰 특징 중 하나는 운영체제에 독립적이라는 것이다. 즉, 윈도우에서 만들어진 자바 프로그램은 리눅스, 맥 os 에서도 동작할 수 있다. OS 위에서 이러한 독립성을 제공해주는 것이 JVM(Java Virtual Machine)이며 기본적으로 동작하는 과정은 다음과 같다. 자바 프로그램 실행 과정 사용자가 만든 Java 소스코드는 컴파일러를 거쳐 클래스 파일(바이트코드로 번역)로 만들어진다. 이후 만들어진 바이트 코드를 JVM이 읽어 어떤 운영체제든 실행가능하도록 만들어진다. 이러한 구조를 통해 Java프로그램은 운영체제에 독립적이라고 할 수 있다. 하지만 Java 응용프로그램이 통신하는 JVM은 운영체제(Window, Linux, Mac)에 종속적이다. 즉, 운영체제에 적절한 JVM이..
Exception Exception(예외처리)이란 오류가 발생했을 때 프로그램이 종료되는것을 막는 것이다. 예외처리는 Error와는 다르게 사용자(S/W)가 대처할 수 있다. 반드시 필요한 예외처리를 CheckedException이라 하고 프로그래머의 판단에 맡기는 예외처리를 UnCheckedException 이라고 한다. 예제 public class Exeption { public static void main(String[] args) { int r; System.out.println("Exception Before"); try { r = 10/0; System.out.println(r); } catch(Exception e) { e.printStackTrace(); String msg = e.get..
hashCode() String str1 = "JAVA"; String str2 = "JAVA"; String str3 = new String("JAVA"); System.out.println("str 1 hashCode : " + str1.hashCode()); System.out.println("str 2 hashCode : " + str2.hashCode()); System.out.println("str 3 hashCode : " + str3.hashCode()); str 1 hashCode : 2269730 str 2 hashCode : 2269730 str 3 hashCode : 2269730 [value를 통해 hashCode를 만드는 매서드] 기본적으로 hashCode()는 Object 클래..
String 자바에서 스트링 인스턴스를 생성하는 방법으로 String 클래스를 주로 이용하는데, String 클래스로 생성된 인스턴스의 값은 오직 읽기만 가능하고 변경할 수 없는 immutable class이다. ▶ String 클래스를 사용한 문자열 String str = "JAVA"; System.out.println("str : " + str); str = str + "_8"; System.out.println("str : " + str); str : JAVA str : JAVA_8 그러나 코드를 실행하면 분명 str 의 값이 변경되었다. 하지만 두 번째 문자열이 만들어지는 과정이 "변경"이라하기엔 다소 무리가 있다. String 클래스를 이용하여 문자열을 변경하면 기존에 "JAVA"가 존재하던 s..
- Total
- Today
- Yesterday
- SQL
- 오류
- 넥사크로
- svn
- 인턴
- CSS
- JSP
- CS
- Java
- HeidiSQL
- 이클립스
- 네트워크
- C
- 백준
- 스프링
- 개발용어
- 데이터베이스
- 환경설정
- 프로그래머스
- 오라클
- Thymeleaf
- 스프링부트
- 국비교육
- 부트스트랩
- JVM
- C++
- Open API
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |