전역 변수, 전역 함수를 만들 수 없음. 즉 모든 객체는 클래스 안에 존재해야한다.
파일 하나당 public class 한개만 존재해야 한다. (내포 클레스의 경우 예외)
package = namespace 의 개념과 비슷
모든 .java 파일에는 java.lang.* 가 자동으로 import 된다. 고로 바로 System 클래스의 기능 사용가능
(java.lang = 기본 패키지)
자바에도 printf 함수가 있음 ( System.out.printf() )
import = include
--- java 명령어 ---
컴파일 명령어 => javac -d <.class 파일을 저장할 경로> <컴파일할 .java 파일>
실행 명령어 => java -classpath <.class 파일 경로> <.class 이름>
자바는 char 을 제외한 모든 자료형이 signed 형이다
자바의 String 은 일단 초기화 되면 값 변경 불가능! (immutable)
const => final
지역 변수 = 함수 내에 생성한 변수
클래스 멤버 변수
메서드 = 멤버 함수
c 의 const 랑 다르게 final 은 선언한후 나중에 초기화가 가능하다.
java 의 주석 c/c++ 에서 doxygen 을 사용하여 흉내가능
String name1 = "abc";
String name2 = "abc";
자바는 내부적으로 두 문자열이 가리키는 리터럴이 같은경우 메모리가 똑같게 설정된다.
(name1 == name2) => true (메모리를 절약하자는 개념)
두 문자열을 비교할려면 equals 함수를 사용해야함. ex) name1.equals(비교대상 문자열);
JAVA는 자체적으로 연산자 오버로딩 + += 가 있다. (C++와 다르게 프로그래머가 따로 구현은 불가능)
자바에는 다른 언어와 다르게 >>> 연산자가 있는데
비트이동하려는 대상이 음수이면 양수로 바꿔주는 추가 기능도 하는놈임.
C와 다르게 switch-case 문에서 문자열도 넣을 수 있다
ex) case: "문자열"
C의 goto 와 비슷한 break, continue 문이 있다. (break를 감싸고 있는 라벨에서만 사용가능)
자바는 모든게 <포인터> 이다!!!!
자바의 열거형은 C와 다르게 원소에 값을 대입할 수 없다
java의 var == c++ 의 auto