HelloWorld.java는 javac.exe 를거쳐 컴파일된다.
javac.exe란?javac는 오라클의 자바 개발 키트(JDK)에 포함된 주요 자바 컴파일러이다.이 컴파일러는 자바 언어 사양(JLS)을 충족하는 소스 코드를 받아들인 다음 자바 가상 머신 사양(JVMS)을 충족하는 바이트코드를 생성한다.java.exe란?javac로
🥹제임스 아서 고슬링(James Arthur Gosling) 👍자바의 특징은 일단 프로그램을 작성하면 어떤 플랫폼에서도 실행된다는 의미에서 WORA(Write once, run everywhere)로 요약된다. 이는 기존 프로그램들의 약점을 보완할 수 있는 놀라운 아이디어였다. 👍컴퓨터 운영 체제는 호환이 되지 않기 때문에 예를 들어 유닉스에서 만...
JVM : 프로그램을 실행하는 자바 플랫폼 구성요소다.JRE : JVM을 생성하는 디스크 상의 부분이다.JDK : 개발자들이 JVM과 JRE에 의해 실행되고 구동될 수 있는 자바 프로그램을 생성할 수 있게 해준다.이동👍
byte 8bits (-128 ~ 127)short 16bits (-32768 ~ 32767)int 32bits (-2147483648 ~ 2147483647) 21억long 64bits (-92
주석 또는 코멘트는 프로그래밍에 있어 내용을 메모하는 목적으로 쓰인다. 소스 코드를 더 쉽게 이해할 수 있게 만드는 것이 주 목적이며, 협업할 때 유용히 쓰인다. 컴파일러와 인터프리터에 의해 일반적으로 무시되어 프로그램에 영향을 주지 않는다.라인 주석문(//)를 주석의
들여쓰기의 중요성에대해서는 설명보다 직접 체감하는 것이 빠를 것으로 생각된다.항상 클린코드를 생각하며 혼자서하는 코딩이아닌 소설처럼 읽히는 코드를 짜야한다.이처럼 주석이나 들여쓰기가 없는경우는 자신만이 알수있는 코드가 될 가능성이 높고 가독성이 현저하게 떨어진다.위처럼
변수는 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미한다여기서 num은 프로그램에 의해 할당받은 변수 역할을 하게되는데저장할수있는 범위는 int자료형인 4바이트->(-2^31~2^31-1);이 선언된다고 할수있다.⚠️JVM은 기본
원래 컴퓨터 내부에서 음의 수가 양의 수와 마찬 가지로 계산될 수 있도록 표현하기 위해 고안된 1의 보수가 있었다. 하지만 0이 00000000과 10000000, 이렇게 두가지로 표현되는 문제가 나타났다.1의 보수법은 해당 양수의 모든 비트를 반전하여 음수를 표현하는
컴퓨터는 모든 수를 0과 1로 이루어진 2진수로 표현한다. 이것은 정수뿐만 아니라 소수점이 존재하는 실수도 마찬가지이다.정수의 경우 이러한 표현이 간단하지만, 실수를 2진수로 표현하는 것은 복잡하다. 실수를 표현하기 위한 다양한 방법들이 연구되었으며 현재는 크게 2가지
데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간변수의 반댓말로 항상 상(常)자를 사용하여 변하지 않고 고정된 값을 담는 변수⚠️상수는 숫자만 넣어야 한다고 오해하는 사람들이 많은데,앞서 말했듯이, 상수는 변하지 않는 변수를 뜻하는 것이다.
백슬래시 '\\' 뒤에 한 문자나 숫자 조합이 오는 문자 조합을 “이스케이프 시퀀스”라고한다.\\a (경고 문자)\\a는 기본적으로 들을 수 있는 경보 소리를 낸다. 일부 시스템에서는 아무런 효과를 내지 않는다.\\n, \\t, \\v, \\b, \\f, \\r (출력
🧐참조하도록하자
자동 형변환(Promotion)은 프로그램 실행 도중에 자동적으로 형변환(타입변환)이 일어나는 것을 말한다.예문을 보도록 하자위처럼 자신보다 큰 자료형 변수안에는 자동으로 형을 변환시켜 넣을수있지만자신보다 작은 자료형 변수안에는 자동으로 형을 변환시켜 넣을수없다.byt
기본적인 내용이지만 자세하게 알아보도록 하자프로그램 내에서 주어진 표현식의 결과에 따라 별도의 명령을 수행하도록 제어하는 실행문이다.if문switch case문삼항연산자if문은 영어 뜻대로 만약 으로if(조건식)=>만약(조건식) 이런식으로 이해하는게 좋다예를 들어보자출
말그대로 내가원하는 부분을 반복 실행시켜주는 구문으로 크게 두가지로 나뉜다.for문while문for문은 반복횟수를 특정할수있을 경우 자주사용한다.기본적인 작성법과 흐름을 파악해 놓도록하자.for문이 정해진 횟수만큼 반복한다면, while 문은 조건식이 true 일 경우
자바에서 클래스(class)란 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용된다.자바에서는 이러한 설계도인 클래스를 가지고, 여러 객체를 생성하여 사용하게 된다.필드(field)->멤버(member)로 속성을 표현메소드(method)->기능을 표현생성자(const
자바에서는 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화할 수 있는 생성자(constructor)라는 메소드를 제공한다.자바에서 생성자(constructor)의 이름은 해당 클래스의 이름과 같아야 한다.즉, Car 클래스의 생성자의 이름은 Car가 됩니다.
클래스패스란, JVM이나 Java 컴파일러에 사용자정의 클래스와 패키지의 위치를 지정해주는 파라미터(Parameter) 이다.디렉토리를 /export/home/username이라고 가정하자. 그럼 이 디렉토리에 /export/home/username/codingsqui
절대 경로는 처음부터 시작하여 목적지까지의 절대적인 경로를 의미한다. 시작 지점부터 목표지점까지의 어느 누가 봐도 절대적으로 이곳을 가리킬 수 있는 곳이다. 특징은 최상위 /를 포함하는것이다.상대 경로는 현재 위치를 기준으로 하여 목적지까지의 상대적인 경로를 의미한다.
캡슐화는 데이터를 공용 메소드를 통해서만 접근할 수 있도록 허용하는 방법이다. 데이터 캡슐화라고도 한다.캡슐화(encapsulation)는 객체 지향 프로그래밍에서 다음 2가지 측면이 있다.객체의 속성(data fields)과 행위(메서드, methods)를 하나로 묶
정적(static)은 고정된이란 의미를 가지고 있다. Static이라는 키워드를 사용하여 Static변수와 Static메소드를 만들 수 있는데 정적 필드와 정적 메소드는 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 고정된 멤버이다. 그렇기에 클래스 로더가 클래스를
자바로 개발된 프로그램을 실행하면 JVM은 OS로부터 메모리를 할당한다.자바 컴파일러(javac)가 자바 소스코드(.java)를 자바 바이트코드(.class)로 컴파일한다.Class Loader를 통해 JVM Runtime Data Area로 로딩한다.Runtime D
오버로딩(Overloading)이라는 뜻은 사전적으로 '과적하다.'라는 뜻이다. C언어에서는 함수명이 고유하게 존재해야 한다. 즉 하나의 함수가 하나의 기능만을 구현해야 한다는 것이다. 하지만 자바에서는 하나의 메소드 이름으로 여러 기능을 구현하기 때문에 '과적하다.'
Stringng은 immutable(불변)하고 StringBuffer, StringBuilder는 mutable(가변)하다.다시 말해서, String 클래스는 StringBuffer 클래스나 StringBuilder 클래스와 다르게 리터럴을 통해 생성되면 그 인스턴스의
배열(array)은 같은 타입의 변수들로 이루어진 유한 집합으로 정의할 수 있다.배열을 구성하는 각각의 값을 배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자를 인덱스(index)라고 합니다.자바에서 인덱스는 언제나 0부터 시작하며, 0을 포함한 양
this 는 참조변수🤔로 인스턴스 자신의 주소가 저장되어 있는 변수이다.\-인스턴스 자신을 가리키는 참조변수\-인스턴스 주소 저장\-모든 인스턴스 메소드에 지역변수가 숨겨진 채로 존재\-지역변수와 인스턴스 변수를 구분할때 사용참조변수는 주소값을 저장한 변수이다.\-생
상속이란 기존 클래스의 멤버 함수와 멤버 변수를 물려받아 새로운 클래스를 구성하는 것.이러한 상속은 캡슐화,추상화,다형성과 더불어 객체 지향프로그래밍을 구성하는 득징이다.기존 클래스의 변수와 코드를 재사용할수있어 개발시간이 단축된다.먼저 작성된 검증 프로그램 재사용으로
2차원 배열이 연속적인 메모리가 할당된 별도의 정적 자료구조가 아니고 값을 저장하는 1차원 배열들과 각 1차원 배열을 참조하는 배열로 이루어진다.위와 같이 선언하였을때 위 그림과 같은 메모리 할당이 일어나게된다.위와같은 형식으로 선언되는것을 알수있다.참고:https&#
상속은 IS-A관계에서 사용하는 것이 가장 효율적이다.IS-A 관계(is a relationship, inheritance)는 일반적인 개념과 구체적인 개념의 관계입니다.사람은 동물이다.소는 동물이다새는 동물이다.위와 같은 관계를생각하자. 즉, 일반 클래스를 구체화 하
일단 기본적으로 우리는 다형성이라는 단어를 추상적이지않고 직관적으로 알고넘어가 보도록하자다형성의 사전적의미는 프로그래밍 언어의 자료형 체계의 성질을 나타내는 것으로, 프로그램 언어의 각 요소들이 다양한 자료형에 속하는 것이 허가되는 성질을 가리킨다. 이렇게 읽어봐도 이
앞에서 참조변수의 다형성에 대해 알아보았다 그렇다면 이런 다형성을 가지고 사용할수있는 기능에는 무엇이있을까? 이부분은 메소드의 오버라이딩과 관계가깊으므로 메소드 오버라이딩을 알아보도록하자.메소드 오버라이딩이란 상속받은 부모 클래스의 메소드를 재정의하여 사용즉,부모메소드
instanceOf 연산자는 객체가 어떤 클래스인지, 어떤 클래스를 상속받았는지 확인하는데 사용하는 연산자이다.문법구조는 아래와같다.object instanceOf typeobject 객체 안에 type 주소가 들어있는지 확인하고 결과값(true,false)를 retu
극단적으로 동일한 목적 하에 동일한 기능을 수행하게끔 강제하는 것이 바로 인터페이스의 역할이자 개념이다. 조금 더 유식하게 말하면, 자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위해 인터페이스를 사용한다. 예시에는 2개의 클래스가 pr
abstract의 의미는 추상적인 이라는 의미를 가지고있다.기본적으로 추상화에 이용되는 키워드인데 추상메소드,추상클래스를 만들때 사용한다.추상 메소드(abstract method)란 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미한다.자바에서 추상
java.lang 패키지는 자바에서 가장 기본적인 동작을 수행하는 클래스들 을모아놓은 패키지이다.따라서 자바에서는 java.lang 패키지의 클래스들은 import 문을 사용하지 않아도 클래스 이름만으로 바로 사용할 수 있는데,java.lang 패키지 중에서도 가장 많
일단 명료하게 말하자면 아래와 같다.프로세스: 운영체제로부터 자원을 할당받은 작업의 단위.스레드: 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위.작업의 단위? 실행 흐름의 단위?? 잘 이해가가지않는다. 좀더 알기쉽게 예를들어 표현해보자일단 기본적으로 포함하는관계
소켓(socket) 이란 프로세스간의 통신에 사용되는 양쪽 끝단을 의미한다. 자바에서는 java.net패키지를 통해 소캣 프로그래밍을 지원하는데, 소켓 통신에 사용되는 프로토콜에 따라 다른 종류의 소켓을 구현하여 제공한다.소켓 → 프로토콜, ip주소, 포트넘버로 정의